核心应用质量指南

为了给优质应用奠定坚实的基础,请遵循核心应用质量指南。

该指南定义了所有应用都应达到的最低质量标准。

自适应应用质量

Android 应用可在各种设备上运行,包括紧凑型手机、平板电脑、可折叠设备、桌面设备、联网显示屏、车载信息娱乐系统、电视和 XR 设备。分屏和窗口化模式等窗口模式可让应用在屏幕上可调整大小的部分中运行。

遵循自适应应用质量指南(与核心应用质量指南结合使用),以:

  • 创建针对所有设备类型和屏幕尺寸优化的应用
  • 让您的应用在 Google Play 商品详情和搜索结果中获得更高的排名
  • 获取更多用户并提高用户留存率

指南

以下核心指南可帮助您打造优质的基本应用。

用户体验

标准的 Android 视觉设计和互动模式可提供稳定一致的直观用户体验。

尽可能使用 Material Design 组件来代替 Android 平台组件创建应用的界面。Material Design 提供现代化的 Android 外观和风格,同时还有助于在各种 Android 版本之间提供一致的界面。

易用性

ID 测试 说明
Consistent_UX T-Consistent_UX
T-SD_Card
应用在所有设备类型上为所有应用使用情形提供一致的用户体验。
App_Switcher T-App_Switcher
T-SD_Card
当焦点切换到另一个应用时,应用会进入后台。当从最近使用的应用切换器重新激活应用时,应用会返回前台。
Sleep_Resume T-Sleep_Resume
T-SD_Card
当应用是前台应用时,设备进入休眠状态时,应用会暂停;设备唤醒时,应用会恢复。
Lock_Resume T-Lock_Resume
T-SD_Card
当应用是前台应用时,会在设备锁定后暂停,并在设备解锁后恢复。

界面

ID 测试 说明
Display_State_Parity T-Orientation_Transitions

屏幕方向和折叠状态所展现的功能特性和操作大致相同。

Fullscreen_Display T-Orientation_Transitions

在两种屏幕方向下,应用均填满应用窗口,且不会因配置变更(包括设备折叠和展开)而出现信箱模式现象。

可接受为补偿屏幕几何图形的细微差异而出现少许黑边。

Orientation_Transitions T-Orientation_Transitions 应用能正确处理屏幕方向之间的快速转换及设备折叠和展开,而不会出现显示呈现问题或丢失状态。

画质

ID 测试 说明
Graphic_Quality T-Graphic_Quality

应用显示的图形、文本、图片和其他界面元素须没有明显的失真、模糊或像素化。

  • 应用尽可能使用矢量可绘制对象
  • 应用为所有目标屏幕尺寸和设备类型使用高品质的图形
  • 菜单边缘、按钮和其他界面元素没有明显的走样
Line_Length T-Line_Length 应用通过将每行文本的长度限制为 45-75 个字符(包括空格),确保文本和文本块的可读性。
Theme_Support T-Theme_Support 应用的内容以及应用访问的所有 Web 内容都支持浅色主题和深色主题
ID 测试 说明
Back_Button_Nav T-Back_Nav 应用支持标准返回按钮导航,不会在屏幕上使用任何自定义的返回按钮提示。
Back_Gesture_Nav T-Back_Nav 应用支持用于返回和转到主屏幕的手势导航
State_Preservation T-State_Preservation
T-Back_Nav

应用在离开前台时能够保留用户状态或应用状态,并可防止因返回导航和其他状态更改而意外丢失数据。

返回前台时,应用会恢复保留的状态和任何待处理的状态性事务。例如对可编辑字段的更改、游戏进度、菜单、视频以及应用的其他部分。

  • 当应用从最近使用的应用切换器恢复时,能够准确地让用户返回到上次使用应用时的状态。
  • 当设备从休眠(锁定)状态中被唤醒后,应用在恢复时能够准确地让用户返回到上次使用应用时的状态。
  • 当应用从主屏幕所有应用重新启动时,应根据自上次使用以来已经过多长时间,执行以下某项操作:
    • 如果应用是最近(几分钟前)使用的,则将应用状态恢复为尽可能接近之前的状态。
    • 如果已经过去很长时间,则尝试将应用恢复为与上一次运行状态最接近的状态,或者从主屏幕或一些其他默认状态启动应用。

