| 关键信息 | 原文 | 解读 |
| 应用安装 | 应用安装 | 测量应用在测试过程中是否出现安装不成功现象。 |
| 应用卸载后再安装 | 应用卸载后再安装:测量应用在卸载之后,不能再次成功安装。 | |
| 启动 | 正常启动 | 启动后在未做任何操作前应用出现的失败情况,如启动闪退、启动卡死、启动后资源加载失败等现象。 |
| 崩溃 | 运行崩溃 | 应用在运行过程中,出现异常,弹出崩溃对话框,退出应用。 |
| 无响应 | 运行无响应 | 测量应用在运行过程中出现"Application Not Responding"应用程序无响应对话框。 |
| 黑白边 | 启动黑白边 | 应用的UI不适配屏幕,在屏幕的某一个侧边出现全黑屏或白屏的现象。 |
| 系统特性支持 | 调用相机拍照功能 | 测试应用的拍照功能,测量测试过程中出现无法拍照的问题,比如:相机打不开、拍照之后无法生成并保存图片文件,拍照之后的图片文件是否可以正常显示等。 |
| 调用选取图片功能 | 测试调用选取图片功能,测量测试过程中不能正确调用选取图片的问题。 | |
| 调用定位功能 | 测试应用的定位功能,测量测试过程中出现无法获取手机位置信息的问题。 | |
| 调用麦克风识别语音功能 | 测试应用的录音功能,测量测试过程中出现无法录音的问题。 | |
| 旋转屏幕 | 打开系统自动旋转开关,测试应用支持自动旋转的页面,测量测试过程中出现无法旋转的问题,或者旋转之后页面的布局显示异常。 | |
| Targetsdkversion属性 | 建议升级应用的TargetSdkVersion到26,升级应用的TargetSdkVersion之后,能使用更多的系统新特性,能让应用更安全和用户体验更好。升级之后,需要对系统的行为变更专项测试,特别是通过TargetSdkVersion控制生效的变更,保证应用升级TargetSdkVersion之后不要出现兼容性问题。 | |
| 帐号异常 | 内置帐号登录认证 | 使用正常的应用帐号在网络正常的情况下,无法登录该应用。 |
| 第三方帐号登录认证 | 使用正常的第三方帐号在网络正常的情况下,无法登陆该应用 | |
| UI适配 | 控件异常 | 在App运行测试过程中出现的UI展示异常的情况,如黑屏、花屏、白屏、文字异常、展示缺失等。 |
| 使用非SDK接口 | 使用非SDK接口 | 非SDK接口指的是系统未开放的接口,对非 SDK 接口的处理是 API 抽象化的实现细节,接口可能会随时放生变更,如果应用使用了非SDK接口,很可能因为非SDK接口的变更导致应用出现不兼容,建议应用不要使用非SDK接口。 |
| 支持64位 | 支持64位 | 如果应用未支持64位,在只支持64位芯片的手机上运行就会出现兼容性问题,建议应用需要支持64位。 |
| 支持Content URI分享和共享文件 | 应用支持Content URI分享和共享文件 | 文件分享方向被分享方共享文件的唯一安全方法是向被分享方发送文件的Content URI,并授予被分享方对该URI的临时访问权限。具有临时URI访问权限的Content URI是安全的,因为它们仅适用于接收URI的应用程序,并且权限会自动过期。出于对文件分享的安全性考虑,建议应用支持使用Content Uri的方式分享文件。如果分享方使用了Content Uri分享文件,但是被分享方不支持Content Uri的方式读取文件,就会出现文件分享失败的问题,所以建议应用不管是作为分享方还是被分享方都需要支持Content Uri的这种更安全的分享方式。 |
| 关键信息 | 解读 |
| 应用崩溃 | 在用户正常操作的情况下,应用突然出现应用强行退出、异常停止运行等完全不可用的情况。 |
| 应用冻屏 | 整个系统内核和应用系统是正常的,只是某个应用或者某几个应用卡住屏幕不动或突然出现应用程序在一段时间内未能及时响应的故障,即是用户俗称的应用死机、卡死、卡屏、应用无响应ANR问题。 |
| 应用资源异常 | 资源过载:在用户正常操作的情况下,应用滥用系统资源引起系统软件稳定性死机重启故障。 资源泄漏(包括内存泄漏):在用户正常操作的情况下,因应用对内存、文件和线程使用不当,有限的资源超上限申请或使用完不释放会导致资源泄漏,进而引起应用崩溃、应用冻屏稳定性故障。 踩内存:在用户正常操作的情况下,程序指令非法访问内存地址,会造成应用崩溃、应用冻屏稳定性故障。 |
| 故障率 | 当期用户使用过程中本应用发生的故障总次数与当期用户使用本应用总时长的比值。 |
| 自恢复 | 软件系统自我恢复机制,包含了确保系统稳定和平衡的自我恢复、调节机制。 |
| 关键信息 | 原文 | 解读 |
| 应用启动时间 | 冷启动时间 | 冷启动是指之前应用没有启动过,或者启动过但是被清理掉,这时用户点击应用图标启动应用,需要创建相应的进程,做一些初始化、资源加载的处理,相对于热启动耗时较长,较长的等待时长会给用户带来不好的体验,所以对冷启动的时长进行检测,以此促进应用尽可能缩短时长,带来良好的用户体验。 |
| 热启动时间 | 热启动是指应用之前已经启动使用过,被切换到了后台,此时用户点击应用图标是把应用从后台切换到前台,这时用户知道使用过这个应用并且没有退出,所以会期望很快的看到这个应用打开,因此对热启动时间进行检测,使用户体验能够得到保障。 | |
| 启动窗口(Starting Window) | 启动窗口是指应用在冷启动时,在主界面显示前,先显示一个启动界面,让用户感受到在及时响应他的操作。由于很多应用的主界面比较复杂,主界面显示出来需要一定的耗时,如果没有启动窗口,用户点击图标后,不能立即看到有窗口弹出,会误认为点击图标没有响应,带来较差的用户体验。 | |
| 界面帧率 | 界面帧率 | 应用界面的刷新帧率,尤其是滑动时,如果帧率较低,会带来卡顿的感觉,所以保持一个相对较高的帧率会带来更流畅的体验。 |
| 应用界面设计 | 过度绘制 | 应用界面如果产生了过度绘制,则有可能会导致绘制的时间过长,进而导致丢帧,带来卡顿。同时过度的绘制也会带来额外的CPU和GPU消耗,影响待机时间。 |
| Strict mode | Strict mode用来帮助开发者发现代码中的一些不规范的问题,以达到提升应用性能的目的。例如,如果开发者在UI主线程中进行了网络操作或者文件系统的操作,这些操作可能会阻塞UI主线程的工作,导致产生丢帧、响应慢问题。 | |
| 内存占用 | 内存泄露 | 应用在使用内存时,如果产生了内存泄露,内存不能及时被系统回收,会引起系统内存紧张,新申请的内存分配变慢,影响性能,同时过高的内存也会导致应用退出,带来不好的用户体验。 |
| 前台内存占用 | 应用如果使用了较多的内存,会导致系统内存紧张,后续再申请的内存时,内存的分配变慢,对性能造成影响,同时也会导致其它在后台的应用被杀,用户再次使用时,启动时间变长。 | |
| 后台且亮屏内存占用 | 后台占用过多内存,会影响前台应用对内存的使用,带来响应变慢,同时拉高了后台应用被杀的可能性。 | |
| 后台且灭屏内存占用 | 后台占用过多内存,会影响前台应用对内存的使用,带来响应变慢,同时拉高了后台应用被杀的可能性。 | |
| CPU占用 | 后台且亮屏CPU占用 | 后台应用应该合理的运行,减少对CPU的占用,避免抢占CPU引起前台的操作卡顿。 |
| 后台且灭屏CPU占用 | 灭屏后,后台应用应该最大限度的控制自己的运行,尽量不使用CPU,避免频繁唤醒系统,影响待机,带来不好的用户体验。 |
| 关键信息 | 原文 | 解读 |
| 处理器 | 后台处理器占用 | 应用在后台时通过使用WakeLock唤醒锁来阻止系统进入休眠状态。允许用户触发的例外情况(如用户进行后台录音、下载、导航等场景),这种情况下一般在状态栏有当前行为的通知信息,用户可以据此手动关闭。 JobService任务执行结束时需要调用JobFinished及时释放Job锁,如果遗漏执行该操作,就会导致不必要的持锁时间过长。 |
| 前台处理器占用 | 根据大数据统计,视频类应用使用时长占比已超过20%,呈上升趋势,标准提出了对视频类应用的开发约束,降低功耗,提升用户体验。 硬编码和硬解码 相对于 软编码和软解码,能提升视频播放质量,减少了CPU的参与,能有效降低功耗。 视频类应用的图层数量尽量控制在2~3个。一般来说,主流的播放器都是2个图层,1个视频图层,1个UI图层。如果图层数量太多,就可能走GPU处理,功耗会上升。 后续会继续增加对游戏类、浏览类及社交类的标准。 | |
| 屏幕 | 后台屏幕占用 | 应用在后台时禁止阻止屏幕自动变暗或关闭;在屏幕关闭时,应用在后台自动点亮屏幕。 |
| 无线网络 | 后台无线网络占用 | 应用在后台时对无线网络进行扫描的次数和使用无线网络传输数据的时间。 允许用户触发的例外情况(如后台下载),这种情况下需在状态栏显示下载进度。禁止应用通过后台持续小数据流量的保活行为(非用户行为触发的。) |
| 音频设备 | 后台音频设备占用 | 应用在后台时禁止对音频设备(如麦克风和扬声器)的占用情况。 允许用户触发的例外情况(如后台录音和播放),这种情况下需在状态栏显示录音或声音播放。禁止应用通过无声播放或者轻音量播放的保活行为(用户不可感知的音量)。 |
| 摄像头 | 后台摄像头占用 | 应用在后台时对摄像头设备(如前置摄像头、后置摄像头、红外摄像头及闪光灯)的占用情况。 |
| 定位传感器 | 后台定位传感器占用 | 应用在后台时对定位传感器的占用情况。 |
| 动作传感器 | 后台动作传感器占用 | 应用在后台时对动作传感器的占用情况。 |
| Alarm | 后台Alarm占用 | 应用在后台通过使用Alarm唤醒机制阻止系统进入休眠状态。 |
| 关键信息 | 原文 | 解读 |
| 安装 | 应用在用户未授权情况下,不能进行程序下载、安装或升级操作 | 应用安装和升级必须经过用户授权,由用户通过应用市场进行操作,禁止以下操作(包括但不限于): 1). 通过系统提权(例如:ROOT或者利用系统漏洞),不经用户确认静默安装、升级应用; 2). 通过Android无障碍(Accessibility)功能,不经用户确认进行应用安装; 3). 通过热升级的能力,升级应用程序 |
| 禁止通过弹出胁迫、恐吓类信息,强迫、诱导用户下载和安装其他应用 | 禁止通过提示系统存在病毒、漏洞、风险的方式,诱导用户下载安装病毒扫描、手机管家、数据保护、隐私保护等应用。 | |
| 禁止为安装恶意软件提供链接或其他引导 | 禁止在应用程序界面或者通知中提供恶意软件的下载链接,或包含引导用户下载、安装恶意软件的文字描述、功能。 | |
| 禁止在未明确告知用户的情形下,诱导用户安装应用 | 在没有向用户明示且得到用户明示许可的情况下,禁止在用户安装、使用应用过程中,通过用户诱导的方式,安装其他应用。 | |
| 禁止应用安装后自动在桌面添加多图标 | 在没有向用户明示且得到用户明示许可的情况下,禁止在安装应用程序后在桌面添加多个图标,一个应用仅对应一个桌面图标。 | |
| 禁止应用程序在安装后首次启动时,要求用户完成积分任务才能使用应用的核心功能,否则应用强制退出。 | 禁止在用户首次启动应用程序时,应用程序强制要求用户必须完成积分任务才能使用核心功能,核心功能是用户选择安装应用程序的基本目标,应用程序不得对核心功能设置使用积分门槛。 | |
| 启动 | 应用在用户未授权情况下,不能执行自启动操作 | 手机启动后,未经用户点击启动的情况下,禁止应用在后台自动启动,禁止在用户启动应用过程中,应用在未经用户明示允许的情况下,从后台调起其他应用程序。 |
| 运行:权限 | 应用的API Level不能低于26(TargetSdk Version不能低于26),推荐设置API Level为28 | 应用适配的API Level等级不低于26(TargetSDKVersion>=26),推荐设置API Level为28。如果AndroidManifest中未明确设置TargetSDKVersion,则以minSDKVersion为准。 |
| 应用申请的权限,都必须有明确、合理的使用场景和功能说明。确保用户能够清晰明了地知道应用所申请权限的场景、用途、目的等信息;禁止诱导、误导用户授权。应用使用权限必须与申请所述一致 | 应用申请的权限,都必须有明确、合理的功能说明和使用场景说明,遵循合法、正当、必要原则,能够让用户清晰的理解申请权限的必要性。不以改善服务质量、提升用户体验、定向推送信息、研发新产品等为由引导、误导用户授予非业务功能必须使用的权限。 | |
| 权限申请遵循最小化原则, 应用只申请业务功能所必要的权限 | 在应用申请用户授权权限的时候,仅申请业务功能所必须的权限,与应用程序业务功能无关的权限不申请。 | |
| 应用在安装后首次启动的时候,避免频繁弹框申请多个权限,通过一次弹窗批量申请核心功能所需权限;其他敏感权限需要在用户使用对应业务功能时动态申请 | 应用程序在首次启动时,通过一次弹窗向用户获取核心功能运行所需的所有必须权限;其他非核心功能需要的权限,请在用户使用到该功能时,向用户提出权限授权申请。 例如,摄影应用需要访问设备的摄像头、存储拍摄的照片视频。当用户首次启动该应用时,可以向用户一次性申请摄像头使用权限,存储权限。但是,如果同一应用还具备与用户的联系人分享照片的功能,那么不应在应用首次启动时请求用户提供读通讯录的权限,而应等到用户尝试使用“分享”功能之后再请求该权限。 | |
| 应用不得申请权限直接拨打电话、发送短信。只有在用户主动将应用注册为默认短信、电话程序的情况下,应用向用户申请拨打电话、发送短信权限 | 系统已提供无需申请任何权限的拨打电话、发送短息的方式:使用Intent.ACTION_DIAL通过startActivity拉起系统拨号盘由用户点击后去拨打电话;使用Intent.ACTION_SENDTO通过startActivity拉起系统短信界面由用户点击后发送。 | |
| 严格控制应用访问位置权限,除导航、运动类应用可持续获取位置,其他类型应用仅使用时获取位置,禁止申请后台位置权限持续获取位置 | 应用申请用户位置权限时,向用户发起授权申请,允许用户在使用应用时(仅限前台)、始终(前台和后台)、禁止获取位置信息三个位置状态进行授权,除导航、运动类应用可始终在后台获取用户位置信息,其他类型的应用程序仅activity可见或正在运行前台服务的时候可以获取位置信息。 | |
| 严格控制外部存储权限,应用存在读取外部存储上文件的实际用户功能时,才允许申请外部存储权限,其他场景禁止申请外部存储权限 | 应用包含共享、下载、读取外部存储文件的功能时,才允许申请外部存储权限 合理的存储权限申请场景,包括但不限于以下几种: 1、 需要将应用内的照片、视频、音频等信息共享给其他应用使用,可以为其他应用展示,如拍照场景,需要存储图片或打开照片; 2、 需要获取照片、视频等功能信息,如设置头像时需要获取系统内的图片、发布朋友圈时,需要音乐或视频; 3、 下载文件场景,如浏览器从网络中下载文件到手机中; 4、 阅读器场景,打开本地的离线文件; | |
| 避免使用硬件标识符(例如IMEI),改用其他可替代的方案,减少申请READ_PHONE_STATE权限 | 禁止非系统应用访问硬件标识符将对应用数据统计、广告推荐、用户画像等业务场景造成影响,避免使用硬件标识符(例如IMEI),改用其他可替代的方案: Ø OAID(Open Anonymous Device Identifier):开放匿名ID,是可以连接所有应用数据的标识符,移动智能终端系统首次启动后立即生成,可用于广告业务。 Ø VAID(Vender Anonymous Device Identifier):开放的设备标识 ,是指用于开放给开发者的设备标识符,可在应用安装时产生,可用于同一开发者不同应用之间的推荐。 Ø AAID(Application Anonymous Device Identifier):应用匿名设备标识符,是指第三方应用获取的匿名设备标识,可在应用安装时产生,可用于用户统计等。 | |
| 用户拒绝授予某个权限时,与此权限无关的其他业务功能应能正常使用 | 应用程序不能在用户拒绝授予某个权限时出现强制退出、反复弹窗或通过通知胁迫用户授权的情况;与被拒绝权限无关的功能,用户能够正常使用无影响。 | |
| 业务功能所需要的权限被用户拒绝、禁止后不能强制退出;不允许应用每次启动时都向用户申请,当用户再次使用此功能时向用户申请对应权限,向用户申请权限次数不超过3次。 | 某个业务功能所需要的权限,在被用户拒绝授权后,在用户再次用到这个业务功能的时候,才再次发起引导用户开启权限,但总的引导开启权限县次数不得高于3次,避免对用户使用应用产生干扰。 | |
| 应用在用户未授权情况下,不能执行拨打电话、发送短信等操作 | 应用程序不能在未经用户授权的情况下,私自发起除用户正在使用的业务功能流程外的操作。 | |
| 恶意行为 | 应用不能将广告伪装成应用功能误导消费者 | 用户点击功能后应用提供非声明功能或者发生非预期跳转,降低用户使用体验。 |
| 禁止诱导、欺骗用户修改、关闭、卸载其他经营者合法提供的网络产品或者服务 | 禁止诱导、欺骗用户修改、关闭、卸载其他经营者合法提供的网络产品或者服务。包括但不限于:现金奖励、实物奖品、虚拟奖品(虚拟币、话费、流量、红包、免息贷、免息红包、优惠券、代金券、积分等)、集赞、拼团、下载可增加抽奖机会、下载可增加抽奖概率等手段。 | |
| 应用不能引导用户开启开发者选项,禁止引导用户开启USB调试模式 | 禁止应用引导用户打开开发者选项或USB调试模式 | |
| 骚扰行为 | 如无必要的使用场景,应用不能在桌面、锁屏和其他应用上,弹出悬浮窗、自定义后台Toast、后台弹出Activity等骚扰用户的行为 | 1.应用锁屏通知开关处于关闭状态时,禁止在锁屏弹出任何信息。 2.仅允许导航、音乐、运动健康类应用的主功能,在锁屏上显示全屏覆盖界面;例如导航-路线导航、音乐-音乐播放、运动健康-记步轨迹。 3.在锁屏或其他应用界面上,仅允许聊天消息、短信息、闹钟等对推送有实时性要求的信息和弹出界面。 4.应用不能在未经用户主动设置或者用户主动发起时,弹出界面覆盖到桌面或其他应用之上。 |
| 如无必要的使用场景,应用不能发送无法删除的常驻通知 | 仅允许音乐、FM广播、录屏,在离开应用界面后,不能在通知栏显示常驻通知,导致用户无法清除。 | |
| 广告只能在其本身所属的应用内展示,应用不能弹出、显示影响用户体验的广告,如抬头、强制插屏、侧边等 | 1.禁止弹出任何广告界面覆盖在原有应用功能界面之上。 2.允许和原有界面功能平铺在一个界面的非弹出式广告(如微信朋友圈)。 | |
| 退出 | 应用在用户强制关闭或退出后,不能继续占用系统资源 | 系统对应用后台运行管控,应用真正退出后,由系统机制保障资源的回收。建议应用程序开发者,在完成对应的功能操作后,及时释放处理器、内存等系统资源,合理使用系统资源。 |
| 卸载 | 应用中不能包含反卸载操作 | 非移动办公类应用禁止申请对应的设备管理器功能,禁止通过设置应用为设备管理器、DO应用,阻碍对应用进行卸载。 |