鸿蒙5.0开发【Mock能力】测试框架
应用与服务体检工具(AppAnalyzer)用于对应用和元服务进行本地测试体检,并给出体检报告、分析指导以及修改建议,帮助开发者提升应用质量。在体检过程中,工具会收集应用的trace信息、代码栈、内存快照以及应用页面的截屏,并保存在本地工程目录.appanalyzer下,帮助开发者快速进行问题分析定位。
功能介绍
应用与服务体检工具(AppAnalyzer)用于对应用和元服务进行本地测试体检,并给出体检报告、分析指导以及修改建议,帮助开发者提升应用质量。在体检过程中,工具会收集应用的trace信息、代码栈、内存快照以及应用页面的截屏,并保存在本地工程目录.appanalyzer下,帮助开发者快速进行问题分析定位。
开发者可以通过DevEco Studio连接本地设备,自主遍历HarmonyOS应用或元服务的功能,快速进行自测试,查看测试结果及评分。当前支持的测试类型包括兼容性、性能、UX测试和最佳实践等。
使用约束
- 当前仅phone类型的设备支持使用应用与服务体检能力。
- 在使用AppAnalyzer对HarmonyOS应用/服务进行测试之前,先要确保[DevEco Studio与真机设备已连接]。
- 在使用AppAnalyzer对HarmonyOS应用/服务进行测试之前,请先根据[应用/服务签名]章节进行签名,再编译生成HAP或编译生成HSP。
HarmonyOS应用测试
-
通过以下任意一种方式,打开AppAnalyzer。
- 单击菜单栏Tools > AppAnalyzer,打开AppAnalyzer页面。
- 在编辑窗口右侧的工具栏,点击AppAnalyzer,打开AppAnalyzer页面。
-
在AppAnalyzer页面Module选择框选择HarmonyOS应用/服务工程模块。
说明
- 只有已经完成签名编译打包的模块才能被选中。
- 支持同时添加多个模块,要求所有模块的“bundleName”相同,且多个模块中只能包含一个Entry。

-
根据应用的类别选择Category。
如果模块的类型(application/service)有修改,再次使用应用与服务体检功能时,请点击Module取消勾选后再重新勾选模块。

-
选择一个体检规则集,不同的规则集包含的检测规则如下,然后在AppAnalyzer页面底部单击Start开始测试。在测试过程中,请保持连接的设备为解锁亮屏状态。
- Benchmark:性能规则集,默认包含快速性能、最佳实践和部分兼容性检测规则。
- Custom:自选规则集,开发者可以按需选择检测规则。
- Basic:基础规则集,包含规格约束测试、性能测试、兼容性测试、安全测试的部分检测规则。
- All:全部规则集,包含所有检测规则。
说明
请勿在测试完成前点击结束,如果提前结束测试会导致测试结果不准确。

-
如果选择最佳实践或快速性能检测的部分规则,在体检结束后需要根据提示手动遍历HarmonyOS应用/服务的功能。

以性能Benchmark规则集为例,自动检测和手动遍历完成后点击Stop停止测试任务,查看测试结果如下。
-
测试报告:检测结果的汇总信息,点击Export按钮可导出html体检报告。

-
错误报告:只包含检测失败的规则,列出相关的文件并给出对应的优化建议。
- source文件、profiler文件(包含trace文件和调用栈文件)或snapshot文件:点击source文件可跳转到问题源码,点击profiler文件或snapshot文件支持直接拉起性能分析工具Profiler并导入性能检测的问题数据进行调优分析。
- 分析文档:点击链接可跳转至官网文档,参考文档对检测出来的问题进行分析。
- 优化指南文章:点击链接可跳转到官网关于检测出来的问题相关的优化指南文章。
- Code Linter:在“最佳实践体检”项目中,可直接在拉起Code Linter的同时,传递有问题的代码文件名,自动执行代码检查。在“性能检测规则”项目中,因无代码文件名等信息,部分检测规则不支持自动执行代码检查,仅支持拉起Code Linter。

-
查看历史报告
-
在DevEco Studio中,单击菜单栏Tools > AppAnalyzer,弹出AppAnalyzer页面。
-
点击底部按钮,可查看最近5次的体检报告记录,点击时间戳可跳转至详细的体检报告。