通知

ID 测试 说明
Notification_Quality T-Notification_Quality

通知会提供与您的应用相关的实用信息。

  • 请勿使用通知来交叉推介或宣传其他产品,因为 Play 商店严禁此类行为。
  • 通知渠道是根据最佳实践定义的,而不是通过一个渠道提供所有通知。
  • 选择 正确的通知优先级
  • 如果可能,将多个通知堆叠到一个通知组中。
  • 在适当的情况下为通知设置超时
  • 仅在与进行中的事件(例如音乐播放或通话)相关时,通知才持续保留。如需了解详情,请参阅“功能”部分
Conversation_Quality T-Notification_Quality

对于即时通讯应用、社交应用和对话:

无障碍

ID 测试 说明
Touch_Target_Size T-Touch_Target_Size 触摸目标至少为 48 dp。请参阅 Material Design 布局和排版指南。
Visual_Contrast T-Visual_Contrast

应用文本和前景内容与应用背景保持以下对比度:

  • 3:1,适用于大号文字和图形
  • 4.5:1,适用于小号文字(小于 18 pt 或小于 14 pt [如果文字为粗体])

详细了解颜色和对比度

Content_Description T-Content_Description 使用 contentDescription 描述每个界面元素TextView 除外)。

功能

应用应实现以下功能行为。

音频

ID 测试 说明
Audio_Playback_Start T-Audio_Playback_Start

当用户发起音频播放时,应用应在一秒钟内执行以下某项操作:

  • 开始播放音频
  • 提供一个指示条,提示用户正在准备音频数据
Audio_Focus_Request T-Audio_Focus_Request 应用应在音频开始播放时请求音频焦点,并在播放停止时放弃音频焦点。
Audio_Focus_Change T-Audio_Focus_Change 应用应处理其他应用对音频焦点的请求。例如,在其他应用播放语音时,应用可能会降低播放音量。
Audio_Playback_Background T-Audio_Playback_Background

应用应支持后台播放

应用必须使用前台服务,以防止系统在应用不再可见时终止应用进程。应用还必须在状态栏或锁屏状态下显示一个无法关闭的常驻通知,以告知用户应用正在运行。

用户应能够使用通知或锁屏控件或所连接配件上的控件来控制播放。

Audio_Notification_Style T-Audio_Notification_Style 当应用在后台播放音频时,必须创建通过 MediaStyle 设置样式的通知
Audio_Playback_Resume T-Audio_Playback_Resume 如果应用位于后台且音频已暂停,则音频会在应用返回前台时恢复,或者应用必须提示用户播放已处于暂停状态。

视频

ID 测试 说明
Video_PiP T-Video_PiP 如果应用播放视频,则应支持进行画中画播放。
Video_Encoding T-Video_Encoding 如果应用会对视频进行编码,则应使用 HEVC 视频压缩标准执行此操作。
Video_Playback_Background T-Video_Playback_Background

当应用不是最顶层应用时,应用支持视频后台播放,包括当应用窗口处于以下状态时:

  • 已最小化
  • 位于其他窗口或系统界面(例如通知栏或主屏幕/锁屏)后面
  • 位于可见桌面屏幕之外

分享

ID 测试 说明
System_Sharesheet T-System_Sharesheet 如果共享内容,应用应使用 Android Sharesheet。该应用可以推荐自定义解决方案不可用的目标。

后台服务

ID 测试 说明
Background_Service_Optimization T-Background_Service_Optimization

应用避免在后台运行不必要的长时间服务,以确保用户设备能够平稳运行。

注意:系统会对后台服务应用各种限制

以下是后台服务的错误用法:

  • 保持网络连接,以便接收通知
  • 保持蓝牙连接
  • 一直开启 GPS

如需了解详情,请参阅后台任务概览

性能和稳定性

应用应提供最佳的性能、稳定性、兼容性和响应速度。

性能

