核心应用质量指南

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

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

自适应应用质量

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_Platform_Compatibility 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 测试 说明
App_Data_Backup T-App_Data_Backup

应用会在云端备份和设备到设备 (D2D) 传输过程中保留用户数据、设置和应用状态。

实现自动备份并配置 android:dataExtractionRules,以确保在设置新设备或重新安装应用时无缝恢复数据。

App_Logins_Restoration T-App_Logins_Restoration

当用户设置新设备时,应用会自动恢复用户账号和登录状态。

使用 Credential Manager 实现恢复凭据,以便自动重新对用户进行身份验证,而无需强制执行手动登录或账号恢复流程。

身份

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

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

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

Component_Permissions T-Component_Permissions

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

Component_Protection T-Component_Protection

在应用之间共享内容的所有组件均针对自定义权限使用 android:protectionLevel="signature"。这包括 activity、service、广播接收器,尤其是 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

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

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

执行

ID 测试 说明
App_Bundles T-App_Bundles

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

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

加密

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

Google Play

让您的应用能够在 Google Play 上发布。

政策

ID 测试 说明
Play_Content_Policies T-Play_Content_Policies 应用严格遵守《Google Play 开发者内容政策》的条款,不提供不当内容,也不使用他人的知识产权或品牌。
Play_Content_Rating T-Play_Content_Policies 应用的心智成熟度级别已根据内容分级指南进行了适当设置。

应用详情页面

ID 测试 说明
Play_Feature_Graphic T-Play_Feature_Graphic,
T-Play_Graphic_Assets

应用置顶大图遵循此支持文章中概述的指南。请确保:

  • 应用详情中包含高质量的置顶大图
  • 置顶大图不包含设备图片、屏幕截图或细小文字(在缩小并以应用定位的最小屏幕尺寸显示时难以辨认)
  • 置顶大图不应类似于广告
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 会得到解决。如果某个 bug 仅在少数设备上出现,但这些设备特别受欢迎或属于新设备,您仍应解决该 bug。

测试环境

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

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

    • Foldables:7.6" fold-in with outer display(这列在 AVD 管理器中的“Phones”下)
    • Tablet: Pixel C 9.94" (2,560px x 1,800px)
    • 移动应用通知测试:将移动设备 / 模拟器与 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 启动音频播放。验证应用是否会在 1 秒内开始播放音频,或提供视觉指示器来表明正在准备播放音频数据。
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 通过调用 startActivity()(以 intent 作为参数)来创建 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 帧的速度渲染。使用 HWUI 渲染模式分析选项可帮助您测试应用。
T-StrictMode_Compliance StrictMode_Compliance

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

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

稳定性

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

SDK

ID 功能 说明
T-Android_Platform_Compatibility Android_Platform_Compatibility 在最新公开版本的 Android 平台上运行您的应用。使用所有主要功能。验证应用不会崩溃,并且在运行时不会丢失任何核心功能。
T-Target_SDK_Version Target_SDK_Version、
Compile_SDK_Version
查看 Android 清单文件和 build 配置,确保应用是针对最新可用 SDK(targetSdk 和 compileSdk)构建的。
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 耗电性能分析器或 Battery 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 Hardware_IDs 使用应用的所有主要功能。验证应用不会出于识别身份的目的而使用任何硬件 ID(例如 IMEI)。

数据备份和恢复

ID 功能 说明
T-App_Data_Backup App_Data_Backup

在主设备上配置本地偏好设置、数据库和应用设置。执行云端备份或设备到设备 (D2D) 传输,将数据传输到新设备。

转移完成后,在目标设备上启动应用,并验证本地偏好设置、数据库状态和用户设置是否已根据自动备份规则准确恢复。如需了解详细的测试过程,请参阅测试备份和恢复。

T-App_Logins_Restoration App_Logins_Restoration

使用通行密钥、密码或 Google 登录功能在主要设备上设置已登录会话。执行云端备份或设备到设备 (D2D) 传输,将数据传输到新设备。

转移完成后,在目标设备上启动应用,并验证是否已使用 Restore Credentials 自动恢复身份验证,而无需显示登录界面或要求进行账号恢复。如需了解详细的测试流程,请参阅测试恢复凭据。

身份

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 清单文件中为相应导出状态定义的所有应用组件。必须为所有组件明确设置 exported 属性。
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
检查应用或扩展文件下载内容中打包的所有图形资源、媒体、文本、代码库和其他内容。

归档

旧版核心应用质量指南: