> 技术文档 > Android 性能测试教程_安卓性能测试

Android 性能测试教程_安卓性能测试


📚一 Android 性能测试完整教程


1. 测试内容(要测哪些指标?)

常规来说,Android 性能测试重点包括:

类别 具体指标 启动性能 冷启动、热启动、冷后台启动时间 流畅度 帧率(FPS)、丢帧率、Jank(卡顿)数 内存占用 App内存(PSS、RSS)、内存泄漏检测 CPU 占用 App进程CPU占用率,峰值/均值 电量消耗 单位时间耗电量、电池温度变化 GPU 渲染 GPU Overdraw、GPU占用率 网络性能 请求耗时、失败率、数据量 存储占用 安装包大小、缓存文件大小

特别是车载应用(IVI系统),还需要特别注意:

  • 冷启动速度(开机进入座舱应用很敏感)
  • 内存占用(因为车机硬件一般比手机小)
  • 帧率和卡顿率(人眼敏感,影响高级感)

2. 测试方法(怎么测?)

分成两大类:

方法 说明 官方工具测量 使用 Android Profiler, Systrace, GPU 渲染分析等官方工具 脚本自动化测量 用 adb 命令、Perfetto、Battery Historian 等收集数据

简单举例:

  • 启动时间
    adb shell am start -W 包名/启动Activity
  • FPS帧率
    adb shell dumpsys gfxinfo 包名
  • 内存
    adb shell dumpsys meminfo 包名
  • 电池耗电
    adb shell dumpsys batterystats

3. 工具推荐(超实用)

类别 工具 说明 帧率卡顿 dumpsys gfxinfo / Perfetto 精准分析UI绘制过程 启动时间 am start -W 官方方法 内存 Android Studio Profiler / LeakCanary 监控&检测内存泄漏 CPU/GPU Android Studio Profiler / Perfetto 可视化线程调度、渲染流程 电池 Battery Historian 分析耗电来源 卡顿分析 Systrace / Perfetto 精细到线程/方法级卡顿

4. 标准测试流程(怎么一步步测试?)

【测试前准备】

  1. 手机/车机设置为「开发者模式」
  2. 打开「USB调试」和「显示刷新率」
  3. 保持系统状态一致(不要乱动)

【测试步骤】

启动时间测试
adb shell am start -W 包名/启动Activity

看 TotalTime 和 WaitTime。

帧率流畅度测试
adb shell dumpsys gfxinfo 包名

查看 FrameData(丢帧次数、绘制时间)

或者用 Perfetto录一段trace分析。

内存占用测试
adb shell dumpsys meminfo 包名

看 PSS(Proportional Set Size)。

用 Android Profiler -> Memory -> Capture heap。

CPU测试

用 Android Profiler -> CPU -> Record trace。

看主线程有没有卡住(主线程>16ms绘制一帧就算卡顿)。

电量测试
  1. 充满电
  2. 断电
  3. 只运行APP,记录一段时间
  4. 用 Battery Historian 分析耗电来源

【测试后总结】

  • 出现异常:卡顿、内存泄漏、过高耗电,要记录下来。
  • 对比基线:最好和历史版本数据对比。
  • 图表化结果:帧率、耗电量做成图表,方便展示。

5. 注意事项

  • 测试环境固定:同一设备、同一版本、相似系统负载。
  • 多次采样取平均值,避免单次误差。
  • 录屏容易影响性能测试结果(尤其是FPS),要注意。
  • 车机设备由于不同于手机,可能要在车机实际跑(不要只靠模拟器)。

📈 补充进阶

可以学会使用:

  • Perfetto Trace(系统追踪分析)
  • Systrace(方法级卡顿分析)
  • Jetpack Macrobenchmark(安卓官方性能基准测试库)

这些在高质量车载应用开发中是标配技能,尤其是针对“座舱系统启动速度优化”“车载系统不卡顿”这种高级目标。


🚀 总结一句话

想做好 Android 性能测试,本质就是:掌握正确指标、熟练使用工具、规范操作流程。


二 完整 Android 性能测试命令清单 + 测试模板表格


📜 Android 性能测试命令清单


1. 启动时间测试

adb shell am start -W 包名/启动Activity
  • TotalTime:总启动耗时(ms)
  • WaitTime:等待时间(ms)

2. 流畅度 / 帧率 / Jank 测试

adb shell dumpsys gfxinfo 包名
  • 查看每一帧绘制耗时(理想一帧 < 16.67ms)
  • Janky frames:卡顿帧数量
  • Frame time percentiles:帧时间分布

也可以直接打开开发者选项,开启【GPU 渲染分析】。


3. 内存使用情况测试

adb shell dumpsys meminfo 包名
  • TOTAL PSS:实际占用内存(越小越好)
  • Native Heap / Dalvik Heap:本地堆 / 虚拟机堆使用情况

4. CPU 占用率测试

实时监测:

adb shell top -m 10

只看某个进程(比如包名叫 com.example.app):

adb shell top -o CPU -p `adb shell pidof 包名`

5. 电池/耗电测试

重置电池历史数据:

adb shell dumpsys batterystats --reset

充电器拔掉后,使用APP一段时间,采集:

adb shell dumpsys batterystats > /sdcard/batterystats.txtadb pull /sdcard/batterystats.txt

然后导入 Battery Historian 分析。


6. 帧渲染/卡顿深入分析(Perfetto Trace)

录制一段 Perfetto Trace:

adb shell perfetto --config /data/misc/perfetto-traces/record.cfg -o /data/misc/perfetto-traces/trace_file.perfetto-traceadb pull /data/misc/perfetto-traces/trace_file.perfetto-trace

然后去 Perfetto UI 打开文件分析。


7. 应用包体积分析

apk analyzer

(在 Android Studio 中打开 APK Analyzer)

可以看:

  • dex文件大小
  • 资源文件大小
  • 总体积分布

📝 性能测试模板表格(可直接填)

测试项 工具/命令 测量结果 备注 冷启动时间 adb shell am start -W (填写ms) Cold Start 热启动时间 adb shell am start -W (填写ms) Warm Start 帧率FPS adb shell dumpsys gfxinfo (填写平均FPS) 丢帧率 adb shell dumpsys gfxinfo (填写%) CPU占用率 adb shell top (填写%) 内存占用 adb shell dumpsys meminfo (填写PSS大小) 电池消耗 Battery Historian (填写耗电量mAh) GPU Overdraw GPU渲染分析 (简单过度情况) 包体积大小 apk analyzer (填写MB) 发现的问题 记录 卡顿/泄漏/异常耗电等 优化建议 记录 优化方向总结

🛠 附加实用技巧:

  • 连续测3~5次,取平均值,更准确。
  • 测冷启动时,必须杀掉进程再启动。
  • 车载设备上,如果可以,用 logcat+trace 文件一起采集,便于定位。

三 车载Android专用的性能测试特别注意清单