ID 测试 说明
App_Startup_Time T-App_Startup_Time 应用能迅速加载,如果加载时间超过 2 秒,则在屏幕上向用户提供反馈(进度指示器或类似提示)。
Rendering_Performance T-Rendering_Performance 应用每 16 毫秒(或更短时间)渲染一帧,以实现每秒至少 60 帧的显示效果。如需有关呈现问题的帮助,请参阅呈现速度缓慢
StrictMode_Compliance T-StrictMode_Compliance 启用 StrictMode(请参阅 StrictMode 测试部分)之后,在测试应用期间,指示灯不会呈红色闪烁(StrictMode 的性能警告)。

稳定性

ID 测试 说明
Stability_ANR T-Stability_ANR 应用不会崩溃,也不会因阻塞界面线程而导致出现 ANR(Android 无响应)错误。使用 Google Play 发布前测试报告发现潜在的稳定性问题。部署后,请在 Google Play 管理中心内监控 Android Vitals 页面。

SDK

ID 测试 说明
Android_平台_兼容性 T-Android_Platform_Compatibility 应用在最新的公开版 Android 平台上运行,而不会崩溃或严重影响核心功能。
Target_SDK_Version T-Target_SDK_Version 应用通过在应用模块的 build.gradle 文件中设置 targetSdk 值来以最新的 Android SDK 为目标平台(为符合 Google Play 要求)。
Compile_SDK_Version T-Target_SDK_Version 应用通过在应用模块的 build.gradle 文件中设置 compileSdk 值来使用最新 Android SDK 进行构建。
SDK_Maintenance T-SDK_Maintenance
T-Non_SDK_Interfaces

使用的所有 Google SDK 或第三方 SDK 均为最新版本。对这些 SDK 所做的任何与稳定性、兼容性或安全性相关的改进都应及时向用户提供。

对于 Google SDK,请使用由 Google Play 服务提供支持的 SDK(若有)。这些 SDK 可向后兼容、接收自动更新、缩减应用软件包的大小,以及高效利用设备上的资源。

Non_SDK_Interfaces T-Non_SDK_Interfaces 应用不会使用非 SDK 接口
Production_Build_Quality T-Production_Build_Quality 正式版应用中不包含任何调试库。应用中包含的调试库可能会导致性能和安全问题。

电池

ID 测试 说明
Power_Management T-Power_Management

应用能正确支持电源管理功能低电耗模式和应用待机模式

应用可以请求电源维护豁免。请参阅针对低电耗模式和应用待机模式进行优化中的对其他用例的支持

隐私保护和安全性

应用安全地处理用户数据和个人信息,并提供适当的权限级别。

在 Google Play 商店中发布的应用还必须遵循 Google Play 用户数据政策,以保护用户隐私。

权限

ID 测试 说明
Minimize_Permissions T-Minimize_Permissions 应用仅请求支持当前用例所需的绝对最低权限。对于某些权限(例如位置信息),如果可能,应用会使用粗略规范代替精细规范。请参阅尽量减少权限请求
Sensitive_Permissions T-Sensitive_Permissions

仅当与应用的核心使用情形直接相关时,应用才会请求获取访问敏感数据(例如短信或通话记录权限组位置信息)或者付费服务(例如拨号器或短信)的权限。必须以醒目的方式向用户披露使用这些权限所产生的影响。

根据您的应用使用权限的方式,您可以通过替代方式实现应用的用例,而无需依赖于访问敏感信息。例如,与请求与用户联系人相关的权限相比,使用隐式 intent 来请求访问权限可能会更合适一些。

Runtime_Permissions T-Runtime_Permissions 应用应在提出功能使用请求时请求运行时权限,而不是在应用启动期间请求权限。
Permission_Rationale T-Permission_Rationale 应用清楚地说明了需要权限的原因
Graceful_Degradation T-Graceful_Degradation 当用户拒绝或撤消某项权限时,应用会优雅降级。应用不应完全阻止用户访问。

数据和文件

