Android P Preview1 兼容要点
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 兼容要点相关推荐
- ios和Android常见的兼容问题
H5混合开发中 ios和Android常见的兼容问题 1.滑动不流畅问题,这个滑动不流畅好像局限于局部的滚动,建议都写成 全局滚动,在css样式中加上: body {-webkit-overflow- ...
- android ios web兼容,js与android iOS 交互兼容
js与android iOS 交互兼容 在Android与js交互方面还是要比iOS方便很多,而UIWebView只暴漏出- (BOOL)webView:(UIWebView *)webView sh ...
- ios和Android样式不兼容(待更新)
ios和Android样式不兼容 ::after在ios中不显示
- android版本向上兼容吗,Android 的向前兼容和向后兼容
向后兼容和向前兼容的概念 向后兼容(Backwards compatibility):较高版本的程序能够处理较低版本程序产生的数据. 比如word2007版本的word软件可以打开word2003创建 ...
- android+wear+和iphone,Android Wear手表兼容iPhone:和苹果抢用户
原标题:Android Wear手表兼容iPhone:和苹果抢用户 北京时间9月1日早间消息,不愿使用Apple Watch智能手表的用户现在有了新选择:Android Wear设备. Android ...
- Android Gallery画廊 兼容4.0以上版本
最近在做Gallery画廊效果时,搜索大量资料,发现很多博主都是2012年写的文章.对于现在的sdk版本,发现拿过来都没有用,效果变形: 非常遗憾,中间的图变形了,或者说没有把转角恢复. 查阅了大量资 ...
- android wear ios 连接,这招让你的Android Wear手表兼容iOS系统
据外媒TechnoBuffalo报道,如果你喜欢Moto 360的外观设计,又偏爱iOS操作系统,怎么办?下面的这个方法或许能满足你的心愿. 这招让你的Android Wear手表兼容iOS系统(图片 ...
- android免root兼容所有版本ui调试工具
SwissArmyKnife是什么 SwissArmyKnife 是一款方便调试android UI的工具,可以兼容所有android版本,不需要root权限.可以直接在android手机屏幕上显示当 ...
- 兼容iOS Android,React Native兼容iOS Android的TabBar
最近着手开发的一个兼容iOS.Android的TabBar.还在不断开发中! 欢迎fork,欢迎star. :p 自己捣鼓了个E文的readme,没啥难度凑合可看. react-native-tabs ...
最新文章
- JavaScript最全编码规范
- VCSA中配置时间和时区,实测至6.5适用
- select设置默认文字,不出现在下拉框中
- BZOJ 4734 UOJ #269 [清华集训2016]如何优雅地求和 (多项式)
- 教育场景下的实时音频解决方案
- 计算机网络管理员五级试题,计算机网络管理员考试试题库和答案.doc
- python计算圆的面积
- [UE4]增加观察者
- 软件测试管理的几个基本要素
- python和c 的区别-Python和C区别该如何理解?如何适应这种区别?
- 《必玩》!学习大师们的游戏设计经验,激发你的游戏创造力!
- [最短路-Floyd][数学]Luogu P1552 牛的旅行
- 获取b站某个up的视频aid、cid
- 为啥扫描服务器端口无响应,服务器端口扫描工具
- Solr的facet
- 太赞了!没想到一个Handler还有中高级几种问法,进阶学习资料!
- win10的创建还原点系统恢复和dism++的系统备份和恢复比较
- 中国计算机科学家的艰苦奋斗,中科大校友结束中国无“芯”史摘得北京科技最高奖...
- XML Overview
- C语言函数大全--d开头的函数
热门文章
- javac不是内部命令或外部命令
- BSE---The Berkeley Segmentation Engine (BSE)
- 两万元的计算机什么配置,什么叫有钱就是任性?小伙买两万多的电脑眼都不眨,这配置我爱了!...
- Python 打包工具 pyinstaller
- steam游戏在线人数统计周报第1期-2019年10月11日
- Python 实现判断身份证号码的有效性
- 从补贴大战到数字化博弈,美团与饿了么的无尽战火
- 工作日闹钟 android,在Android中设置重复星期几闹钟
- 解决部分android手机页面跳转的黑白屏、闪屏、显示桌面背景问题
- win10下安装、卸载ubuntu双系统