android 6.0电池优化,Android 优化——电量优化

WakeLock

Android 系统本身为了优化电量的使用,会在没有操作时进入休眠状态,来节省电量。当然,为了便于开发(很多应用不可避免的希望在灭屏后还能运行一些事儿,或是要保持屏幕一直亮着--比如播放视频),Android 提供了一个 PowerManager.WakeLock 的东西.

我们可以用 WakeLock 来保持 CPU 运行,或是防止屏幕变暗/关闭,让手机可以在用户不操作时依然可以做一些事儿。然而,获取 WakeLock 很容易,释放不好就会成为难题,消耗电量。例如获取了一个 WakeLock 来保持 CPU 运转,做一个复杂运算并将数据上传到后台服务器,然后释放该 WakeLock。然而这个过程可能并不像我们想象的那么快,可能因为比如服务器挂掉,计算出了异常等等导致 WakeLock 没有释放,CPU 会一直得不到休眠,而大大增加耗电。

另外,WakeLock 还有 android:keepScreenOn 属性,还可以让屏幕常量,这也是耗电大户。

private void acquireWakeLock(Context ctx) {

if (null == mWakeLock) {

PowerManager pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE);

mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK|PowerManager.ON_AFTER_RELEASE, "TestLocknService");

if (null != mWakeLock) {

mWakeLock. acquire();

}

}

}

PARTIAL_WAKE_LOCK:保持 CPU 正常运转,屏幕和键盘灯有可能 会关闭。

SCREEN_DIM_WAKE_LOCK:保持 CPU 运转,允许保持屏幕显示,但有可能变暗,允许关闭键盘灯。

SCREEN_BRIGHT_WAKE_LOCK:保持 CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯。

FULL_WAKE_LOCK:保持 CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度。

ACQUIRE_CAUSES_ WAKEUP:强制使屏幕亮起,这种锁主要用于一些必须通知用户的操作。

ON_AFTER_RELEASE:当锁被释放时,保持屏幕亮起一段时间。

需要注册权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值