评分方法及规则
应用与服务体检当前支持兼容性、性能、UX测试和最佳实践等测试类型检测。AppAnalyzer会根据体检结果计算出最后评分,满分为100分。评分的计算公式为:
评分 = 100{总分-Sum(单项未得分*权重)/* 总分}
说明
单项得分:满足检测规则为1分,不满足为0分。
各体检项检测规则及权重如下表所示:
| 体检类别 | 检测规则 | 应用或服务规则 | 权重 |
|---|---|---|---|
| 规格约束 | Entry hap检测 | 应用,服务 | 5 |
| 包名和版本号一致性 | 应用,服务 | 4 | |
| SDK版本检测 | 应用,服务 | 3 | |
| ReqPermissions权限 | 应用,服务 | 4 | |
| 设备类型 | 应用,服务 | 5 | |
| 应用/元服务必须有图标 | 应用,服务 | 5 | |
| 应用/元服务要支持64位so文件 | 应用,服务 | 4 | |
| 元服务内所有包总和大小不超过10MB | 服务 | 2 | |
| 元服务单个包文件大小不超过2MB | 服务 | 2 | |
| 元服务免安装属性 | 服务 | 4 | |
| 元服务预加载对应模块类型不能为entry | 服务 | 4 | |
| 应用非免安装属性 | 应用 | 2 | |
| 卡片metadata元信息 | 应用,服务 | 3 | |
| 卡片supportDimensions字段 | 应用,服务 | 3 | |
| 卡片defaultDimension字段 | 应用,服务 | 3 | |
| 卡片isDefault字段 | 应用,服务 | 3 | |
| 卡片updateEnabled字段 | 应用,服务 | 3 | |
| 卡片description字段 | 应用,服务 | 4 | |
| 兼容性 | 应用支持在当前OS版本/设备类型安装 | 应用,服务 | 5 |
| 应用支持在当前OS版本/设备类型启动 | 应用,服务 | 5 | |
| 应用支持在当前OS版本/设备类型卸载 | 应用,服务 | 4 | |
| 应用在当前OS版本/设备类型运行稳定 | 应用,服务 | 3 | |
| 性能 | 应用内点击操作响应快 | 应用 | 3 |
| 应用内点击操作完成快 | 应用 | 3 | |
| 应用内滑动操作响应快 | 应用 | 3 | |
| 应用内滑动过程流程 | 应用 | 3 | |
| 应用内转场操作流畅 | 应用 | 3 | |
| 应用动态内存峰值占用 | 应用 | 3 | |
| 应用前台场景内存峰值占用 | 应用 | 3 | |
| 应用后台CPU占用峰值 | 应用 | 3 | |
| 图形渲染服务处理节点数小于500 | 应用 | 1 | |
| 快速性能检测(仅性能benchmark规则集包含) | 页面内点击操作完成时延快速检测 | 应用 | 3 |
| 页面内滑动过程流畅性快速检测 | 应用 | 3 | |
| 页面转场操作流畅性快速检测 | 应用 | 3 | |
| 页面内节点数超过500过多快速检测 | 应用 | 1 | |
| 页面内白块检测 | 应用 | 1 | |
| 页面内点击操作响应时延快速检测 | 应用 | 3 | |
| 页面内滑动响应时延快速检测 | 应用 | 3 | |
| 避免页面内UI容器组件超出屏幕过多 | 应用 | 1 | |
| 应用冷启动完成时延检测 | 应用 | 3 | |
| 功耗 | 后台进程CPU负载约束(长时任务) | 应用 | 1 |
| 后台进程CPU负载约束(短时任务) | 应用 | 1 | |
| 合理使用蓝牙资源 | 应用 | 1 | |
| 合理使用麦克风或者扬声器 | 应用 | 1 | |
| 合理使用GPS资源 | 应用 | 1 | |
| 合理使用sensor资源 | 应用 | 1 | |
| 后台合理使用系统资源 | 应用 | 1 | |
| 稳定性 | 应用崩溃检测 | 应用,服务 | 2 |
| 应用卡死检测 | 应用,服务 | 4 | |
| 内存泄漏检测 | 应用,服务 | 4 | |
| 安全与隐私 | 申请权限字段规范 | 应用,服务 | 2 |
| 应用Ability可见性设置 | 应用,服务 | 2 | |
| 应用Ability权限设置 | 应用,服务 | 2 | |
| DataShareExtensionAbility组件权限 | 应用,服务 | 2 | |
| 权限申请最小化原则 | 应用,服务 | 2 | |
| 公共事件接收器权限访问控制 | 应用,服务 | 2 | |
| 应用调试属性 | 应用,服务 | 2 | |
| 应用签名完整性 | 应用,服务 | 2 | |
| 应用签名信息 | 应用,服务 | 2 | |
| UX测试 | 基础信息 | 服务 | 2 |
| 服务卡片定时刷新 | 服务 | 1 | |
| 卡片背景圆角 | 服务 | 1 | |
| 卡片最小字体 | 服务 | 1 | |
| 卡片内容圆角 | 服务 | 1 | |
| 卡片热区大小 | 服务 | 1 | |
| 最佳实践 | 避免过大的组件树节点数目 | 应用,服务 | 2 |
| 避免执行脚本的耗时过长 | 应用,服务 | 2 | |
| 避免渲染界面的耗时过长 | 应用,服务 | 2 | |
| ForEach性能 | 应用,服务 | 2 | |
| 单帧属性数量更新内容限制 | 应用,服务 | 2 | |
| 单帧脏组件数量限制 | 应用,服务 | 2 | |
| web组件初始化耗时检测 | 应用,服务 | 2 | |
| web执行js耗时检测 | 应用,服务 | 2 | |
| UI线程IO执行耗时长未并行化检测 | 应用,服务 | 2 | |
| UI线程耗时操作检测 | 应用,服务 | 2 | |
| web主资源下载耗时检测 | 应用,服务 | 2 | |
| web子资源下载耗时检测 | 应用,服务 | 2 | |
| 短视频起播时延检测 | 应用 | 2 | |
| 相机拍照完成时延检测 | 应用 | 2 |
最后呢
很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。
而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点
如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助大家在技术的道路上更进一步。
- 《鸿蒙 (OpenHarmony)开发学习视频》
- 《鸿蒙生态应用开发V2.0白皮书》
- 《鸿蒙 (OpenHarmony)开发基础到实战手册》
- OpenHarmony北向、南向开发环境搭建
- 《鸿蒙开发基础》
- 《鸿蒙开发进阶》
- 《鸿蒙开发实战》

总结
鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。
并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿
更多推荐


所有评论(0)