Android P Preview1 兼容要点[通俗易懂]

AndroidPPreview1,昨天3.8发布,兼容Preview1主要改下targetSdkVersion=28compileSdkVersion为前一个版本(比如27)在AndroidStudio3.2下能完整支持AndroidPPreview1AndroidPPreview1要点1.1约束调用非API接口:比如用JNI、反射来调用一下系统类、方法    Android…

大家好,又见面了,我是你们的朋友全栈君。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128483.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sqlserver 中EXEC和sp_executesql使用介绍「建议收藏」

    sqlserver 中EXEC和sp_executesql使用介绍「建议收藏」sqlserver中EXEC和sp_executesql用法区别整理

    2022年5月22日
    224
  • JS如何取整数

    JS如何取整数1.丢弃小数部分,保留整数部分parseInt(5/2)2.向上取整,有小数就整数部分加1Math.ceil(5/2)3,四舍五入.Math.round(5/2)4,向下取整Math.floor(5/2)

    2022年6月16日
    36
  • hdu 1507 Largest Rectangle in a Histogram 动态规划计算最大面积

    hdu 1507 Largest Rectangle in a Histogram 动态规划计算最大面积

    2021年12月5日
    61
  • python 自动化操作 模块_自动化的基本原理

    python 自动化操作 模块_自动化的基本原理1)什么是xlrd模块?python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel(excelread),xlwt是写excel(excelwrite)的库。(2)为什么使用xlrd模块?在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。xlrd模块可以用于读取Excel的数据,速度非常快,推荐使用!常用单元格的数据类型empty(空的)numberdatebooleanerrorblank(空白表格)导入模块常用的函数。…

    2022年9月26日
    3
  • 大数据时代,何来隐私保护_大数据时代人还有什么隐私

    大数据时代,何来隐私保护_大数据时代人还有什么隐私数据影响力正在不断增强。网络上的个人信息帮助特朗普赢得了总统竞选,而民众的在线身份一次又一次的让Facebook突破底线。但由于美国大选以及最近揭露的Facebook数据泄密丑闻,不仅引来了联邦贸易委员会的调查,还让在线消费者和立法者对数据在我们生活中的角色提出了质疑。而数据科学家们也开始质疑起自己的未来。Facebook首席执行官马克扎克伯格对公司造成的疏忽表示道歉,但是对一些数据专家来说,这是…

    2022年9月28日
    5
  • 项目经理的职业化素养建设——石化干部管理学院培训「建议收藏」

    项目经理的职业化素养建设——石化干部管理学院培训「建议收藏」5月26日,应邀到中石化干部培训管理学院,给中石化海外新项目经理进行《项目经理职业化素养和核心能力建设》的培训。中石化干部培训管理学院坐落在北京立水桥畔,是中石化培训和培养干部的基地。参训的学员主要为中石化的海外项目经理,学员年龄在30-40岁之间,长期在海外工作,主管中石化海外项目管理,具有很强项目管理实践经验。本次培训定位在讲授“作为一个项目经理应该培养和建设什么样的职业化素养和和核心能力”,

    2022年10月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号