作者 / Android 产品经理 Diana Wong
在往期 #11WeeksOfAndroid 系列文章中咱们介绍了 联系人和身份 、 隐衷和平安 ,本期将聚焦 Android 11 兼容性。咱们将为大家陆续带来 #11WeeksOfAndroid 内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容。
Android 11 兼容性
本期咱们将重点探讨 Android 11 兼容性这一对所有开发者都十分重要的主题。对于 Android,利用兼容性 一词指利用能够在特定版本的 Android (通常是最新版本) 上失常运行。
您能够返回官方网站具体获取可帮忙您进行兼容性测试的资源,以及本期所有对于该畛域的实用内容和资源!
更轻松实现利用与 Android 11 兼容
在每次版本更新中,咱们都心愿尽量减少利用适配 Android 所需的工作。在 Android 11 中,咱们增加了新的流程、开发者工具和版本公布里程碑,以帮忙咱们最大水平地缩小平台更新带来的影响,更轻松实现利用的兼容性。
- 最大限度地升高行为变更影响 : 咱们的指标始终如一,即在您将利用的 targetSdkVersion 设置为 Android 11 之前,尽可能将这些变更设置为可选项,最大水平缩小平台变更对利用带来的影响。如果您通过 Google Play 散发利用,则将有一年以上的工夫逐步实用这些变更。
- 更轻松的测试和调试 : 为了帮忙您测试兼容性,咱们将许多非兼容性变更设置为 “ 可敞开 ”。这意味着,您能够通过开发者选项或 adb 强制启用或禁用每一项更改。这样就无需为了一些根本测试而更改 targetSdkVersion 或从新编译您的利用。咱们也简化了 Android Studio 自动化测试的流程。
- 对非 SDK 接口的限度 : 为了帮忙开发者逐渐弃用非 SDK API,咱们一直致力,更新了 受限制的非 SDK 接口列表。判若两人,欢迎您提出反馈,并 收回公共 API 替代品的开发需要。
- 动静资源加载器 : 在开发者们移除非 SDK 接口调用的同时,咱们听到了来自 卓盟科技 等开发者的一个需要: 提供一个公开 API 来在运行时动静加载资源和素材。当初,咱们在 Android 11 中增加了 Resource Loader 框架,感激向咱们提出这些需要的开发者!
请持续浏览,具体理解咱们如何简化 Android 11 中的利用测试和调试流程。
在 Android 11 上测试
测试利用是否兼容 Android 新版本可能面临很多挑战,尤其是利用在受到多个平台变更影响的状况下。此过程中可能会呈现很多问题:
- 如何确定利用中可能受影响的区域?
- 是否应该通过更改 targetSDKVersion,来进行测试?如何用最简略的办法实现?
- 在开始测试后,如何躲避可能引起故障的问题?
- 在针对最新版本的 Android 进行开发和测试时,如何确认您的利用能持续在其余类型不同且 API 级别较低的设施上无差别体验?
开发者社区为咱们提供了大量相干问题的优质反馈。在 Android 11 中,咱们为平台增加了以下新工具,并在 Android Studio 中增加了新性能,因而您能够更加轻松的进行测试。
适于测试平台变更的新工具
和今年的更新一样,Android 11 的一些平台变更可能会影响您的利用。只管这些变更对于晋升平台性能至关重要,但咱们会尽可能将这些变更安顿在平台的最新 targetSDKVersion 之后,以便缩小对您的利用的间接改变。在 Android 11 中,咱们还会将更多此类平台变更增加到新的 兼容性框架中。
什么是兼容性框架?
您能够应用全新开发者工具,针对蕴含在兼容性框架内的变更对利用进行测试和调试。
例如,咱们已将蕴含在兼容性框架内的变更设为可切换,您能够通过设施的开发者选项或应用 Android ADB 强制启用或停用单个变更。Android 平台会主动调整外部 API 逻辑,因而您无需更改 targetSDKVersion 或从新编译利用,即可执行根本测试。此外,您能够隔离各项变更,从而节俭发现和调试利用中问题所需的工夫。
抉择要测试的变更
在切换变更的启用 / 停用状态之前,您应该通读 行为变更列表,确定哪些变更可能会影响您的利用。蕴含在兼容性框架内的变更已在变更形容前列出相应的 Change ID 和 Change Name。
一般来说,咱们建议您从 影响所有利用的行为变更 开始测试,因为无论 targetSDKVersion 如何,这些变更都可能对您的利用造成影响。咱们用上面这个 targetSDKVersion 管制的变更为例,阐明您能够如何在不应用其余 targetSDK 重编译利用的状况下,对这些变更进行测试。
在 后盾地位拜访变更 中,申请始终在后盾拜访地位的利用会受影响。如果您的利用受到这一变更的影响,那么从该变更开始测试是不错的抉择。此变更的名称为 BACKGROUND_RATIONALE_CHANGE_ID,变更 ID 为 147316723。您须要先应用这些信息启用此变更,而后再测试利用因而受到的影响。
独自测试变更
确定要测试的变更后,您能够应用开发者选项切换此变更的启用 / 停用状态。如要应用开发者选项,请关上设施上的 “ 设置 ” 利用,导航至 零碎 > 高级 > 开发者选项 > 利用兼容性变更。
开发者选项中可切换的平台变更,后盾地位拜访变更已启用
在本例中,BACKGROUND_RATIONALE_CHANGE_ID 是惟一已启用的变更,旨在最大水平放大利用可能遇到的各种问题的起因范畴。
您也能够应用 Logcat 或 ADB 辨认已启用的变更,或 应用 ADB 切换变更的启用 / 停用状态。请留神,您只能在应用可调试利用时切换变更。
测试和调试利用
启用变更后,您能够应用罕用的测试工作流来测试和调试利用。如遇到问题,请查看日志,确定问题的起因。如果不确定问题是否由已启用的平台变更引起,您能够尝试停用此变更,而后从新测试利用的同一模块。
更多资讯
如需理解其余相干示例,您能够观看无关 测试 Android 11 中平台变更的视频,或浏览 官网文档。
Android Studio 中用于测试利用兼容性的新工具
除了在新平台上手动进行测试外,咱们还简化了应用 Android Studio 在最新 Android 零碎上运行自动化测试的流程。
从 Android Studio 4.2 开始,咱们实现了在多个实体或虚构设施上并行运行插桩测试 (instrumentation tests)。当初,您能够在运行测试的过程中,从指标设施下拉菜单中抉择 多个设施。
此性能旨在帮忙您在开发周期中尽早发现问题,并让您可能比拟不同 Android 设施之间的差别。您能够应用 视图 > 工具窗口 > 运行 下的新 测试矩阵,钻研这些测试的后果。
新测试矩阵可按状态、设施和 API 级别过滤测试后果。
更多资讯
请观看无关 应用 Android Studio 测试利用兼容性的视频,或浏览 官网文档。
更多精彩
咱们建议您尝试这些新工具,并 向咱们发送反馈,通知咱们这些工具对您是否有用。咱们心愿这些工具能帮忙您更轻松地测试 Android 11 利用兼容状况。