ID 测试 说明
Sensitive_Data_Storage T-Sensitive_Data_Storage
T-Sensitive_Data_Handling
所有敏感数据都存储于应用的内部存储空间中
Sensitive_Data_Logging T-Sensitive_Data_Logging 未将个人或敏感用户数据记录到系统日志或应用特有的日志中。
Hardware_IDs T-Hardware_IDs 应用不会出于识别身份的目的而使用任何不可重置的硬件 ID(例如 IMEI)。

认同

ID 测试 说明
Autofill_Hints T-Autofill_Hints 应用会提供提示以自动填充账号凭据和其他敏感信息(例如:卡信息、实际地址和电话号码)。
Credential_Manager T-Credential_Manager 应用集成了 Credential Manager for Android,可提供无缝的登录体验,并统一支持通行密钥、联合身份和密码。
Biometric_Authentication T-Biometric_Authentication 应用支持生物识别身份验证功能,可保护财务交易或敏感信息(例如重要的用户文档)。

应用组件

ID 测试 说明
Component_Export T-Component_Export

应用会为所有 activityservice广播接收器,尤其是 content provider 显示设置 android:exported 属性。

导出与其他应用共享数据的应用组件,或应由其他应用调用的组件。

Component_Permissions T-Component_Permissions

所有 intent 和广播遵循以下最佳做法:

Component_Protection T-Component_Protection

在应用之间共享内容的所有组件均针对自定义权限使用 android:protectionLevel="signature"。这包括 activityservice广播接收器,尤其是 content provider

应用不应依赖于访问已安装软件包的列表。

网络

ID 测试 说明
Network_Security_Traffic T-Network_Security_Traffic 所有网络流量均通过 SSL 发送。
Network_Security_Configuration T-Network_Security_Configuration 应用声明了网络安全配置
Security_Provider_Initialization T-Security_Provider_Initialization 如果应用使用 Google Play 服务,则安全提供程序在应用启动时进行初始化

WebView

ID 测试 说明
WebView_Asset_Loader T-WebView_Asset_Loader
T-WebView_Navigation
请勿使用 setAllowUniversalAccessFromFileURLs() 访问本地内容。请改用 WebViewAssetLoader
WebView_JavaScript T-WebView_JavaScript
T-WebView_Navigation

Webview 不应搭配使用 addJavaScriptInterface() 与不受信任的内容。

在 Android 6.0(API 级别 23 及更高版本)上,请改用 HTML 消息通道

执行

ID 测试 说明
App_Bundles T-App_Bundles

应用不会从应用 APK 外部动态加载代码。使用 Android App Bundle,其中包括 Play Feature DeliveryPlay Asset Delivery

从 2021 年 8 月开始,在 Google Play 商店中发布的所有新应用都必须使用 Android App Bundle。

加密

ID 测试 说明
加密算法 T-Cryptographic_Algorithms 应用能使用平台提供的强大加密算法和随机数生成器。此外,应用不会实现自定义算法。

Google Play

启用应用以在 Google Play 上发布。

政策

ID 测试 说明
Play 内容政策 T-Play_Content_Policies 应用会严格遵守 Google Play 开发者内容政策的条款,并且不会提供不当内容,也不会使用其他方的知识产权或品牌。
Play_Content_Rating T-Play_Content_Policies 根据内容分级指南恰当设置应用的心智成熟度。

应用详情页面

ID 测试 说明
Play_Feature_Graphic T-Play_功能图片
T-Play_图片素材资源

应用置顶大图遵循这篇支持文章中介绍的准则。确保:

  • 应用详情包含高品质的置顶大图
  • 置顶大图不包含设备图片、屏幕截图,也不包含缩小后以及在应用适配的最小尺寸屏幕上显示时难以辨认的小文字
  • 置顶大图看起来不能像广告
Play_Device_References T-Play_Graphic_Assets 应用屏幕截图和视频不会显示或提及非 Android 设备。
Play_Misleading_Content T-Play_Graphic_Assets 应用屏幕截图或视频未以误导性方式展示应用的内容和体验。

用户支持

ID 测试 说明
Play_User_Reviews T-Play_Content_Policies 对于 Google Play 页面的评价标签页中常见的用户报告的 bug,如果 bug 可重现而且在多种不同的设备上发生,则应予以解决。如果错误只在少数设备上出现,但是这些设备十分受欢迎或者是新设备,则您仍须予以解决。

