前段时间在看 Android 客户端性能测试,处于兴趣写了个性能数据抓取的插件,可以抓取的数据有 app 启动时间、cpu、pss、流量上下行、流畅度等。

关于内存要说一下为什么只抓取 pss,因为没有 root 的情况下无法获取到 uss,pss 是最有参考价值的(进程占用内存 + 按比例分配共享库占用的内存)

流量抓取方式也略有不同,前一种方法获取 tcp 流量,而且在有的设备上无法获取到数据,无法做到普适性:

流畅度阈值的界定:按官网的建议每秒小于 60 帧就能感觉到不流畅,也就是说每帧的阈值=1000/60 =16ms

app 启动时间获取原理:

cpu 抓取内容
20151201163739 0.8% 9819/com.yzt:remote:
20151201163739 0% 9699/com.yzt:
20151201163743 5.2% 9699/com.yzt:
20151201163743 1% 9819/com.yzt:remote:
20151201163743 0% 14177/com.yzt:pushservice:

流量抓取内容
20151201163740 1119317 1313028
20151201163743 1119317 1313028
20151201163746 1429836 1328958
20151201163749 1509060 1337427
20151201163752 2525902 1381403

每帧耗时抓取内容
1.30 1.25 0.53
0.63 0.62 1.64
0.24 0.51 0.44
0.25 1.76 0.40
0.25 1.55 0.43
0.25 0.53 0.37
0.49 1.51 2.12
0.45 0.67 0.27
0.43 0.71 2.83
0.43 0.76 3.04

####  报表展示:
![](/photo/2015/24467c51143c0c0909d3870c3f29a91a.png)


↙↙↙阅读原文可查看相关链接,并与作者交流