点击蓝字
关注我们
一、背景
本次测试的背景是需要对鸿蒙APP启动时间、页面切换响应时间、地图加载时间、内存和CPU占用率进行性能测试,使其满足用户的性能需求。当前测试设备HarmonyOS版本5.1.0。
DevEco Studio,作为华为官方推出、专为HarmonyOS(鸿蒙)应用与元服务打造,基于IntelliJ IDEA Community开源版构建,支持 Windows、macOS 等主流系统的一站式集成开发环境。
二、安装DevEco Studio
了解了性能测试背景之后,我们需要对鸿蒙APP性能测试工具DevEco Studio进行安装,先访问华为官网:https://developer.huawei.com/consumer/cn/deveco-studio/,下载并安装后,新建一个Application,命名为MyApplication,并打开它。
安装了DevEco Studio之后,我们对HDC的基本配置与使用进行说明。HDC是鸿蒙手机和DevEco Studio的连接桥梁。hdc可执行文件默认是在DevEco Studio/sdk/default/openharmony/toolchains目录下,如图所示:

将hdc所在目录添加进环境变量Path中,然后在CMD窗口,输入hdc shell bm get –udid,以验证环境变量添加成功,前提是鸿蒙手机连接电脑且开启开发者选项——USB调试:

用hdc安装hap包命令:
hdc install D:\dev\gzx_test_bundle-dev-251023.hap用hdc查看日志命令:
hdc shell hilog >d:\dev\log.txt用hdc获取设备udid,命令:
hdc shell bm get--udid三、测试策略设计
性能测试流程
1. 建立性能基线
在优化前,先对当前版本进行一次完整的性能测试,记录下关键数据(启动时间、内存占用等),作为基线。
2. 模拟真实用户场景
不要只测试理想情况,应覆盖:中低端设备、弱网环境(可使用网络模拟工具)、多后台任务的干扰场景。
3. 迭代优化与回归测试
●识别到一个性能问题(如主线程阻塞)。
●进行代码优化(如将任务移到Worker线程)。
●重新运行性能测试,与基线对比,验证优化效果。
●确保修复一个问题时没有引入新的性能回归。
4. 关键性能指标参考
// 鸿蒙应用性能优秀行业标准- 启动时间 (冷):≤1.5秒- 页面切换:≤300毫秒- 内存占用:根据应用复杂度,通常≤150MB(不含游戏)- 帧率:≥55FPS(稳定)- 主线程阻塞:无超过16ms的任务
测试策略
1.APP启动时间
测试方法:用profiler
2.页面切换响应时间
从A页面跳转到B页面,直到B页面完全渲染完毕(或达到可交互状态)所花费的时间。
测试方法:研发加代码埋点
比如:在A页面的跳转按钮点击事件和B页面的 onWindowFocusChanged() 方法中记录时间戳。
// In Activity ApublicvoidonButtonClick(View view){long startNavTime= System.currentTimeMillis();Intent intent= new Intent(this, ActivityB.class);//将开始时间传递到Bintent.putExtra("start_nav_time", startNavTime);startActivity(intent);}// In Activity B@OverridepublicvoidonWindowFocusChanged(boolean hasFocus)super.onWindowFocusChanged(hasFocus)if(hasFocus){long endNavTime= System.currentTimeMillis();long startTime= getIntent().getLongExtra("start_nav_time",0);long navigationTime= endNavTime- startTime;Log.d("NavTime","Page switch took:"+ navigationTime+"ms");}}
3.地图加载时间
核心需求是测量从发起地图加载请求到地图完全渲染完毕(所有瓦片、标注等都加载完成)的时间。
测试方法:加埋点日志。
4.内存和CPU占用率
测试方法:用profiler。
四、性能测试工具核心组件:Profiler
DevEco Studio Profiler是一个功能强大的一体化性能分析工具。使用它的工作流是:
●监控:在Profiler中实时观察各项指标。
●记录:对可疑场景进行深度记录(CPU、内存)。
●分析:使用调用图、火焰图、堆转储等工具定位根本原因。
●验证:修复问题后,再次测试以确认优化效果并防止回归。
打开Profiler方法
方法1:DevEco Studio界面右下角Profiler图标。

方法2:菜单View -> Tool Windows -> Profiler。

连接设备并启动应用后,我们会看到以下性能追踪器:
性能分析面板 (Profiler)├── CPU // CPU使用率与线程活动├── Memory // 内存分配与泄漏检测├── Energy // 功耗消耗分析└── Network // 网络请求与流量



