规则总览
====

以下是AppAnalyzer规则体检的所有规则，对应用/元服务进行体检的指导请参考[应用与元服务体检](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-app-analyzer)。

#### DevEco Studio 6.0.1 Beta1及以上版本

#### \[h2\]功能兼容性

**表1**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

说明

 |
| :-- | :-- | :-- | :-- |
| 

安装无兼容性问题

 | 

应用/元服务在其配置支持运行的对应软件版本/设备类型上成功安装。

 | 

应用，元服务

 | 

\-

 |
| 

启动无兼容性问题

 | 

应用/元服务正常启动，进入首页界面。

 | 

应用，元服务

 | 

\-

 |
| 

卸载无残留

 | 

应用/元服务在其配置支持运行的对应软件版本/设备类型上成功卸载，卸载无残留（包括文件、数据和进程）。

 | 

应用，元服务

 | 

\-

 |
| 

运行无兼容性问题

 | 

应用/元服务要求在其支持的OS版本/设备类型上运行不会出现崩溃、冻屏无响应、无法返回等问题。

 | 

应用，元服务

 | 

\-

 |
| 

元服务静默登录华为账号

 | 

元服务涉及账号体系和登录能力时，需规范使用华为账号能力进行静默登录，用户界面不能出现“登录”、“注册”、“退出登录”、“注销账号”描述。

 | 

元服务

 | 

\-

 |
| 

元服务场景化Button组件使用规范

 | 

禁止底部页签自定义封装场景化Button组件，即用户点击tab页签时，不能直接拉起Button功能页面：快速验证手机号Button、选择头像Button、打开授权设置页Button、打开APP Button、选择收货地址Button、选择发票抬头Button、地图选点Button。

 | 

元服务

 | 

\-

 |
| 

合理设计申请手机号授权功能

 | 

业务场景涉及华为账号快速验证手机号button使用时，需规范使用开放能力，不能用户一进入元服务就引导用户关联账号（必须）；不允许在页面只放置一个关联按钮/授权手机号按钮而没有其他功能（推荐）

 | 

元服务

 | 

\-

 |
| 

元服务包结构应符合规范

 | 

元服务App Pack包中，同一个设备上必须有且仅有一个Entry Hap；不允许包含任何Feature类型的Hap包，可以包含一个或者多个Shared类型的Hsp包，也可以不包含。

 | 

元服务

 | 

\-

 |
| 

应用要支持64位so文件

 | 

如果APP集成native so，则要求提供64位so。

 | 

应用

 | 

\-

 |
| 

元服务内所有包总和大小不超过10MB

 | 

单个元服务内所有包文件的大小总和不能超过10MB

 | 

元服务

 | 

\-

 |
| 

应用/元服务的显示名称有意义

 | 

应用和元服务安装之后的显示名称，在系统语言是中英文和默认语言名字都需要有意义，不可以是默认值或者通用无意义的值。

 | 

应用，元服务

 | 

\-

 |
| 

卡片isDefault字段不可缺省

 | 

卡片isDefault不可缺省，每个应用或元服务有且只有一个默认卡片。

 | 

应用，元服务

 | 

\-

 |
| 

卡片描述以索引展现

 | 

卡片description字段需要用索引方式填写。

 | 

应用，元服务

 | 

\-

 |
| 

卡片描述有意义

 | 

卡片的描述不能是通用值，应该为displayName的详解。

 | 

应用，元服务

 | 

\-

 |
| 

卡片的显示名称有意义

 | 

卡片的显示名称取值可以是名称内容，也可以是对名称内容的资源索引，不可以是通用无意义的值，E.g.widget\\card\\小组件。

 | 

应用，元服务

 | 

\-

 |
| 

使用App Linking实现支持通过链接拉起应用的功能

 | 

如果涉及通过链接拉起应用的功能，建议使用App Linking的方式支持该功能。

 | 

应用

 | 

\-

 |
| 

应用/元服务在折叠屏横竖屏切换时无问题

（从DevEco Studio 6.0.2 Beta1版本开始支持）

 | 

应用或元服务在折叠屏的展开态进行横竖屏切换时，输入内容不丢失、任务不中断。

 | 

应用，元服务

 | 

仅支持API 20及以上的双折叠手机真机。

 |
| 

应用/元服务在折叠屏支架态切换时无问题

（从DevEco Studio 6.0.2 Beta1版本开始支持）

 | 

应用或元服务在折叠屏切换至支架态时，输入内容不丢失、任务不中断。

 | 

应用，元服务

 |
| 

应用/元服务在折叠屏状态切换时无问题

（从DevEco Studio 6.0.2 Beta1版本开始支持）

 | 

应用或元服务在折叠屏上进行折叠态和展开态切换时，输入内容不丢失、任务不中断。

 | 

应用，元服务

 |
| 

音视频静音播放

（从DevEco Studio 6.1.0 Beta1版本开始支持）

 | 

在音视频静音播放场景下，应用在静音播放时需采用share音频焦点策略，不得打断其他音频业务播放。

 | 

应用

 | 

仅支持API 23及以上的手机真机。

 |
| 

短音、瞬态音播放

（从DevEco Studio 6.1.0 Beta1版本开始支持）

 | 

在短音、瞬态音播放场景，应用需采用share、duck或pause音频焦点策略，实现与其它音频业务并发播放或短暂暂停后台音乐、听书等音频业务播放，不得打断其它音频业务并使其无法自动恢复播放。

 | 

应用

 | 

仅支持API 23及以上的手机真机。

 |

#### \[h2\]性能

**表2**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 |
| :-- | :-- | :-- |
| 

页面内UI容器组件超出屏幕过多

 | 

避免滑动类容器组件区域超出屏幕显示范围10%。

