Android P Preview1,昨天3.8发布,

兼容Preview1 主要改下targetSdkVersion = 28 compileSdkVersion为前一个版本(比如27)

在AndroidStudio3.2下能完整支持Android P Preview1

AndroidP Preview1 要点

1.1 约束调用非API接口:比如用JNI、反射来调用一下系统类、方法

Android P Preview1建立了白色灰名单和黑色灰名单来区别非API接口调用的结果,白色灰名单是不建议使用并有可能在后续版本报错,黑色灰名单属于不可访问的非API接口,调用会报错。一共有8种错误类型。

Means of access Result
Dalvik instruction referencing a field NoSuchFieldError thrown
Dalvik instruction referencing a method NoSuchMethodError thrown
Reflection via Class.getDeclaredField() or Class.getField() NoSuchFieldException thrown
Reflection via Class.getDeclaredMethod(), Class.getMethod() NoSuchMethodException thrown
Reflection via Class.getDeclaredFields(), Class.getFields() Non-SDK members not in results
Reflection via Class.getDeclaredMethods(), Class.getMethods() Non-SDK members not in results
JNI via env->GetFieldID() NULL returned, NoSuchFieldError thrown
JNI via env->GetMethodID() NULL returned, NoSuchMethodError thrown
1.2 移除Crypto provider
1.3 严格的UTF-8 decoder
1.4 访问相机、麦克风和传感器将会挂起app

访问的同时app将不能进行其他操作。需要使用foreground service来监听传感器事件。

2.1 创建前台Sevice,需要声明权限FOREGROUND_SERVICE
2.2 弃用Bouncy Castle ciphers

Bouncy Castle提供了一些JDK系统外的加密算法,见http://blog.csdn.net/qq_29583513/article/details/78866461

在targetSdk低于28(android9.0)时使用会收到Warning,targetSdk为28时仍然使用会报 NoSuchAlgorithmException

2.3 Build.SERIAL需要改为 Build.getSerial(),并声明权限READ_PHONE_STATE

Build.SERIAL 是设备序列号,直接调用将返回"UNKNOWN",用Build.getSerial()才能正常返回。

2.4 Webview的数据目录不再可共享

如果有多个进程同时访问一个Webview、CookieManager或其他在android.webkit下的API,应用会崩溃(Crash)。

2.5 访问app数据目录将由SELinux来阻塞

不允许直接访问其他app数据目录,App间仍可用IPC来分享数据,共享文件可使用ContentProvider或在外部存储空间。

3.1 宽高位0的View不再能获取焦点

现在需要在初始化时,显式声明View的Foucus。

3.2 支持Apk签名 v3

详细变更:https://developer.android.google.cn/preview/behavior-changes.html

https://developer.android.google.cn/preview/features/security-behav.html

Android P Preview1 兼容要点相关推荐

  1. ios和Android常见的兼容问题

    H5混合开发中 ios和Android常见的兼容问题 1.滑动不流畅问题,这个滑动不流畅好像局限于局部的滚动,建议都写成 全局滚动,在css样式中加上: body {-webkit-overflow- ...

  2. android ios web兼容,js与android iOS 交互兼容

    js与android iOS 交互兼容 在Android与js交互方面还是要比iOS方便很多,而UIWebView只暴漏出- (BOOL)webView:(UIWebView *)webView sh ...

  3. ios和Android样式不兼容(待更新)

    ios和Android样式不兼容 ::after在ios中不显示

  4. android版本向上兼容吗,Android 的向前兼容和向后兼容

    向后兼容和向前兼容的概念 向后兼容(Backwards compatibility):较高版本的程序能够处理较低版本程序产生的数据. 比如word2007版本的word软件可以打开word2003创建 ...

  5. android+wear+和iphone,Android Wear手表兼容iPhone:和苹果抢用户

    原标题:Android Wear手表兼容iPhone:和苹果抢用户 北京时间9月1日早间消息,不愿使用Apple Watch智能手表的用户现在有了新选择:Android Wear设备. Android ...

  6. Android Gallery画廊 兼容4.0以上版本

    最近在做Gallery画廊效果时,搜索大量资料,发现很多博主都是2012年写的文章.对于现在的sdk版本,发现拿过来都没有用,效果变形: 非常遗憾,中间的图变形了,或者说没有把转角恢复. 查阅了大量资 ...

  7. android wear ios 连接,这招让你的Android Wear手表兼容iOS系统

    据外媒TechnoBuffalo报道,如果你喜欢Moto 360的外观设计,又偏爱iOS操作系统,怎么办?下面的这个方法或许能满足你的心愿. 这招让你的Android Wear手表兼容iOS系统(图片 ...

  8. android免root兼容所有版本ui调试工具

    SwissArmyKnife是什么 SwissArmyKnife 是一款方便调试android UI的工具,可以兼容所有android版本,不需要root权限.可以直接在android手机屏幕上显示当 ...

  9. 兼容iOS Android,React Native兼容iOS Android的TabBar

    最近着手开发的一个兼容iOS.Android的TabBar.还在不断开发中! 欢迎fork,欢迎star. :p 自己捣鼓了个E文的readme,没啥难度凑合可看. react-native-tabs ...

最新文章

  1. JavaScript最全编码规范
  2. VCSA中配置时间和时区,实测至6.5适用
  3. select设置默认文字,不出现在下拉框中
  4. BZOJ 4734 UOJ #269 [清华集训2016]如何优雅地求和 (多项式)
  5. 教育场景下的实时音频解决方案
  6. 计算机网络管理员五级试题,计算机网络管理员考试试题库和答案.doc
  7. python计算圆的面积
  8. [UE4]增加观察者
  9. 软件测试管理的几个基本要素
  10. python和c 的区别-Python和C区别该如何理解?如何适应这种区别?
  11. 《必玩》!学习大师们的游戏设计经验,激发你的游戏创造力!
  12. [最短路-Floyd][数学]Luogu P1552 牛的旅行
  13. 获取b站某个up的视频aid、cid
  14. 为啥扫描服务器端口无响应,服务器端口扫描工具
  15. Solr的facet
  16. 太赞了!没想到一个Handler还有中高级几种问法,进阶学习资料!
  17. win10的创建还原点系统恢复和dism++的系统备份和恢复比较
  18. 中国计算机科学家的艰苦奋斗,中科大校友结束中国无“芯”史摘得北京科技最高奖...
  19. XML Overview
  20. C语言函数大全--d开头的函数

热门文章

  1. javac不是内部命令或外部命令
  2. BSE---The Berkeley Segmentation Engine (BSE)
  3. 两万元的计算机什么配置,什么叫有钱就是任性?小伙买两万多的电脑眼都不眨,这配置我爱了!...
  4. Python 打包工具 pyinstaller
  5. steam游戏在线人数统计周报第1期-2019年10月11日
  6. Python 实现判断身份证号码的有效性
  7. 从补贴大战到数字化博弈,美团与饿了么的无尽战火
  8. 工作日闹钟 android,在Android中设置重复星期几闹钟
  9. 解决部分android手机页面跳转的黑白屏、闪屏、显示桌面背景问题
  10. win10下安装、卸载ubuntu双系统