测试环境

按以下方式设置测试环境:

  • 模拟器测试:Android 模拟器是一种可在不同 Android 版本和屏幕分辨率下测试应用的绝佳方式。设置模拟设备 (AVD),以代表目标用户群最常用的设备类型和硬件/软件组合。使用以下模拟器(至少)测试各种外形规格的设备:

    • Foldables: 7.6" fold-in with outer display(这列在 AVD 管理器中的“Phones”下)
    • 平板电脑:Pixel C 9.94 英寸(2,560 像素 x 1,800 像素)
    • 移动应用通知测试:将移动设备 / 模拟器与 Wear OS 模拟器(Wear OS Round 1.84")配对
  • 硬件设备:您的测试环境应包括少量实际硬件设备,并且这些设备能够代表消费者可用的主要设备类型和硬件/软件组合。您无需测试市场上的每种设备。只需关注少量代表性的设备,甚至仅针对每种设备规格选用一两个设备即可。

  • 设备测试实验室:您也可以使用第三方服务(例如 Firebase Test Lab)在更多类型的设备上测试应用。

  • 使用最新的 Android 版本进行测试:除了针对目标用户群测试具有代表性的 Android 版本外,您还应始终针对最新版 Android 进行测试,以确保最新的行为变更不会对应用的用户体验产生负面影响。

如需有关测试(包括单元测试、集成测试和界面测试)的进一步指导,请参阅 Android 应用测试基础知识

StrictMode

对于性能测试,请在应用中启用 StrictMode。使用 StrictMode 捕获可能影响性能、网络访问以及文件读取和写入的操作。在主线程和其他线程上查找可能存在问题的操作。

您可以使用 StrictMode.ThreadPolicy.Builder 设置每个线程的监控政策,并使用 detectAll()ThreadPolicy 中启用所有受支持的监控。

使用 penaltyFlashScreen(),针对 ThreadPolicy 为违反政策的行为启用可视通知

测试

核心应用质量测试可帮助您评估应用的基本质量。您可以在测试计划中组合各项测试或综合运用多组测试。

用户体验

测试是否能提供一致且直观的用户体验。

易用性

ID 功能 说明
T-Consistent_UX Consistent_UX

导航到应用的所有部分 - 所有界面、对话框、设置和所有用户流程。

执行以下操作:
  • 如果应用允许运行修改或创建内容、播放游戏或媒体,请务必测试这些流程。
  • 在测试应用时,引入来自其他应用的中断(例如:接到通知或来电);然后对设备属性(例如:网络连接、电池功能、GPS 可用性和系统负载)应用临时更改。
  • 进入并测试所有应用内购买流程
T-App_Switcher App_Switcher 从每个应用屏幕,使用最近使用的应用应用切换器切换到其他正在运行的应用,然后返回正在测试的应用。
T-Sleep_Resume Sleep_Resume 按下电源按钮,让设备进入休眠状态,然后再次按下电源按钮唤醒屏幕。
T-Lock_Resume Lock_Resume 在设备上设置屏幕锁定。按下电源按钮让设备进入休眠状态(锁定设备);接着,再次按下电源按钮唤醒屏幕,然后解锁设备。

SD 卡

ID 功能 说明
T-SD_Card Consistent_UX

对安装到设备的 SD 卡的应用(如果应用支持此安装方法)执行核心功能测试。

如需将应用移至 SD 卡,请参阅应用的设置

界面

ID 功能 说明
T-Orientation_Transitions Display_State_Parity
Fullscreen_Display
Orientation_Transitions

从每个应用界面中,旋转设备使其在横屏和竖屏屏幕方向及折叠和展开状态之间切换至少三次。

验证应用是否执行以下操作:
  • 在所有显示方向和折叠状态下提供对等的功能
  • 在所有显示方向和折叠状态下填满应用窗口,且不采用信箱模式
  • 在方向之间快速转换以及设备折叠和展开期间,保持状态且没有呈现问题

画质

ID 功能 说明
T-Graphic_Quality Graphic_Quality 使用应用的所有功能。验证所有视觉元素(包括图形、文字、图片和其他界面元素)是否没有失真、模糊或像素化现象。
T-Line_Length Line_Length

检查应用中的所有文本块。验证文本和文本块的行长是否限制在 45-75 个字符(包括空格)之间,以确保可读性。

验证以下内容:
  • 所用构图在所有支持的设备类型上都适用
  • 没有明显的字母或词语截断
  • 按钮或图标中没有不当的文本换行
  • 文本与周围元素之间有足够的间距
T-Theme_Support Theme_Support 验证所有文字在浅色主题和深色主题中是否清晰可辨。验证所有视觉元素在浅色主题和深色主题中是否清晰可辨且美观。
ID 功能 说明
T-Back_Nav Back_Button_Nav
Back_Gesture_Nav

导航到应用的所有部分 - 所有界面、对话框、设置和所有用户流程。

在每个应用界面上,按返回按钮或使用返回滑动手势。应用应导航到上一个屏幕或主屏幕。

T-State_Preservation State_Preservation 在每个应用界面上,按下设备的主屏幕键或使用手势导航中的向上滑动,然后从所有应用界面重新启动应用。

通知

ID 功能 说明
T-Notification_Quality Notification_Quality
Conversation_Quality
在通知抽屉式导航栏中触发并查看应用能够显示的所有通知类型。如果适用(Android 4.1 及更高版本),请展开通知并点按提供的所有操作。

无障碍

ID 功能 说明
T-Touch_Target_Size Touch_Target_Size 验证触摸目标是否能够针对所有屏幕尺寸和配置保持一致且易于触摸的尺寸和位置。如需了解有关无障碍方面的信息,请参阅无障碍功能扫描仪
T-Visual_Contrast Visual_Contrast 验证所有视觉元素的对比度。
T-Content_Description Content_Description 验证除 TextView 以外的所有界面元素是否都有内容说明。

功能

验证您的应用是否实现了以下功能行为。

音频

ID 功能 说明
T-Audio_Playback_Start Audio_Playback_Start 开始播放音频。验证应用是否在一秒内开始播放音频,或者提供一个指示条,提示用户正在准备音频数据以供播放。
T-Audio_Focus_Request Audio_Focus_Request 开始播放音频。应用应请求音频焦点。当音频播放停止时,应用应放弃音频焦点(对于以 Android 12(API 级别 31)及更高版本为目标平台的应用,此操作会自动完成)。
T-Audio_Focus_Change Audio_Focus_Change 开始播放音频。在另一个应用中开始播放音频。您的应用应响应音频焦点变化,并停止音频播放或降低播放音量。
T-Audio_Playback_Background Audio_Playback_Background

开始播放音频。与另一个非音频应用互动,使其成为前台应用。该应用应继续在后台播放音频,并在状态栏中显示通知。验证您是否可以使用通知中显示的控件管理播放。

锁定设备屏幕。应用应继续在后台播放音频,并在锁屏上显示通知。验证您是否可以使用通知中显示的控件管理播放。

T-Audio_Notification_Style Audio_Notification_Style 开始播放音频。以作为前台应用的身份与其他非音频应用互动。验证您的应用是否继续在后台播放音频,并创建了通过 MediaStyle 设置样式的通知。请参阅与媒体控件和谐共处
T-Audio_Playback_Resume Audio_Playback_Resume 开始播放音频。以作为前台应用的方式与其他非音频应用互动。与您的应用互动,使其成为顶端应用。音频应恢复播放或音量应恢复。否则,应用应向用户表明播放已暂停。

视频

ID 功能 说明
T-Video_PiP Video_PiP 激活应用以画中画模式播放视频
T-Video_Encoding Video_Encoding 验证应用是否使用 HEVC 视频压缩标准对视频进行编码。
T-Video_Playback_Background Video_Playback_Background 开始播放视频。将应用窗口最小化,打开另一个应用以将应用窗口移至后台。在支持桌面模式的设备上,将应用窗口移出可见桌面。验证视频播放在所有情况下是否都能不间断地继续。

分享

ID 功能 说明
T-System_Sharesheet System_Sharesheet 创建 intent 并通过调用 startActivity()(以 intent 作为实参)来启动 activity。请参阅使用 Android Sharesheet。您的应用应显示 Android Sharesheet。

后台服务

ID 功能 说明
T-Background_Service_Optimization Background_Service_Optimization

使用应用的所有主要功能。验证是否未启动任何长时间运行的后台服务。

切换到其他应用,以将您的应用转至后台。前往设置,检查应用在后台时是否有服务在运行。在 Android 4.0 及更高版本中,前往应用界面,然后在正在运行标签页中找到相应应用。

性能和稳定性

验证性能、稳定性和完美像素的视觉效果。

性能

ID 功能 说明
T-App_Startup_Time App_Startup_Time 启动应用。验证应用是否能迅速加载,如果加载时间超过 2 秒,则验证应用是否会提供进度指示器或类似提示。
T-Rendering_Performance Rendering_Performance 使用应用的所有主要功能。验证应用是否以每秒至少 60 帧的速度渲染。使用 Profile HWUI rendering 选项来帮助测试应用。
T-StrictMode_Compliance StrictMode_Compliance

在应用中启用 StrictMode。使用所有主要功能。验证应用是否不会产生任何 StrictMode 性能警告;也就是说,在测试应用时,指示灯不会呈红色闪烁。红色闪烁表示存储空间、网络访问或内存管理(例如内存泄漏)方面存在不良行为。

密切关注垃圾回收及其对用户体验的影响。

稳定性

ID 功能 说明
T-Stability_ANR Stability_ANR 使用应用的所有主要功能。验证应用是否不会崩溃或阻塞界面线程,导致出现 ANR(Android 无响应)错误。查看 Google Play 发布前测试报告,以发现潜在的稳定性问题。

SDK

ID 功能 说明
T-Android_平台兼容性 Android_平台_兼容性 在最新的 Android 平台公开版本上运行您的应用。使用所有主要功能。验证应用不会崩溃,并且在运行过程中不会丢失任何核心功能。
T-Target_SDK_Version Target_SDK_Version
Compile_SDK_Version
查看 Android 清单文件和 build 配置,确保应用是针对可用的最新版 SDKtargetSdkcompileSdk)构建的。
T-SDK_Maintenance SDK_Maintenance 查看应用的 build.gradle 文件中是否存在任何过时的依赖项。
T-Non_SDK_Interfaces Non_SDK_Interfaces 使用 Android Studio lint 工具检测非 SDK 接口使用情况。如需了解替代测试方法,请参阅针对非 SDK 接口的限制
T-Production_Build_Quality Production_Build_Quality 检查应用的 build.gradle 文件中是否包含任何调试库。

电池

ID 功能 说明
T-Power_Management Power_Management

在低电耗模式和应用待机模式下使用所有主要应用功能。验证闹钟、计时器、通知和同步在低电耗模式维护窗口内以及应用退出应用待机模式时是否正常运行。

使用 ADB 命令测试低电耗模式和应用待机模式行为(如需了解相关要求和准则,请参阅在低电耗模式和应用待机模式下进行测试)。

如需诊断非预期的耗电过快,请使用 Android Studio Power ProfilerBattery Historian 工具,然后结合计划的后台工作。

隐私保护和安全性

测试用户期望的隐私和安全保护措施。

权限

ID 功能 说明
T-Minimize_Permissions Minimize_Permissions 查看应用在设备上使用清单文件、运行时以及使用应用设置(设置 > 应用信息)需要的所有权限。
T-Sensitive_Permissions Sensitive_Permissions 使用应用中请求权限的任何功能。验证应用是否仅在核心应用使用情形下请求获取访问敏感数据或服务的权限。验证是否已向用户明确告知授予敏感数据和服务权限的后果。
T-Runtime_Permissions Runtime_Permissions 使用应用中需要权限的所有功能。验证权限是否以延迟方式请求,即仅在访问相应功能时请求,而不是在应用启动期间请求。
T-Permission_Rationale Permission_Rationale 使用应用中需要权限的所有功能。验证应用是否向用户说明了需要这些权限的原因。
T-Graceful_Degradation Graceful_Degradation 使用应用中需要权限的所有功能。拒绝或撤消权限。验证应用是否提供替代用例并继续运行。

