adb性能分析

  • 分析启动速度(App Launch Time)
    1
    2
    3
    4
    5
    # 清除应用数据(可选,模拟冷启动)
    adb shell pm clear your.package.name

    # 启动 App 并记录时间
    adb shell am start -W -n your.package.name/.MainActivity

✅ 输出关键指标:

1
2
3
4
5
6
7
Starting: Intent { cmp=your.package.name/.MainActivity }
Status: ok
Activity: your.package.name/.MainActivity
ThisTime: 320 ← 最后一个 Activity 启动耗时(毫秒)
TotalTime: 850 ← 总启动耗时(从点击到首屏渲染完成)
WaitTime: 860
Complete
  • Cold Start(冷启动):TotalTime > 1000ms 需优化
  • Warm Start(热启动):通常 < 300ms

方法 2:Android Studio Profiler(可视化分析)

  1. 打开 Android Studio → Profiler
  2. 运行你的 Release APK(通过 Run → Profile
  3. 查看 Startup Timeline(Android 10+ 支持)
    • 显示 Application.onCreate()Activity.onResume() 的完整耗时
    • 可定位初始化瓶颈(如 JS 引擎加载、原生模块注册)

📊 三、监控 CPU 与内存占用

工具 1:Android Studio Profiler(推荐 ✅)

步骤:

  1. 用 USB 连接手机,打开你的 App
  2. 在 Android Studio 中:
    • 点击 View → Tool Windows → Profiler
    • 选择你的进程(如 com.anonymous.XApp
  3. 实时查看:
    • CPU:线程活动、函数耗时(可录制 Trace)
    • Memory:堆内存大小、对象分配、GC 频率

关键指标:

指标 健康值 风险
冷启动内存 < 100 MB > 150 MB 可能内存泄漏
CPU 峰值 < 70% 持续 100% 导致卡顿
GC 频率 < 1 次/秒 频繁 GC = 内存抖动

工具 2:adb 命令行监控(无 Android Studio 时)

查看内存:

1
adb shell dumpsys meminfo your.package.name

输出示例:

1
2
3
4
5
6
7
8
Applications Memory Usage (in kilobytes):
Uptime: 1234567 Realtime: 2345678

** MEMINFO in pid 12345 [com.anonymous.XApp] **
Pss Dirty Clean SwapPss SwapDirty
Native Heap 45000 44000 0 1000 0
Dalvik Heap 25000 24000 0 500 0
TOTAL 85000 70000 0 2000 0 ← 总内存 ~85MB

查看 CPU:

1
adb shell top -n 1 | grep your.package.name

输出:

1
12345 u0_a123   10 -10      0      0      0 S  45.2   8.1   0:12.34 com.anonymous.XApp
  • 45.2 = CPU 占用百分比

💡 最终建议:

  1. 优先用 Android Studio Profiler —— 最直观全面
  2. 冷启动 TotalTime > 1.2s 就需优化
  3. Release 包内存应 < 120MB(中端机)