page.title=测试指南 page.image=images/cards/card-n-guide_2x.png meta.tags="preview", "testing" page.tags="preview", "developer preview" @jd:body
利用 Android N,您有机会确保应用可使用下一平台版本。 如 API 概览和行为变更中所述,该 Preview 包括大量 API 和可能影响应用的行为变更。 使用 Preview 测试应用时,您应重点关注一些特定的系统变更,确保用户拥有愉悦的体验。
本指南介绍可使用您的应用测试 Preview 的哪些功能以及如何测试。您应确定优先测试以下特定 Preview 功能,因为它们可能会对应用行为产生较大影响。
如需了解有关如何使用 Preview 系统映像设置设备或虚拟设备以进行测试的详细信息,请参阅设置 Android N SDK。
新权限模型改变了用户向您的应用分配权限的方式。 您的应用必须在运行时要求用户提供各项权限,而不是在安装过程中要求授予所有权限。 对于用户而言,此行为有助于他们更精细地控制每个应用的 Activity,并更深入地了解应用为何请求提供特定权限的上下文信息。 用户可以随时向应用授予某项权限或撤销其某项权限。 预览版的这种功能最有可能会对应用行为产生影响,而且可能会阻止某些应用功能运行或只能在降级状态中运行。
这一变更会影响在新平台上运行的所有应用,即便这些应用并非面向新平台版本开发亦是如此。 该平台为旧版应用提供有限的兼容性行为,但您现在应当开始计划将应用迁移到新权限模型,以便在官方平台启动时发布更新的应用版本。
使用以下测试提示有助于您计划并通过新权限行为执行应用测试。
adb shell pm list permissions -d -g
adb shell pm [grant|revoke] <permission.name> ...
权限更改会影响应用的结构和设计,以及您为用户提供的用户体验和流程。 您应评估应用的当前权限使用情况并开始计划要提供的新流程。 平台的正式版本提供兼容性行为,但您应计划更新应用,而不是依赖于这些行为。
确定应用实际需要和使用的权限,然后找出各种使用受权限保护的服务的代码路径。 您可通过结合使用新平台测试和代码分析完成此操作。 在测试中,您应通过将应用的 {@code targetSdkVersion} 更改为预览版,重点关注选择运行时权限。 如需了解详细信息,请参阅设置 Android N SDK。
使用已撤销和已添加权限的各种组合进行测试,突出显示依赖于权限的用户流程。 如果依赖关系不明显或不符合逻辑,则您应考虑重构或划分该流程,以消除依赖关系或阐明需要权限的原因。
如需了解有关运行时权限行为、测试和最佳做法的详细信息,请参阅权限开发者预览版页面。
当设备处于空闲状态或应用未聚焦时,低电耗模式和应用待机模式的节能功能将限制应用可执行的后台处理工作量。 系统可对应用实施的限制包括:限制或禁止访问网络、暂停后台任务、暂停通知、忽略唤醒请求和闹铃。 要确保应用在完成这些节能优化后正常运行,您应通过模拟这些低功耗状态对应用进行测试。
要在低电耗模式下测试您的应用,请执行以下操作:
$ adb shell dumpsys battery unplug $ adb shell dumpsys deviceidle step $ adb shell dumpsys deviceidle -h
要在应用待机模式下测试您的应用,请执行以下操作:
$ adb shell am broadcast -a android.os.action.DISCHARGING $ adb shell am set-idle <packageName> true
$ adb shell am set-idle <packageName> false
如果应用坚持在内部存储中使用任何设备特定的标识符,如 Google 云消息传递注册 ID,请确保遵循最佳做法将存储位置从自动备份中排除,如自动备份应用中所述。