滑动类容器组件的渲染范围与容器大小相同，超出屏幕的不可见部分为冗余渲染。

在页面切换的场景，过多的冗余渲染，可能会让用户觉得页面切换慢，响应不及时。

建议将滑动类容器组件的大小和位置限定在屏幕显示范围内。

如果因为嵌套滚动等效果，必须超出屏幕的，可以考虑使用分帧多次加载数据的方式，优先渲染可见部分，提升页面切换性能。

 | 

应用

 |
| 

[动态内存峰值占用](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-peak-dynamic-memory-usage-0417)

 | 

应用/元服务完成操作后，各类应用在后台的内存占用峰值应≤ 1300MB；应用完成操作后切换到后台，静置3min以后采集内存占用。

 | 

应用，元服务

 |
| 

[前台场景内存峰值占用](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-peak-foreground-memory-usage-0418)

 | 

应用/元服务前台场景峰值内存占用：应用在前台且亮屏使用过程的内存占用应≤ 1500MB。

 | 

应用，元服务

 |
| 

[后台CPU占用峰值](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-peak-background-cpu-usage-0420)

 | 

应用/元服务后台CPU占用峰值：应用/元服务切换到后台等待3min后，开始采集3min内CPU Load < 5%。

 | 

应用，元服务

 |
| 

[点击操作完成快](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-quick-completion-for-click-0404)

 | 

应用内点击操作完成时延应≤ 900ms；时间起点：点击离手；时间终点：转场页面所有占位符加载完成。

 | 

应用，元服务

 |
| 

[滑动过程流畅](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-smooth-for-swipe-0413)

 | 

应用的滑动过程卡顿率≤ 5ms/s；满帧30FPS的游戏类、地图类和视频类的应用帧率应≥ 29FPS。

 | 

应用，元服务

 |
| 

[转场操作流畅](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-smooth-for-transition-0414)

 | 

应用的应用内转场过程卡顿率≤ 0ms/s；滑动过程卡顿率：动效时间内累计丢帧时间/动效时长。

 | 

应用，元服务

 |
| 

[节点数超过500过多](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-render-node-limit-0430)

 | 

后端Render Server在每帧数据里处理的节点数不应该超过500，否则会造成CPU使用过高，引发帧时延过高，从而导致丢帧。

 | 

应用，元服务

 |
| 

[点击操作响应快](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-quick-response-for-click-0403)

 | 

应用内点击操作响应时延应≤ 100ms；时间起点：点击离手；时间终点：界面发生变化。

 | 

应用，元服务

 |
| 

[滑动操作响应快](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-quick-response-for-swipe-0405)

 | 

应用内滑动操作响应时延应≤ 80ms；时间起点：手指滑动；时间终点：界面发生变化。

 | 

应用，元服务

 |
| 

序列化反序列化耗时长

 | 

使用TaskPool/Worker并发能力时候，会检测对象和方法在跨线程传递时序列化和反序列化的耗时；序列化和反序列化耗时应 ≤ 8ms。

 | 

应用，元服务

 |
| 

[启动加载完成快](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-quick-completion-for-boot)

 | 

各类应用的冷启动首帧完成时延应 ≤ 1100ms；时间起点：桌面图标点击离手；时间终点：应用首页铺满全屏并且所有占位符加载完成。

 | 

应用，元服务

 |
| 

组件树节点数目过大

 | 

避免过大组件树节点数目。建议一个页面使用少于1000个组件树节点，节点树深度少于30层，子节点数不大于60个。

 | 

应用，元服务

 |
| 

执行函数耗时过长

 | 

避免执行函数耗时过长。函数执行时间是指函数在一次同步执行中消耗的时间，比如生命周期回调、事件处理函数的同步执行时间。建议单个函数执行周期内运行时间不超过15ms。

 | 

应用，元服务

 |
| 

渲染界面耗时过长

 | 

避免渲染界面耗时过长。建议单次渲染时间不超过500ms。渲染界面的耗时过长会让用户觉得卡顿，体验较差，出现这一情况时，需要校验下是否同时渲染的区域太大；页面中单个组件的渲染时间不超过15ms。

 | 

应用，元服务

 |
| 

ForEach中item数量过大

 | 

ForEach性能。ForEach中item数量要小于50。

 | 

应用，元服务

 |
| 

单帧属性数量更新内容限制

 | 

在高帧率场景单帧更新属性数量建议滑动场景不超过300个，非滑动场景不超过1500个。

 | 

应用，元服务

 |
| 

单帧脏组件数量限制

 | 

高帧率场景更新组件数量（含布局更新）建议滑动场景不超过30个，非滑动场景单帧更新组件数不超过500个。

 | 

应用，元服务

 |
| 

web组件初始化耗时长

 | 

避免web组件初始化耗时过长。在web页面加载场景下，web组件初始化时间不超过60ms。

 | 

应用，元服务

 |
| 

web执行js耗时

 | 

避免web页面js执行耗时过长。在web页面加载场景下，web页面单个js编译和执行时间不超过30ms，单个js函数调用时间不超过30ms，总体js编译和执行时间不超过300ms，总体js函数调用时间不超过130ms。

 | 

应用，元服务

 |
| 

UI线程IO执行耗时长未并行化

 | 

避免UI线程中执行文件IO耗时过长。UI主线程中，不应出现执行IO函数超过8.3ms，如果出现需要进行IO并行化改造。

 | 

应用，元服务

 |
| 

UI线程应用自身方法耗时长

 | 

UI线程应用自身方法耗时长检测。应用自身方法耗时长会导致丢帧。

 | 

应用，元服务

 |
| 

web主资源下载耗时长

 | 

避免web主资源下载耗时过长。在web页面加载场景下，web主资源下载时间不超过300ms。

 | 

应用，元服务

 |
| 

web子资源下载耗时长

 | 

避免web子资源下载耗时过长。在web页面加载场景下，web单个子资源下载时间不超过200ms。

 | 

应用，元服务

 |
| 

在线短视频类应用快速切换播放起播快

 | 

短视频起播时延，从用户滑动屏幕抬手后，到短视频第二帧画面（非封面帧）显示时间不应该超过700ms。

 | 

应用

 |
| 

相机拍照完成快

（从DevEco Studio 6.1.0 Beta1版本开始下线）

 | 

相机从拍照开始到生成可预览照片的完成时延不应超过1000ms。如果超过，建议使用分段式拍照。

 | 

应用

 |
| 

避免加载超过显示尺寸的图片

（从DevEco Studio 6.0.2 Beta1版本开始支持）

 | 

避免加载超过显示尺寸的图片，当图片分辨率大于256\*256并且面积超过图片组件10%时则认为超过显示尺寸。

 | 

应用，元服务

 |
| 

在线长视频类应用播放起播快

（从DevEco Studio 6.1.0 Beta2版本开始支持）

 | 

长视频起播时延，从用户滑动屏幕抬手后，到长视频第二帧画面（非封面帧）显示时间不应该超过800ms。

 | 

应用，元服务

 |

#### \[h2\]UX

**表3**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

说明

 |
| :-- | :-- | :-- | :-- |
| 

布局基础要求

 | 

设备在折叠/展开或横竖屏切换时，应用中的图片、视频等界面元素应避免出现错位/截断/变形等问题。

 | 

应用，元服务

 | 

支持所有手机及对应的模拟器。

 |
| 

图标文字大小适中

 | 

文字/图标物理大小建议：

展开态文字/图标大小为折叠态的1~1.2倍 (推荐)

不建议大于1.2/1.5倍 (必须)

不建议一排图标数量过多导致信息过密，折叠屏上建议一排不超过8个图标

 | 

应用，元服务

 | 

仅支持API 20及以上的双折叠、三折叠、Pura X Max手机和模拟器。

 |
| 

弹出框大小适中

 | 

展开态弹出框高度为折叠态的1~1.2倍 (推荐)，不建议高度大于1.2倍 (必须)。

 | 

应用，元服务

 | 

仅支持API 20及以上的双折叠、三折叠、Pura X Max手机和模拟器。

 |
| 

宫格图片信息量适中

 | 

宫格图片控件占比要求（控件高度/屏幕高度）：

1）单行图片高度不要太矮，不要低于屏幕高度的1/10，不要超过屏幕高度的2/5；

2）若宫格聚合图片整体作为信息流内容的配图，则建议整体高度不要低于屏幕高度的1/2，不要超过屏幕高度的2/3。

 | 

应用，元服务

 | 

仅支持API 20及以上的双折叠、三折叠、Pura X Max手机和模拟器。

 |
| 

单图信息量适中

 | 

单图控件占比要求（控件高度/屏幕高度）：折叠屏展开态横竖屏在最大化窗口时，

1）单张图片或轮播卡片宽度顶满内容区时，图片高度不超过屏幕高度的1/2。

 | 

应用，元服务

 | 

仅支持API 20及以上的双折叠、三折叠、Pura X Max手机和模拟器。

 |
| 

上下图文信息量适中

 | 

1）上下图文结构中，建议信息流场景的图片左对齐，阅读场景的图片居中对齐。

2）图片的物理尺寸：折叠屏上展开态图片的放大倍数建议不超过1.2倍。

图片放大不超过1.2/1.5倍且满足控件高度占比要求 (推荐)；

图片放大倍数不超过1.2/1.5倍或满足控件高度占比要求 (必须)。

3）在折叠屏展开态等宽屏设备上最好通过延伸布局、挪移布局等方式让图文进行合理布局，避免图片过高。上下图文控件高度占比要求如下：

首页入口型的上下图文，不建议使用长图，宽图或方图的最大高度不要超过屏幕高度的1/3;

首页信息流结构的上下图文，图片最大高度不超过屏幕高度的2/5;

详情页内容型的上下图文，最大高度不要超过屏幕高度的3/5。

 | 

应用，元服务

 | 

仅支持API 20及以上的双折叠、三折叠、Pura X Max手机和模拟器。

 |
| 

边距适中

 | 

一般不建议用边距的方式来控制信息量，左右边距的留白不要太大。

同一个应用内不同的页面建议保持相同的边距。

同一个应用在不同端上，可以根据设备屏幕的宽度进行适量的边距调整。

 | 

应用，元服务

 | 

仅支持API 20及以上的双折叠、三折叠、Pura X Max手机和模拟器。

 |
| 

挖孔区适配

 | 

界面布局需要适配摄像头的挖孔区域，若重要信息或交互操作 (例如底部页签/顶部页签、工具栏、标题栏、搜索框、输入框、悬浮按钮、横幅通知等) 和挖孔区之间有遮挡，则需要局部避开挖孔区显示。

1）若重要信息或交互操作和挖孔区无遮挡，则无需避开挖孔区显示；悬浮类控件或功能 (例如弹出框、侧边栏等)，无需避开挖孔区显示；可以上下滚动的内容，例如列表、卡片等无需避开挖孔区显示。

2）若应用支持横竖屏旋转，则横竖屏的界面布局均需满足以上挖孔适配要求。

 | 

应用，元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

点击热区

 | 

手机/平板/折叠屏设备点击热区需满足最小尺寸要求：主要交互元素或控件的可点击热区至少为48vp×48vp（推荐），不得小于40vp×40vp（必须）。

 | 

应用，元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

色彩对比度

 | 

应用使用的色彩需满足最小对比度要求：

