软件之所以会耗电,是因为使用了手机的某种资源,手机各个模块的耗电情况是不同的。当程序有以下场景的一点或几点就会有耗电风险,比如:
1、定位,尤其是调用gps定位(每次都请求)
2、网络传输,尤其是非wifi环境(移动环境里耗电量比较高,因为手机在使用移动网络的时候频繁去基站交换数据)
3、屏幕亮度
4、CPU频率(CPU频率高处理速度也不一定快,因为它跟系统频率,整体架构,GPU,缓存有关系)
5、内存调度频度(算法有作业排队前后顺序处理,短作业优先等多种)6、wake_locker时间和次数(唤醒锁,我们平均每小时通过Alerm调起的次数不超过20次)
APP功耗=CPU消耗+WakeLock消耗+数据传输消耗(移动网络&WiFi)+WiFi运行+GPS+other sensors。
参考文章
PowerTutor帮助用户了解手机系统以及应用程序的功耗。该程序可以在大部分Android手机上正确运行,但是功耗估计仅在HTC Dream, Magic和Nexus one上准确。该程序在后台运行,记录应用程序的硬件使用状况,结果以图表的方式总结并显示。详解
工具下载地址:http://ziyang.eecs.umich.edu/projects/powertutor/