数据和文件

ID 功能 说明
T-Sensitive_Data_Storage Sensitive_Data_Storage 查看内部存储空间中存储的所有数据。验证外部存储的数据是否为敏感数据。
T-Sensitive_Data_Handling Sensitive_Data_Storage 查看如何处理从外部存储空间加载的数据。
T-Sensitive_Data_Logging Sensitive_Data_Logging 在监控设备日志的同时,使用所有主要应用功能。验证是否未记录任何用户私有信息。
T-Hardware_IDs 硬件 ID 使用所有主要应用功能。验证应用是否不会出于识别身份的目的而使用任何硬件 ID(例如 IMEI)。

认同

ID 功能 说明
T-Autofill_Hints Autofill_Hints 使用需要用户输入的所有应用功能。验证应用是否提供提示以自动填充输入字段中的数据,例如账号凭据和其他敏感信息。
T-Credential_Manager Credential_Manager 登录您的应用。验证该应用是否集成了 Credential Manager for Android,以提供统一的登录体验,支持通行密钥、联合身份和密码。
T-Biometric_Authentication Biometric_Authentication 使用需要进行身份验证的所有应用功能。验证应用是否通过生物识别身份验证功能来保护财务交易或敏感信息(例如重要的用户文档)。

应用组件

ID 功能 说明
T-Component_Export Component_Export 查看 Android 清单文件中为相应导出状态定义的所有应用组件。必须为所有组件显式设置导出的属性。
T-Component_Permissions Component_Permissions 查看应用在设备上使用清单文件、运行时以及使用应用设置(设置 > 应用信息)需要的所有权限。
T-Component_Protection Component_Protection 查看 Android 清单文件中定义的所有 Content Provider。确保每个提供方都设置了适当的 protectionLevel