CPU测试
CPU帮助我们定位应用中的计算瓶颈和卡顿问题。
1. 实时CPU监控
查看整体CPU使用率曲线,区分应用进程与系统总的CPU使用率。
2. 记录CPU活动
在CPU面板点击Record按钮,在应用中进行需要测试的交互操作(如页面跳转、列表滑动),操作完成后点击Stop。
3. 分析CPU记录
记录完成后,会展示详细的调用图,主要看两个视图:
●Call Chart(调用图)
a.水平轴:方法执行时间线。
b.垂直轴:调用栈深度。
c.寻找“宽墙”:执行时间较长的方法会显示为较宽的矩形。
●Flame Chart(火焰图)
a.顶部向下看:汇总了相同的调用栈。
b.寻找“宽塔”:最宽的塔表示这是最耗时的代码路径,是优化的首要目标。
4.识别主线程阻塞
在调用图中,重点关注主线程。任何在主线程上运行超过16ms的方法都可能导致掉帧和卡顿。
在鸿蒙APP中“我的项目”CPU测试截图如下:

内存测试
内存分析器是发现内存泄漏和过度消耗的关键。
1.实时内存监控
观察Java Heap曲线,关注其增长趋势和GC(垃圾回收)的频率。
2.捕获堆转储
在Memory面板点击Dump Java Heap图标。
分析堆转储文件:
●按Package分组,查看自己的应用包名下的对象实例。
●关注Retained Size列,它表示该对象及其引用链总共占用的内存大小。
●检查是否有异常多的重复对象或本该被回收的对象(如 Activity、Context)。
3.记录内存分配
点击Record Java Allocations,执行测试场景(如反复打开关闭一个页面),停止记录,分析哪些对象被频繁创建,查看对象的分配栈,找到创建这些对象的代码位置。
4.内存泄漏测试标准流程
//测试场景:反复打开/关闭详情页10次(1)触发一次GC,记录初始内存状态。(2)执行10次“打开详情页->返回”操作。(3)再次触发GC。(4)在堆中过滤 DetailActivity。(5)判断结果预期:理想情况只剩下0个或1个实例(当前可能被持有)。发现问题:如果存在多个DetailActivity实例,则表明存在内存泄漏。
启动APP到展示“我的项目”列表页,内存测试截图:


功耗测试
Energy分析器帮助我们了解应用的电量消耗情况。
1.解读功耗事件
在Energy时间线上,会显示不同系统组件的耗电事件:
●CPU:高负载计算。
●Network:网络数据传输。
●GPS:位置信息获取。
●Sensor:传感器使用。
●Wake Lock:保持设备唤醒。
2.优化高功耗场景
●合并网络请求:减少射频模块频繁唤醒。
●优化定位策略:使用低精度的NETWORK_PROVIDER代替高精度的GPS_PROVIDER,并及时关闭定位。
●释放Wake Lock:在后台任务完成后立即释放。
网络测试
Network分析器展示所有网络请求的详细信息。
1.分析网络请求
查看每个请求的URL、响应码、大小、耗时。关注慢请求和失败请求。
2.优化网络性能
●检查图片大小:是否下载了远大于显示尺寸的图片。
●启用缓存:对静态资源合理使用缓存策略。
●压缩数据:请求和响应数据是否可以被GZIP压缩。
启动时间测试
用自动启动模式,在20秒内手动启动app,profiler面板上生成分析数据,见高亮部分:



页面切换响应时间和地图加载时间测试
研发加埋点日志后,在对应页面切换,在app的日志中查看两个页面访问时间,进行相减,得到页面切换时间,地图加载时间也是同样的方法。
五、总结
通过对鸿蒙OS.5.1.0设备上APP的关键性能指标,如启动时间、页面切换响应时间、内存和CPU占用率的数据负载测试,最终得出以下结论:冷启动时间平均24毫秒,页面切换时间在22-123毫秒之间,满足用户日常的性能需求。
E n d
声明:本文为51Testing软件测试网 枫叶 用户投稿内容,该用户投稿时已经承诺独立承担涉及知识产权的相关法律责任,并且已经向51Testing承诺此文并无抄袭内容。发布本文的用途仅仅为学习交流,不做任何商用,未经授权请勿转载,否则作者和51Testing有权追究责任。如果您发现本公众号中有涉嫌抄袭的内容,欢迎发送邮件至:editor@51testing.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

夜雨聆风