MIUI Android P 适配指南

欢迎加入MIUI Android P适配计划。谷歌官方已于2018年8月7号发布了Android P,代号为Pie(馅饼) 。MIUI也于同天发布了基于Android P的MIUI系统(下文将简称为MIUI P)

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,但可能需要进行一些细微的更改。

若您的应用已经能够在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问题发生。根据测试结果,我们强烈建议您关注以下问题。若您的应用存在以下情况,请尽快适配。

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/

部分内容来自网络投稿,如有侵权联系立删

(0)
上一篇 2022年11月24日 下午3:49
下一篇 2022年11月24日 下午3:51

相关推荐