专栏名称: 谷歌开发者
Google中国官方账号。汇集Android, Chrome, Angular等移动和网络开发技术、Google Play和AdMob等开发者成长、优化和变现平台。
目录
相关文章推荐
新浪科技  ·  【#有分析称金价上行空间依然存在#】#黄金日 ... ·  16 小时前  
新浪科技  ·  央视315曝光: ... ·  3 天前  
i黑马  ·  关店超200家,又一巨头大败退 ·  3 天前  
51好读  ›  专栏  ›  谷歌开发者

Android O 迁移应用官方指南

谷歌开发者  · 公众号  · 科技媒体  · 2017-06-27 13:02

正文


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

  1. 确保平台兼容性

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

  2. 使用 Android O SDK 构建应用

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



确保平台兼容性

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



准备一台运行 Android O 的设备

  • 如果您有一台兼容设备(Pixel、Pixel XL、Pixel C、Nexus 5X、Nexus 6P 或 Nexus Player),请从下面链接中包含的 下载页面 获得适合您的设备的 Android O 系统映像,然后按照说明将映像刷入设备。

    (https://developer.android.google.cn/preview/download.html)

  • 或下载适用于 Android Emulator 的 Android O 系统映像。它列于 SDK 管理器的 Android O Preview 下,显示为 Google APIs Intel x86 Atom System Image

注:Android O 系统映像只能通过 Android Studio 3.0 Canary 下载。如需了解详细信息,请参阅下面一节以获取 Android O SDK。



执行兼容性测试

与 Android O 的兼容性测试多半与您准备发布应用时执行的测试属于同一类型。这时有必要回顾一下 核心应用质量准则 测试最佳做法

核心应用质量准则:

(https://developer.android.google.cn/develop/quality-guidelines/core-app-quality.html )

测试最佳做法:

(https://developer.android.google.cn/training/testing/index.html)


不过,测试还有另一个层面:Android O 向 Android 平台引入了一些变化,即便不对 targetSdkVersion 做任何变动,仍可能影响应用的行为或令其根本无法运行。因此,您必须回顾表 1 中的关键变化,并对任何为适应这些变化而实现的修复进行测试。


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

变化 摘要 其他参考资料
后台位置更新频率下降 如果应用接收来自后台服务的位置更新,则其在 Android O 上接收更新的频率要比旧版本 Android 低。具体地讲,后台服务接收位置更新的频率不能超过每小时几次。不过,当应用位于前台时,位置更新频率不变。 后台位置限制
不再支持 net.hostname 查询 net.hostname 系统属性返回的结果为空。
send(DatagramPacket) 引发新异常 如果之前执行的 connect(InetAddress, int) 方法失败, send(DatagramPacket) 方法会引发 SocketException 行为变更:网络连接和 HTTP(S) 连接
AbstractCollection 方法引发正常的 NullPointerException 现在, AbstractCollection.removeAll(null) AbstractCollection.retainAll(null) 始终引发 NullPointerException ;之前,当集合为空时不会引发 NullPointerException 。此项变更使行为符合文档要求。 行为变更:集合的处理
Currency.getDisplayName(null) 引发正常的 NullPointerException 调用 Currency.getDisplayName(null) 会引发 NullPointerException 行为变更:语言区域和国际化

如需查看更详尽的 Android O 行为变更列表,另请参阅以下链接中包含的 Android O 行为变更。

(https://developer.android.google.cn/preview/behavior-changes.html)



构建具有 Android O 功能的应用

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


注:上述旨在确保平台兼容性的步骤是面向 Android O 构建应用的先决条件,因此请您务必先完成这些步骤。



获取 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 下选中下列项:







请到「今天看啥」查看全文