1）图标或标题文字与背景对比度大于3:1。

2）正文文字与背景对比度大于4.5:1。

 | 

应用，元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

字体大小

 | 

应用的文字大小需满足最小字号要求：手机/折叠/平板文本字号不小于12vp（推荐），最小不得小于8vp（必须）。

 | 

应用，元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

界面图标

 | 

应用的界面图标大小需满足最小尺寸要求：手机/折叠屏/平板图标大小不小于12vp（推荐），最小不得小于8vp（必须）。

 | 

应用，元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

图标清晰度

 | 

图标需保证清晰可辨，无明显模糊、拉伸、压缩、锯齿等情况。

 | 

应用，元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

离手减速动效一致性

 | 

对于可滑动页面，达到一定手速的滑动操作，在手离开屏幕后界面应继续移动，移动速度应该随时间缓慢下降，直至界面停止移动。

 | 

应用，元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

状态栏

 | 

应用需要对状态栏进行适配显示。采用沉浸一体化的背景设计，保证效果的整体性，避免状态栏区域被单独切割。

 | 

应用，元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

底部导航条适配

 | 

手机、折叠屏、平板等设备屏幕底部有导航条，应用需对底部导航条进行适配。

1）应用内的底部固定控件、输入键盘、应用底部的悬浮按钮等均需要进行向上抬高，避免和导航条互相遮挡，也要避免导航条底部背景色与应用内底部背景色不融合，需要为导航条提供沉浸的背景效果。

2）应用内的可滚动内容，需要能显示在导航条下方。当滚动到最底部时，要避免导航条遮挡导致最底部功能不可用。

3）应用内的弹出框、半模态等控件，需要向上避让导航条，避免交互误触。

4）沉浸式场景，例如游戏、全屏播放视频，导航条可自动隐藏，支持从底部上滑恢复显示导航条。

 | 

应用，元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

元服务胶囊满足规范

 | 

元服务胶囊在静态或第一屏界面显示时，胶囊区域无文本信息或功能控件遮挡，无热区冲突。

 | 

元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

元服务底部导航栏满足规范

 | 

如开发者需使用底部导航栏，建议开发者直接调用元服务官方提供的底部页签 (AtomicServiceTabs) 控件。

若开发者选择自行设计开发导航样式，请确保导航简洁清晰，并遵循：

1）页签数量配置最多不超过5个，最少不少于2个。

2）合理设置底部导航栏高度，除去导航条固定高度（28vp），底部页签栏（此处仅涉及手机、折叠屏）在设计时应避免过高（超过70vp）或过低（低于40vp）。

 | 

元服务

 | 

从6.1.1 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

开合连续性

 | 

应用在设备折叠/展开后不应出现操作步骤增加，操作更复杂等体验下降的情况。例如：页面切换到其他页面、页面滚动位置发生偏移、输入内容丢失、图片模糊、播放进度变化。

 | 

应用，元服务

 | 

从26.0.0 Beta1版本开始支持。

仅支持API 20及以上的双折叠、三折叠、Pura X Max手机和模拟器。

 |
| 

横竖屏适配

 | 

应用支持在折叠屏/折叠电脑展开态、平板设备上的横竖屏切换显示。屏幕比例接近1:1的设备，横竖屏布局需保持一致。

 | 

应用，元服务

 | 

从26.0.0 Beta1版本开始支持。

仅支持API 20及以上的双折叠、三折叠、Pura X Max手机和模拟器。

 |
| 

元服务图标符合要求

 | 

1.元服务图标与应用图标有明显区别，它继承了HarmonyOS的设计语言体系，内部圆形表示完整独立，外圈装饰线表示可分可合可流转的特点。

2.元服务图标生成需提供尺寸为1024 x 1024 px的静态图片资源（参考图标设计规范），并使用元服务图标工具（生成元服务图标）生成相应的规范图标。

3.元服务图标外圈线请勿使用纯白或纯黑，以避免在纯白/纯黑页面背景上无法清晰辨识其轮廓形态。当中心圆背景为纯白/纯黑时，需给中心圆增加描边，以确保图标中心圆轮廓清晰可见。

 | 

元服务

 | 

从26.0.0 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |
| 

应用图标

 | 

应用图标资源需分层，尺寸需满足规范要求：应用图标资源必须分为前景图和背景图两层，尺寸要求必须为1024px \* 1024px，资源不允许自行裁切圆角，不允许在资源内添加内间距。

 | 

应用

 | 

从26.0.0 Beta1版本开始支持。

支持所有手机及对应的模拟器。

 |

#### \[h2\]功耗

**表4**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 |
| :-- | :-- | :-- |
| 

后台进程CPU负载约束（长时任务）

 | 

应用或元服务后台CPU运行：后台进程持续10分钟CPU负载不得高于10%；(8核负载，即总负载为80%)

 | 

应用，元服务

 |
| 

后台进程CPU负载约束（短时任务）

 | 

应用后台CPU运行：后台进程任务期间CPU负载不得高于8%；(8核负载，即总负载为64%)

 | 

应用

 |
| 

无长时任务的应用退到后台不允许有BT扫描

 | 

无长时任务的应用或元服务退到后台不允许有蓝牙扫描

 | 

应用，元服务

 |
| 

无长时任务的应用退后台禁止使用麦克风或扬声器

 | 

无长时任务的应用或元服务退后台禁止使用麦克风或扬声器

 | 

应用，元服务

 |
| 

无长时任务的应用退后台禁止使用定位服务

 | 

无长时任务的应用或元服务退后台禁止使用定位服务

 | 

应用，元服务

 |
| 

应用退后台禁止使用传感器

 | 

应用或元服务退后台禁止使用传感器，前台使用时根据业务尽量使用once()接口监听结果

 | 

