标签:outline 设备 screen adb shell state init border encoding roi
在测试Android app时,不仅仅要关注app的功能,也好关注app的性能指标,cpu、内存、流量、电量等。简单介绍下电量测试中的cpu耗电。
这里主要介绍读取内核文件,计算出cpu的电量消耗。
步骤主要如下:
每个Android设备都存在这样的一个文件,这个文件定义了各个硬件的功率。不同的手机,内容不同。我的如下(单位mAh,意思是一个小时,能耗电多少mAh):
<?xml version="1.0" encoding="utf-8"?> <device name="Android"> <item name="none">0</item> <item name="screen.on">71</item> <item name="bluetooth.active">17</item> <item name="bluetooth.on">0.3</item> <item name="screen.full">380</item> <item name="wifi.on">0.3</item> <item name="wifi.active">96</item> <item name="wifi.scan">70</item> <item name="dsp.audio">44</item> <item name="dsp.video">280</item> <item name="radio.active">250</item> <item name="radio.scanning">82</item> <item name="gps.on">1</item> <array name="radio.on"> <value>3.4</value> <value>3.4</value> </array> <array name="cpu.speeds"> <value>12000000</value> <value>10000000</value> <value>800000</value> <value>500000</value> <value>200000</value> </array> <item name="cpu.idle">4</item> <array name="cpu.active"> <value>577</value> <value>408</value> <value>249</value> <value>148</value> <value>55</value> </array> <item name="battery.capacity">2100</item> </device>
该文件存在手机的/system/framework/framework-res.apk包里,需要使用apk-tool对apk进行反编译,反编译后,在$output/res/xml文件夹中。
adb shell ps | grep {appName}
或者adb shell top -n 1 | grep ${appName}
cat /proc/${pid}/stat
, 这个文件中的第14列到17列相加得到的就是从开机到此刻,app一共占用多少cpu时间(设这里值为T1),这里的单位是jiffies, 这个单位的意思是cpu的运算次数,如果cpu的频率为1G,那么1 jiffies = 1/1G 秒。cat /proc/${pid}/stat
,获取cpu占用时间,减去第二步的T1,就是这段时间app的cpu占用时间。标签:outline 设备 screen adb shell state init border encoding roi
原文地址:http://www.cnblogs.com/ITniu/p/7380414.html