查看 CPU 占用率
1、使用命令 adb shell top -m 10 -s cpu(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量)
2、通过 proc 获取 CPU 信息。
adb shell cat /proc/stat | grep cpu > totalcpu0
3、Android Studio 自带 CPU 检测功能
耗电测试:
1、PowerStat
2、电量的测试方法(adb shell dumpsys batterystats)
1)首先要初始化 batterystats 数据
adb shell dumpsys batterystats --reset
2)上面的操作执行完毕后,拔掉手机,操作你的 App,操作完成后,重新连接手机,执行下面的命令,收集 Battery 数据:
adb shell dumpsys batterystats > batterystats.txt
3、PowerTutor
流畅度测试:
1、Android Studio 自带 GPU 测试功能
2、FPS Meter
3、系统自带功能,GPU 呈现模式分析
流量测试:
1、Android Studio 自带流量检测功能
2、tcpdump+Wireshark 抓包测试法
在 App 运行期间,把手机收发的所有报文度抓取下来,再计算收发报文总大小,即 App 消耗的流量。
内存测试:
1、adb shell dumpsys meminfo 或 adb shell dumpsys meminfo
2、Android Studio 中对应进程的 Heap
3、内存泄露工具 LeakCanary
cpu 端:
手机根目录下有个 proc 文件夹,里面会存放一些内存的信息。每个应用对应一个文件夹,文件夹的名称就是应用的 pid。该文件夹下面会有一个 stat 文件,里面会存放些应用的运行信息。
对整个手机,proc 下同样有一个 stat 文件,里面有存放了类似的信息,
计算 cpu 占用时,使用的公式为:(B-A)/(TB-TA)*100,其中 A 为被测应用第一次获取到的 cpu 情况,B 为 A 间隔 500 毫秒后再次获取到 cpu 情况,TA 为整个手机的 cpu 情况,TB 为 TA 间隔 500 毫秒后再次获取到的 cpu 情况。当前应用有多个进程时,所得的 cpu 占用为多个进程的 cpu 占用和。
内存端:
android sdk 提供了 getTotalPss() 的接口获取指定 pid 的内存占用。应用有多个进程时,总的内存占用为多个进程的 pss 值之和。
网络流量:
android sdk 提供了 TrafficStats.getUidTxBytes(uid),TrafficStats.getUidRxBytes(uid) 两个接口去获取指定应用的流量使用情况。
耗电:
dumpsys batterystats 命令里面会输出各个应用的耗电情况,但该命令对手机的系统版本有要求,且应用内使用时需要有 root 权限。