1. 综述
欢迎加入MIUI Android P适配计划。谷歌官方已于2018年8月7号发布了Android P,代号为Pie(馅饼) 。MIUI也于同天发布了基于Android P的MIUI系统(下文将简称为MIUI P)。本文档将介绍如何将您的应用适配到MIUI P,防止应用出现运行时错误而造成损失。
重要声明:
- 若您的应用未适配MIUI P,用户仍可以在应用商店下载您的应用,但会收到应用未适配Android P的相关提示。为确保您的应用能够正常运行在MIUI P的版本上,请尽快完成适配。
- 为确保您的应用能够在第一时间适配MIUI P,我们强烈建议您提前适配Android P,适配方法请参考Google官方文档。您的应用如果已适配Android P,原则上将不会在MIUI P上出现Android P兼容性问题。若仍存在,请尽快通过本文最后一节所述的方式将问题反馈给我们,我们会尽快解决。
2. MIUI P包含的内容
MIUI P是支持下一代Android系统的版本,它包含了最新的Android P API及相关系统组件。除此之外,还包括了MIUI为小米手机用户深度订制、精心打造的UI、系统功能、系统应用等等。具体内容请参考MIUI的主页。
3. 获取MIUI P
3.1. 自动升级
MIUI P正式发布后,您即可通过我们推送的系统更新升级到MIUI P的版本。
3.2. ROM包升级
您可以在我们的官方网站上下载ROM包手动升级。具体操作步骤请参考升级手册。
3.3. 原生Android P获取
您可以通过此Google官方文档获取到Android P,开始Android P的适配工作。
4. 迁移指南
MIUI P(Android API 级别 P)引入了行为变更以及您的应用中可加以利用的新功能和 API。本节概述了迁移指南。您可以通过以下步骤,将应用迁移到 MIUI P 。
4.1. 确保兼容 Android P
验证您的应用能够在Android P平台上全功能运行。在此阶段,您不需要使用新的 API,也不需要更改应用的 targetSdkVersion,但可能需要进行一些细微的更改。具体请参考Android P行为变更。
4.2. 确保兼容 MIUI P
您也可以直接在MIUI P上验证您的应用。同样,在此阶段,您不需要使用新的 API,也不需要更改应用的 targetSdkVersion,但可能需要进行一些细微的更改。
若您的生成app页面应用已经能够在Android P上全功能运行,原则上也可以在MIUI P上全功能运行。但您仍需测试验证。
4.3. 更新您的目标版本并使用 MIUI P 功能
当您准备好利用平台的新功能时,将 targetSdkVersion 更新至“28”,验证应用是否仍可按预期方式运行,然后开始使用新的 API。
5. 新功能和API
MIUI P为用户和开发者引入众多新特性和新功能,具体的功能和API的变化可点击这里。
本文重点介绍面向开发者的新功能。要了解新API,请阅读 API 差异报告或访问Android API 参考 — 为醒目起见,将突出显示新API。 请务必查阅 Android P 行为变更以了解平台变更可能给您的应用带来哪些方面的影响。
6. 重点适配问题
为了解当前应用对MIUI P的适配情况,以便更好推进MIUI P的适配工作,我们已在内部进行了MIUI P的兼容性测试。我们选取了小米应用商店Top 1000的应用,对每个应用进行下载、安装、启动、monkey测试、遍历测试、卸载,并在整个过程中检测是否有FC/ANR问题发生。网站一键生成app软件根据测试结果,我们强烈建议您关注以下问题。若您的应用存在以下情况,请尽快适配。
6.1. 使用了第三方加固工具
由于加固工具和系统耦合紧密,因此若您的应用使用了第三方加固工具,请尽快更新您所使用的加固工具以适配Android P。我们也会尽快推动加固厂商适配Android P。
在我们的测试中,存在兼容性问题的第三方加固工具有:
- 梆梆加固
- 360加固
- 阿里聚安全
- 百度加固
若您的应用使用了以上的加固工具,请务必关注相应厂商的适配进度,以便第一时间更新加固工具以适配Android P。若您使用的是其它加固工具,也请关注工具的Android P适配情况。
6.2. 依赖org.apache.http.legacy.boot.jar包
Android Runtime虚拟机实例初始化时会加载init.environ.rc中配置的jar包。Android P中init.environ.rc已移除了/system/framework/org.apache.http.legacy.boot.jar,该jar包内的类将不会被加载。如果您的应用使用了Apahce Http Client的类,且没有手动加载该jar包,则应用会报ClassNotFoundException异常,无法正常运行。因此,若您的应用依赖此包,请务必尽早适配。也请关注您使用的第三方SDK是否有依赖该jar包,如果有,请关注SDK的适配情况,并在SDK适配后第一时间更新SDK。
6.3. 使用了第三方SDK
一些第三方SDK也存在Android P的兼容性问题,导致应用无法运行。在我们的测试中,存在兼容性问题的SDK有:
- 联通支付SDK
- 腾讯广点通SDK
若您的应用使用了包括这两款在内的SDK,请务必关注相应厂商的适配进度,以便第一时间更新SDK以适配Android P。
编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12748/
部分内容来自网络投稿,如有侵权联系立删