应用，元服务

 |
| 

后台合理使用音频播放

 | 

后台合理使用音频播放

 | 

应用，元服务

 |
| 

无长时任务的应用退后台对应资源释放，不能有持锁

 | 

无长时任务的应用退后台对应资源释放，不要直接或者间接持running lock锁

 | 

应用

 |
| 

音乐类应用设置正确的音乐类型

 | 

音乐类应用设置正确的音乐类型（如果应用或元服务为非音乐类，请忽略本次报错）

 | 

应用，元服务

 |
| 

应用处于前台不可见动效不使用资源，及时停止

 | 

应用处于前台不可见动效不使用资源，及时停止

 | 

应用，元服务

 |

#### \[h2\]安全

**表5**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 |
| :-- | :-- | :-- |
| 

不对外交互的Ability的exported属性需要显式设置为false

 | 

不对外交互的Ability其exported或visible属性禁止设置为true

 | 

应用，元服务

 |
| 

对外交互的Ability应设置合理的访问权限

 | 

对外交互的Ability应设置合理的访问权限

 | 

应用，元服务

 |
| 

DataShareExtensionAbility权限检查

 | 

DataShareExtensionAbility内接口设置合理的读写访问权限

 | 

应用，元服务

 |
| 

应用权限申请遵循最小化原则

 | 

权限申请满足最小化原则，禁止申请不必要的、新版本废弃的权限

 | 

应用，元服务

 |
| 

动态公共事件接收器进行访问权限控制

 | 

对涉及敏感功能的公共事件进行访问权限控制

 | 

应用，元服务

 |
| 

应用软件应包含的签名信息需要真实有效

 | 

应用/元服务证书所有者的CN、OU、O、C字段不能为空

 | 

应用，元服务

 |
| 

三方SDK使用安全合规的版本

 | 

应用/元服务引入的三方SDK的版本号，在GIIC/信通院上属于安全合规的范围内

 | 

应用，元服务

 |
| 

非预期文件打包检测

 | 

检测应用/元服务包体文件目录是否存在.c/.h/.cpp/.cs/.java/.rs/.py/.go/.ets/.js/.ts非预期格式的文件

 | 

应用，元服务

 |

#### \[h2\]稳定性

**表6**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 |
| :-- | :-- | :-- |
| 

应用/元服务崩溃

 | 

应用/元服务运行过程中无崩溃故障。

 | 

应用，元服务

 |
| 

应用/元服务卡死

 | 

应用/元服务运行过程中无冻屏卡死故障。

 | 

应用，元服务

 |
| 

内存泄漏

 | 

检测出引起内存泄漏的代码，提供代码堆栈日志下载。

 | 

应用，元服务

 |

#### DevEco Studio 6.0.1 Beta1以下版本

#### \[h2\]UX测试

仅API 20及以上版本的折叠屏手机可以进行UX测试。

**表7**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

权重

 |
| :-- | :-- | :-- | :-- |
| 

布局基础要求(大屏)

 | 

设备在折叠/展开或横竖屏切换时，应用中的图片、视频等界面元素应避免出现错位/截断/变形等问题。

 | 

应用，元服务

 | 

5

 |
| 

图标文字大小适中

 | 

文字/图标物理大小建议：

展开态文字/图标大小为折叠态的1~1.2倍 (推荐)

不建议大于1.2/1.5倍 (必须)

不建议一排图标数量过多导致信息过密，折叠屏上建议一排不超过8个图标

 | 

应用，元服务

 | 

5

 |
| 

弹出框大小适中

 | 

展开态弹出框高度为折叠态的1~1.2倍 (推荐)，不建议高度大于1.2倍 (必须)。

 | 

应用，元服务

 | 

4

 |
| 

宫格图片信息量适中

 | 

宫格图片控件占比要求（控件高度/屏幕高度）：

1）单行图片高度不要太矮，不要低于屏幕高度的1/10，不要超过屏幕高度的2/5；

2）若宫格聚合图片整体作为信息流内容的配图，则建议整体高度不要低于屏幕高度的1/2，不要超过屏幕高度的2/3。

 | 

应用，元服务

 | 

4

 |
| 

广告图信息量适中

 | 

广告图控件占比要求（控件高度/屏幕高度）：

1）折叠屏展开态横竖屏时，广告图的图片高度不要超过一屏幕的1/2。

 | 

应用，元服务

 | 

4

 |
| 

上下图文信息量适中

 | 

1）上下图文结构中，建议信息流场景的图片左对齐，阅读场景的图片居中对齐。

2）图片的物理尺寸：折叠屏上展开态图片的放大倍数建议不超过1.2倍。

图片放大不超过1.2/1.5倍且满足控件高度占比要求 (推荐)；

图片放大倍数不超过1.2/1.5倍或满足控件高度占比要求 (必须)。

3）在折叠屏展开态等宽屏设备上最好通过延伸布局、挪移布局等方式让图文进行合理布局，避免图片过高。上下图文控件高度占比要求如下：

首页入口型的上下图文，不建议使用长图，宽图或方图的最大高度不要超过屏幕高度的1/3;

首页信息流结构的上下图文，图片最大高度不超过屏幕高度的2/5;

详情页内容型的上下图文，最大高度不要超过屏幕高度的3/5。

 | 

应用，元服务

 | 

4

 |
| 

边距适中

 | 

一般不建议用边距的方式来控制信息量，左右边距的留白不要太大。

同一个应用内不同的页面建议保持相同的边距。

同一个应用在不同端上，可以根据设备屏幕的宽度进行适量的边距调整。

 | 

应用，元服务

 | 

5

 |

#### \[h2\]功能和兼容性

**表8**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

权重

 |