网络

ID 功能 说明
T-Network_Security_Traffic Network_Security_Traffic 声明停用明文流量的网络安全配置,然后测试应用。
T-Network_Security_Configuration Network_Security_Configuration 查看应用的网络安全配置。验证配置失败时不执行 lint 检查。
T-Security_Provider_Initialization Security_Provider_Initialization 验证安全提供程序是否在应用启动时针对 Google Play 服务进行初始化。

WebView

ID 功能 说明
T-WebView_Asset_Loader WebView_Asset_Loader 查看应用的网络安全配置。验证配置失败时不执行 lint 检查。
T-WebView_JavaScript WebView_JavaScript 对于每个 WebView,导航到需要使用 JavaScript 的页面。
T-WebView_Navigation WebView_Asset_Loader
WebView_JavaScript
在每个 WebView 中,尝试导航至应用未直接加载的网站和内容。

执行

ID 功能 说明
T-App_Bundles App_Bundles 验证应用是否使用 Android App Bundle,并且不会从应用 APK 外部动态加载代码。

加密

ID 功能 说明
T-Cryptographic_Algorithms Cryptographic_Algorithms 验证应用是否使用平台提供的强大加密算法和随机数生成器。另请验证应用是否未实现自定义算法。

Google Play

验证您的应用是否已为 Google Play 做好准备。

政策

ID 功能 说明
T-Play_Content_Policies Play_Content_Policies
Play_Content_Rating
Play_User_Reviews
登录到 Google Play 管理中心以查看您的开发者资料、应用说明、屏幕截图、置顶大图、内容分级和用户反馈。

应用详情页面

ID 功能 说明
T-Play_Feature_Graphic Play_Feature_Graphic 下载置顶大图和屏幕截图,将其缩小以匹配设备上的显示屏尺寸以及您适配的设备类型。
T-Play_Graphic_Assets Play_Feature_Graphic
Play_Device_References
Play_Misleading_Content
查看应用中打包的所有图形资源、媒体、文本、代码库,以及下载的扩展文件。

归档

核心应用质量指南的旧版本: