- WakeLock原理和手机耗电:
手机功耗本质是硬件工作的消耗,手机主要功耗硬件如下:CPU GPU soc Vedio 和外设。内存本身是不耗电的,只是作为程序的临时住所;
Wake Lock 是Android提供给开发者的一个方法,主要的作用是对关键进程进行强制性的运行,正常情况下手机灭屏了就不使用了,硬件应该也就停止工作了,单总有例外,如音乐、短信接收等;所以Android系统提供Wake Lock机制,提供了Wake Lock的API,使得应用程序有权限通过代码阻止AP进入休眠状态,这种开放性导致流氓软件 ,即使手机灭屏,程序仍然会在后台运行占用资源,对功耗和手机性能产生影响。
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); WakeLock sCpuWakeLock = pm.newWakeLock(
PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP,"okTag");
if (sCpuWakeLock!= null) {
sCpuWakeLock.release();
sCpuWakeLock = null;
}
PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可