在PC端记录手机(Android操作系统)的CPU占用率,内存占用率等信息

最近,我需要考察程序对手机的资源的占用情况。

我希望能够获取并记录手机的CPU占用率,内存占用率等信息。由于手机的资源本身比较紧张,因此我希望将手机与PC连接后,使用PC来记录并处理相关数据。

在PC端,我使用python脚本。

1.使用shell命令获取系统信息

通常在PC端,我们可以打开命令提示符,使用adb命令来获取

与手机相关的信息。例如,使用

adb shell [shell 命令],就可以执行一次shell命令。

    在python脚本中,我们可以使用os.system(“adb shell [shell 命令]”)来执行一次shell命令,但是

这种方法的不足是:该方法不能获取命令执行后的返回信息;而我执行shell命令的最重要的目的是

获取手机的相关信息。由于上述矛盾,这个方法行不通。

    在python脚本中,我们还可以用results = os.popen(“adb shell [shell 命令]”).readlines()来执行

一次shell命令。执行命令后返回的信息存储在results中。

          (1)CPU占用信息的获取 :

sysInfo = os.popen(“adb shell top -n 1”).readlines() #通过此句代码,top的一次输出就存储在了

sysInfo这个list中。其中sysInfo[3]的值为“User 86%, System 11%, IOW 0%, IRQ 1%”。

我们可以利用python的re模块将所需的信息提取出来。

sysCPUInfo = re.match(‘.*\s+(\d+).*\s+(\d+).*\s+(\d+).*\s+(\d+).*’,sysInfo[3]), 执行此句代码后,

sysCPUInfo.group(1)的值为86,sysCPUInfo.group(2)的值为11,sysCPUInfo.group(3)的值为0,

sysCPUInfo.group(4)的值为1,于是与系统CPU占用率相关的信息就提取了出来。同时,

通过查找整个sysInfo列表,找到与某一程序相关的信息,进而就可以提取出某一程序的系统资源占用

情况。

(2)内存的使用情况:

读取/proc/meminfo文件,使用公式1-((MemFree+Buffers+Cached)/MemTotal)来计算系统的

内存占用率。使用cat /proc/meminfo读取文件,提取并记录数据的方法同上。

2. 写一个计算内存,CPU占用率的android小程序,写入日志。PC端使用logcat捕获信息。

想要写该程序,需要参考以下文章

http://www.bangchui.org/read.php?tid=40347

http://www.cnblogs.com/cody1988/archive/2011/09/29/2195717.html

 

发表评论

邮箱地址不会被公开。