Python获取移动性能指标

最近两天在研究移动性能这块,这个的用处非常大,比如说在做性能测试的时候用top 或者 dstat 1的时候获取到的性能指标是非常实用的,即时获取的指标评估和分析系统瓶颈。

再就是在自动化中调用性能指标,每一步导致的手机性能都即时打印出来,对于性能监测来说帮助也非常大。

在android中的获取也不难, 首先介绍一个类库subprocess, 获取进程中的子进程,其实也就是在python中代码执行和获取linux中的性能参数,然后做些解析

先列出获取指标的命令:

1. adb devices 获取设备

2. adb shell dumpsys activity | findstr mFocusedActivity 获取当前的 packagename及activityname

3. adb -s (device) shell dumpsys meminfo (package) 获取mem占用情况

4. adb -s(device) shell top -n 1| findstr (package)获取cpu

5. adb -s(device) shell ps | findstr (package)获取pid和uid

6. adb -s(device) shell cat /proc/net/xt_qtaguid/stats | findstr (uid) 获取流量

通过subprocess来获取的以上命令中的返回值,并对返回值处理来获取到精确值(subprocess 可以看文章 : http://www.cnblogs.com/Security-Darren/p/4733368.html)

注意subprocess.Ropen 返回的是一个子进程,通过子进程的.stdout.readlines() 或者.stdout.read()来获取到结果文件(stdout=subprocess.PIPE实际上为文本流提供一个缓存区,来指定将多个输出放在一起形成管道来统一获取)

获取到结果后,通过列表和字符函数把确定的值取出即可。

原文地址:https://www.cnblogs.com/goldenRazor/p/8409386.html