| :-- | :-- | :-- | :-- |
| 

应用/元服务支持在当前OS版本/设备类型安装

 | 

应用/元服务在其配置支持运行的对应软件版本/设备类型上成功安装。

 | 

应用，元服务

 | 

5

 |
| 

应用/元服务支持在当前OS版本/设备类型启动

 | 

应用/元服务正常启动，进入首页界面。

 | 

应用，元服务

 | 

5

 |
| 

应用/元服务支持在当前OS版本/设备类型卸载

 | 

应用/元服务在其配置支持运行的对应软件版本/设备类型上成功卸载，卸载无残留（包括文件、数据和进程）。

 | 

应用，元服务

 | 

4

 |
| 

应用/元服务在当前OS版本/设备类型运行稳定

 | 

应用/元服务要求在其支持的OS版本/设备类型上运行不会出现崩溃、冻屏无响应、无法返回等问题。

 | 

应用，元服务

 | 

3

 |
| 

元服务静默登录华为账号

 | 

元服务涉及账号体系和登录能力时，需规范使用华为账号能力进行静默登录，用户界面不能出现“登录”、“注册”、“退出登录”、“注销账号”描述。

 | 

元服务

 | 

4

 |

#### \[h2\]规格约束

**表9**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

权重

 |
| :-- | :-- | :-- | :-- |
| 

元服务包结构应符合规范

 | 

元服务App Pack包中，同一个设备上必须有且仅有一个Entry Hap；不允许包含任何Feature类型的Hap包，可以包含一个或者多个Shared类型的Hsp包，也可以不包含。

 | 

元服务

 | 

5

 |
| 

设备类型检测

（从DevEco Studio 6.0.0 Beta2版本开始下线）

 | 

在一个应用/元服务包中，每个hap包必须明确支持的设备类型，不能为空。

 | 

应用，元服务

 | 

5

 |
| 

应用要支持64位so文件

 | 

如果APP集成native so，则要求提供64位so。

 | 

应用

 | 

4

 |
| 

元服务内所有包总和大小不超过10MB

 | 

单个元服务内所有包文件的大小总和不能超过10MB。

 | 

元服务

 | 

2

 |
| 

卡片isDefault字段检测

 | 

卡片isDefault不可缺省，每个应用或元服务有且只有一个默认卡片。

 | 

应用，元服务

 | 

3

 |
| 

卡片description字段检测

 | 

卡片description字段需要用索引方式填写。

 | 

应用，元服务

 | 

4

 |
| 

应用链接跳转检测

 | 

如果涉及通过链接拉起应用的功能，建议使用App Linking的方式支持该功能。

 | 

应用

 | 

3

 |
| 

元服务禁止使用so文件

（从DevEco Studio 6.0.0 Beta2版本开始下线）

 | 

元服务禁止集成native so，禁止使用so文件。

 | 

元服务

 | 

4

 |

#### \[h2\]性能

**表10**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

权重

 |
| :-- | :-- | :-- | :-- |
| 

[应用/元服务内点击操作响应快](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-quick-response-for-click-0403)

 | 

起点：点击离手；

终点：界面发生变化；

应用/元服务内点击操作响应时延应≤ 100ms。

 | 

应用，元服务

 | 

3

 |
| 

[应用/元服务内点击操作完成快](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-quick-completion-for-click-0404)

 | 

时间起点：点击离手；

时间终点：转场页面所有占位符加载完成；

应用/元服务内点击操作完成时延应≤ 1600ms。

 | 

应用，元服务

 | 

3

 |
| 

[应用/元服务内滑动操作响应快](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-quick-response-for-swipe-0405)

 | 

时间起点：手指滑动；

时间终点：界面发生变化；

应用/元服务内滑动操作响应时延应≤ 80ms。

 | 

应用，元服务

 | 

3

 |
| 

[应用/元服务内滑动过程流畅](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-smooth-for-swipe-0413)

 | 

应用/元服务的滑动过程卡顿率≤ 5ms/s；

满帧30FPS的游戏类、地图类和视频类的应用帧率应≥ 29FPS。

 | 

应用，元服务

 | 

3

 |
| 

[应用/元服务内转场操作流畅](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-smooth-for-transition-0414)

 | 

应用/元服务内转场过程卡顿率≤ 0ms/s；

滑动过程卡顿率：动效时间内累计丢帧时间/动效时长。

 | 

应用，元服务

 | 

3

 |
| 

[应用/元服务动态内存峰值占用](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-peak-dynamic-memory-usage-0417)

 | 

应用/元服务完成操作后，各类应用在后台的内存占用峰值应≤ 1300MB；

应用完成操作后切换到后台，静置3min以后采集内存占用。

 | 

应用，元服务

 | 

3

 |
| 

[应用/元服务前台场景内存峰值占用](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-peak-foreground-memory-usage-0418)

 | 

应用/元服务前台场景峰值内存占用：应用在前台且亮屏使用过程的内存占用应≤ 1500MB。

 | 

应用，元服务

 | 

3

 |
| 

[应用/元服务后台CPU占用峰值](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-peak-background-cpu-usage-0420)

 | 

应用/元服务后台CPU占用峰值：应用切换到后台等待3min后，开始采集3min内CPU Load < 5%。

 | 

应用，元服务

 | 

3

 |
| 

[图形渲染服务处理节点数小于500](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-render-node-limit-0430)

 | 

后端Render Server在每帧数据里处理的节点数不应该超过500，否则会造成CPU使用过高，引发帧时延过高，从而导致丢帧。

 | 

应用，元服务

 | 

1

 |

