这里说的是通过cpu,wifi,屏幕之类的功耗来
计算公式:
功耗的计算=CPU消耗+数据传输消耗+GPS消耗+Wi-Fi连接消耗+Wi-Fi连接消耗+Wake lock消耗+屏幕亮度的功耗
首先说CPU的耗电:
1 获取power_profile.xml文件:
每台android手机都在power_profile.xml中定义了各个硬件的单位时间的耗电量,单位mAh,意思是一个小时,能耗电多少mAh:
(1)power_profile.xml 存放在 /system/framework/framework-res.apk 包里;
(2)使用apktool将apk反编译,然后在 $output/res/xml 文件夹下找到该文件
power_profile.xml文件如下:
2 获取app的cpu时间(jiffies,1jiffies = 10ms):
(1)获取app的pid:adb shell ps | grep packagename
(2)获取pid执行时间:adb shell cat /proc/${pid}/stat
这个文件中的第14列到17列相加得到的就是从开机到此刻,app一共占用多少cpu时间,这里的单位是ji