1.8、向 Android O 迁移应用

文章摘要
1、 确保平台兼容性
2、构建具有 Android O 功能的应用
3、获取 Android O SDK
4、更新构建配置
5、从清单文件中移除广播接收器
6、测试 Android O 应用


英文文献

Android O 引入了若干新的功能和 API,并加入了即便您未对应用做任何更改仍可能对其行为产生影响的一些变动。为帮助您做好准备,本页面将说明如何执行兼容性测试,以及如何更新应用以便利用 Android O 的新功能:

  • 1、确保平台兼容性验证您的应用能够在新版本平台上全功能运行。在此阶段,您不需要使用新的 API,也不需要更改应用的 targetSdkVersion,但可能需要进行一些细微的更改。

  • 2、使用 Android O SDK 构建应用当您准备好利用平台的新功能时,将 targetSdkVersion 更新至“O”,验证应用是否仍可按预期方式运行,然后开始使用新的 API。

一、确保平台兼容性

这一步的目标是确保应用在 Android O 上可照常运行。由于一些平台变化可能影响应用的行为方式,因此可能需要进行一些调整,但您不需要使用新的 API 或更改 targetSdkVersion。

1.1、准备一台运行 Android O 的设备

  • a、如果您有一台兼容设备(Pixel、Pixel XL、Pixel C、Nexus 5X、Nexus 6P 或 Nexus Player),请从下载页面获得适合您的设备的 Android O 系统映像,然后按照说明将映像刷入设备
  • b、或下载适用于 Android Emulator 的 Android O 系统映像。它列于 SDK 管理器Android O Preview 下,显示为 Google APIs Intel x86 Atom System Image

:Android O 系统映像只能通过 Android Studio 3.0 Canary 下载。

1.2、执行兼容性测试

与 Android O 的兼容性测试多半与您准备发布应用时执行的测试属于同一类型。这时有必要回顾一下核心应用质量准则测试最佳做法
不过,测试还有另一个层面:Android O 向 Android 平台引入了一些变化,即便不对 targetSdkVersion
做任何变动,仍可能影响应用的行为或令其根本无法运行。因此,您必须回顾表 1 中的关键变化,并对任何为适应这些变化而实现的修复进行测试。

对运行在 Android O 设备上的所有应用都有影响的关键变化。

二、构建具有 Android O 功能的应用

除了提供新的 API 外,Android O 还会在您更新 targetSdkVersion 时引发其他行为变更。本节说明如何将开发环境设置为以新平台为目标,以及如何着手构建和测试 Android O API 带来的变化和新功能。

三、获取 Android O SDK

  • 1、安装 Android Studio 3.0 Canary。只有 Android Studio 3.0 包含对 Android O 提供的所有新开发者功能的支持。因此您需要获得 Android Studio 3.0 Canary 版本,以便开始使用 Android O SDK。但您仍可保留已安装的 Android Studio 稳定版。

  • 2、启动 Android Studio 3.0,然后点击 Tools > Android > SDK Manager 打开 SDK 管理器。

  • 3、在 SDK Platforms 标签中,选中 Show Package Details。在 Android O Preview 下选中下列项:

    • Android SDK Platform O
    • Google APIs Intel x86 Atom System Image(只需在使用模拟器时选中)
  • 4、切换到 SDK Tools 标签,选中所有已提供更新的项(点击每个显示破折号 的复选框)。这应该包括下列必需项:

    • Android SDK Build-Tools 26.0.0(rc2 或更高版本)
    • Android SDK Platform-Tools 26.0.0(rc2 或更高版本)
    • Android Emulator 26.0.0
    • Support Repository
  • 5、点击 OK 安装所有选定的 SDK 软件包。

现在您就可以开始使用 Android O Developer Preview 进行开发了。

四、更新构建配置

将 compileSdkVersion、buildToolsVersion、targetSdkVersion 和 Support Library 版本更新为下列版本:

android { compileSdkVersion 'android-O' buildToolsVersion '26.0.0-rc2' defaultConfig { targetSdkVersion 'O' } ...}dependencies { compile 'com.android.support:appcompat-v7:26.0.0-beta1'}**// REQUIRED: [Google's new Maven repo](https://developer.android.com/studio/build/dependencies.html#google-maven) is required for the latest// support library that is compatible with Android O**repositories { maven { url 'https://maven.google.com' }}

备注 :您不能在此配置下发布应用。“O”版本是一个临时 API 级别,只能用于 Android O Developer Preview 期间的开发和测试。您必须等到最终 API 级别发布时再发布 Android O 变更,届时再次更新配置。

五、从清单文件中移除广播接收器

由于 Android O 引入了新的广播接收器限制,因此您应该移除所有为隐式广播 Intent 注册的广播接收器。将它们留在原位并不会在构建时或运行时令应用失效,但当应用运行在 Android O 上时它们不起任何作用。
显式广播 Intent(只有您的应用可以响应的 Intent)在 Android O 上仍以相同方式工作。
这个新增限制有一些例外情况。

六、测试 Android O 应用

完成以上准备工作后,您就可以构建应用,然后对其做进一步测试,以确保 Android O 为目标平台时它能正常工作。这时有必要回顾一下核心应用质量准则测试最佳做法
如果您构建应用时设置了适用于 Android O 的 targetSdkVersion
,应该注意特定的平台变化。即便您不实现 Android O 中的新功能,其中的一些变化仍可能严重影响应用的行为或令其根本无法运行。

targetSdkVersion 设置为“O”时影响应用的关键变化。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 127,697评论 18 546
  • Android O 引入了若干新的功能和 API,并加入了即便您未对应用做任何更改仍可能对其行为产生影响的一些变动...
    谷歌开发者阅读 1,490评论 4 23
  • Android O引入了一些新功能和新的API,可能即使你没有做任何更改也会可能会引起行为的变更,为了帮助你良好的...
    小菜鸟程序媛阅读 2,748评论 3 5
  • 我们湘西有很多地方称外婆为“嘎婆”,很少听见本地伢子喊外婆,多数都喊“嘎婆。” “嘎婆,给我2元钱买糖呷。” “嘎...
    念清思雨阅读 560评论 1 3
  • 从前有一个圆圆王国,里面有好多圆圆,圆圆王国只要有东西一碰就会变成这样......
    Sammyt阅读 63评论 0 0