#### \[h2\]最佳实践

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c2/v3/jBCjgpjNQxCFS7VgqoQ0wQ/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073904Z&HW-CC-Expire=86400&HW-CC-Sign=3D86F63F5DD5BDE7DCFBA98E7F732449BFB1ABBEA4EE88EB40F8391052E4C72A)

以下体检规则不支持在编译模式为release下运行，请把编译模式切换到debug再重新检测：避免过大组件树节点数目、避免执行函数耗时过长、避免渲染界面耗时过长、ForEach性能检测。

**表11**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

权重

 |
| :-- | :-- | :-- | :-- |
| 

避免过大组件树节点数目

 | 

避免过大组件树节点数目。

建议一个页面使用少于1000个组件树节点，节点树深度少于30层，子节点数不大于60个。

 | 

应用，元服务

 | 

2

 |
| 

避免执行函数耗时过长

 | 

避免执行函数耗时过长。

函数执行时间是指函数在一次同步执行中消耗的时间，比如生命周期回调、事件处理函数的同步执行时间。建议单个函数执行周期内运行时间不超过15ms。

 | 

应用，元服务

 | 

2

 |
| 

避免渲染界面耗时过长

 | 

避免渲染界面耗时过长。

建议单次渲染时间不超过500ms。渲染界面的耗时过长会让用户觉得卡顿，体验较差，出现这一情况时，需要校验下是否同时渲染的区域太大；页面中单个组件的渲染时间不超过15ms。

 | 

应用，元服务

 | 

2

 |
| 

ForEach性能检测

 | 

ForEach性能。

ForEach中item数量要小于50。

 | 

应用，元服务

 | 

2

 |
| 

单帧属性数量更新内容限制

 | 

在高帧率场景单帧更新属性数量建议滑动场景不超过300个，非滑动场景不超过1500个。

 | 

应用，元服务

 | 

2

 |
| 

单帧脏组件数量限制

 | 

高帧率场景更新组件数量（含布局更新）建议滑动场景不超过30个，非滑动场景单帧更新组件数不超过500个。

 | 

应用，元服务

 | 

2

 |
| 

web组件初始化耗时检测

 | 

避免web组件初始化耗时过长。

在web页面加载场景下，web组件初始化时间不超过60ms。

 | 

应用，元服务

 | 

2

 |
| 

web执行js耗时检测

 | 

避免web页面js执行耗时过长。

在web页面加载场景下，web页面单个js编译和执行时间不超过30ms，单个js函数调用时间不超过30ms，总体js编译和执行时间不超过300ms，总体js函数调用时间不超过130ms。

 | 

应用，元服务

 | 

2

 |
| 

UI线程IO执行耗时长未并行化检测

 | 

避免UI线程中执行文件IO耗时过长。

UI主线程中，不应出现执行IO函数超过8.3ms，如果出现需要进行IO并行化改造。

 | 

应用，元服务

 | 

2

 |
| 

UI线程应用自身方法耗时长检测

 | 

避免UI线程中的函数耗时过长。

UI主线程中，不应出现函数超过8.3ms。

 | 

应用，元服务

 | 

2

 |
| 

web主资源下载耗时检测

 | 

避免web主资源下载耗时过长。

在web页面加载场景下，web主资源下载时间不超过300ms。

 | 

应用，元服务

 | 

2

 |
| 

web子资源下载耗时检测

 | 

避免web子资源下载耗时过长。

在web页面加载场景下，web单个子资源下载时间不超过200ms。

 | 

应用，元服务

 | 

2

 |
| 

短视频起播时延检测

 | 

时间起点：从用户滑动屏幕抬手后；

时间终点：到短视频第二帧画面（非封面帧）；

显示时间≤ 700ms

 | 

应用

 | 

2

 |
| 

相机拍照完成时延检测

 | 

相机从拍照开始到生成可预览照片的完成时延不应超过1000ms。

如果超过，建议使用分段式拍照。

注意：请授予相机的权限

 | 

应用

 | 

2

 |
| 

应用/元服务非预期文件打包检测

（从DevEco Studio 6.0.0 Beta3版本开始支持）

 | 

检测应用/元服务包体文件目录是否存在.c/.h/.cpp/.cs/.java/.rs/.py/.go/.ets/.js/.ts非预期格式的文件。

 | 

应用，元服务

 | 

2

 |

#### \[h2\]功耗

**表12**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

权重

 |
| :-- | :-- | :-- | :-- |
| 

后台进程CPU负载约束（长时任务）

 | 

应用或元服务后台CPU运行：后台进程持续10分钟CPU负载不得高于10%；(8核负载，即总负载为80%)。

 | 

应用，元服务

 | 

1

 |
| 

后台进程CPU负载约束（短时任务）

 | 

应用后台CPU运行：后台进程任务期间CPU负载不得高于8%；(8核负载，即总负载为64%)。

 | 

应用

 | 

1

 |
| 

合理使用蓝牙资源

 | 

无长时任务的应用或元服务退到后台不允许有蓝牙扫描。

 | 

应用，元服务

 | 

1

 |
| 

合理使用麦克风或者扬声器

 | 

禁止后台无长时任务的应用或元服务使用麦克风或扬声器。

 | 

应用，元服务

 | 

1

 |
| 

合理使用GPS资源

 | 

无长时任务的应用或元服务退后台禁止使用定位服务。

 | 

应用，元服务

 | 

1

 |
| 

合理使用sensor资源

 | 

应用或元服务退后台禁止使用传感器，前台使用时根据业务尽量使用once()接口监听结果。

 | 

应用，元服务

 | 

1

 |
| 

后台合理使用音频播放

（从DevEco Studio 6.0.0 Beta3版本开始支持）

 | 

应用或元服务在后台开启音频播放，禁止不写入数据或者写入静音数据等类似恶意行为

 | 

应用，元服务

 | 

2

 |
| 

后台合理使用系统资源

 | 

无长时任务的应用退后台对应资源释放，不要直接或者间接持running lock锁。

 | 

应用

 | 

1

 |
| 

音乐类应用或元服务设置正确的音乐类型

（从DevEco Studio 6.0.0 Beta3版本开始支持）

 | 

音乐类应用或元服务设置正确的音乐类型，走对应的系统低功耗方案

 | 

应用，元服务

 | 

2

 |
| 

应用或元服务处于前台不可见动效不使用资源，及时停止

（从DevEco Studio 6.0.0 Beta3版本开始支持）

 | 

应用或元服务在前台，不允许有RS绘制空跑

 | 

应用，元服务

 | 

4

 |

#### \[h2\]快速性能

**表13**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

权重

 |
| :-- | :-- | :-- | :-- |
| 

页面内点击操作完成时延快速检测

 | 

时间起点：点击离手；

时间终点：转场页面所有占位符加载完成；

应用内点击操作完成时延应≤ 1600ms。

 | 

应用

 | 

3

 |
| 

页面内滑动过程流畅性快速检测

 | 

应用的滑动过程卡顿率≤ 5ms/s；

满帧30FPS的游戏类、地图类和视频类的应用帧率应≥ 29FPS。

 | 

应用

 | 

3

 |
| 

页面转场操作流畅性快速检测

 | 

应用的应用内转场过程卡顿率≤ 0ms/s；

滑动过程卡顿率：动效时间内累计丢帧时间/动效时长。

 | 

应用

 | 

3

 |
| 

页面内节点数超过500过多快速检测

 | 

后端Render Server在每帧数据里处理的节点数不应该超过500，否则会造成CPU使用过高，引发帧时延过高，从而导致丢帧。

 | 

应用

 | 

1

 |
| 

页面内白块检测

 | 

应用内页面检测到白块，需要避免快速滑动场景下因数据来不及加载而出现白块。

 | 

应用

 | 

1

 |
| 

页面内点击操作响应时延快速检测

 | 

起点：点击离手；

终点：界面发生变化；

应用内点击操作响应时延应≤ 100ms。

 | 

应用

 | 

3

 |
| 

页面内滑动响应时延快速检测

 | 

时间起点：手指滑动；

时间终点：界面发生变化；

应用内滑动操作响应时延应≤ 80ms。

 | 

应用

 | 

3

 |
| 

避免页面内UI容器组件超出屏幕过多

 | 

避免滑动类容器组件区域超出屏幕显示范围10%。

滑动类容器组件的渲染范围与容器大小相同，超出屏幕的不可见部分为冗余渲染。

在页面切换的场景，过多的冗余渲染，可能会让用户觉得页面切换慢，响应不及时。

建议将滑动类容器组件的大小和位置限定在屏幕显示范围内。

如果因为嵌套滚动等效果，必须超出屏幕的，可以考虑使用分帧多次加载数据的方式，优先渲染可见部分，提升页面切换性能。

 | 

应用

 | 

1

 |
| 

应用冷启动完成时延检测

 | 

应用首页铺满全屏并且所有占位符加载完成。

 | 

应用

 | 

3

 |
| 

避免序列化反序列化耗时长

 | 

使用TaskPool/Worker并发能力时候，会检测对象和方法在跨线程传递时序列化和反序列化的耗时；

序列化和反序列化耗时应 ≤ 8ms。

 | 

应用

 | 

3

 |

#### \[h2\]安全

**表14**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

权重

 |
| :-- | :-- | :-- | :-- |
| 

Ability可见性设置检测

 | 

不对外交互的Ability其exported或visible属性禁止设置为true。

 | 

应用，元服务

 | 

2

 |
| 

Ability权限设置检测

 | 

对外交互的Ability应设置合理的访问权限。

 | 

应用，元服务

 | 

2

 |
| 

DataShareExtensionAbility组件权限检测

 | 

必须对DataShareExtensionAbility内接口设置合理的读写访问权限。

 | 

应用，元服务

 | 

2

 |
| 

权限申请最小化原则检测

 | 

权限申请满足最小化原则，禁止申请不必要的、新版本废弃的权限。

 | 

应用，元服务

 | 

2

 |
| 

公共事件接收器权限访问控制检测

 | 

对涉及敏感功能的公共事件进行访问权限控制。

 | 

应用，元服务

 | 

2

 |
| 

应用/元服务签名完整性检测

（从DevEco Studio 6.0.0 Beta2版本开始下线）

 | 

应用/元服务需保证签名完整性。

 | 

应用，元服务

 | 

2

 |
| 

应用/元服务签名信息检测

（从DevEco Studio 6.0.0 Beta5版本开始下线）

 | 

应用/元服务证书所有者的CN、OU、O、C字段不能为空。

 | 

应用，元服务

 | 

2

 |
| 

三方SDK使用经GIIC联盟认证过的安全合规的版本

 | 

应用/元服务引入的三方SDK的版本号，在GIIC/信通院上属于安全合规的范围内。

 | 

应用，元服务

 | 

5

 |

#### \[h2\]稳定性

**表15**
| 
体检规则

 | 

规则详情

 | 

应用或元服务规则

 | 

权重

 |
| :-- | :-- | :-- | :-- |
| 

应用/元服务崩溃检测

 | 

应用或元服务运行过程中无崩溃故障。

 | 

应用，元服务

 | 

2

 |
| 

应用/元服务卡死检测

 | 

应用或元服务运行过程中无冻屏卡死故障。

 | 

应用，元服务

 | 

4

 |
| 

应用/元服务内存泄漏检测

 | 

检测出引起内存泄漏的代码，提供代码堆栈日志下载。

 | 

应用，元服务

 | 

4

 |