【IT专家】深入浅硆oid之WakeLock机制

电脑杂谈  发布时间:2020-01-26 16:01:42  来源:网络整理

深入浅出android_深入理解android网络编程_深入理解android 卷2

本文由我司收集整编,推钾,如有疑问,请与我司联系 深入浅砫roid 之 WakeLock 机制 2017/08/14 0 应用程戌的实质,是所颇硬件在损耗电量。手机的省电 单元 CPU:应用处理苝plicationProcessor)和基带处理芶seBand) Soc(系统级芯片):GPU(图形处理单元),VideoCodec 等外设:wifi深入浅出android,BT,GPS,LCD 等耗电情喀用处理艫pplicationProcessor)40~60mA GPU 开漆?00mA 基带处理芶seBand)3~5mA 通话时 100~200mA LCD100mA Wifi100mABT60mA AP 是 ARM 架构的处理泼于运行 Linux Android 系统; BP 用于运行实时操壮(RTOS),通讯协议栈运 行于 BP 的 RTOS 之上 非通话时间,BP 的能耗基本上在 5mA 赚而 AP 只要进入非休眠状况,能耗 至少在 50mA 以上,执行图形运算时会更高。另外 LCD 工爪耗在 100mA 祝琖IFI 也在 100mA 祝 一般手机待机时,AP、LCD、WIFI 均处于休眠状况,这时 Android 中应用程写胍不嵬V怪葱?只会有基带处理芶seBand)的耗电。

深入浅出android_深入理解android 卷2_深入理解android网络编程

摩托罗拉的里程碑手 机为例,官方的参数如下: 锂电池(1400mAh)通话时间 450 分钟待机时间 420 小时也就是说,通话时 1400/ (450/60)=186.67mA 待机时 1400/420=3.33mA 省电的原源需并按最低标准使用硬件 WakeLock 机 制: Android 为了保证应用程胸键代码的正确执行,提供了 Wake Lock 的 API,使得应用程楔限通过代码阻止 AP 进入休眠状况。WakeLock 阻止应用处理艫pplicationProcessor)挂品保关键代码的运行深入浅出android,通过中止唤泼处理凭文由我司收集整编,推钾,如有疑问,请与我司联系 (ApplicationProcessor),可以阻止屏幕变暗。所有的 WakeLock 被释放旱统会 挂芇owerManagerpm=(PowerManager)context.getSystemService(Context.POWER_SERVIC E);WakeLocksCpuWakeLock=pm.newWakeLock(PowerManager.FULL_WAKE_LOCK| PowerManager.ACQUIRE_CAUSES_WAKEUP,”okTag”); if(sCpuWakeLock!=null){ sCpuWakeLock.release(); sCpuWakeLock=null; }PARTIAL_WAKE_LOCK:保持 CPU 运转,屏幕跟键盘灯有也许是关闭的。

深入浅出android_深入理解android 卷2_深入理解android网络编程

SCREEN_DIM_WAKE_LOCK:保持 CPU 运转,允许维持屏幕显示但有也许是灰 的,允许关闭键盘灯 SCREEN_BRIGHT_WAKE_LOCK:保持 CPU 运转,保持屏幕 高亮显示,允许关闭屏幕灯 FULL_WAKE_LOCK:保持 CPU 运转,保持屏幕高亮 显示,键盘灯也保持色温 ACQUIRE_CAUSES_WAKEUP:不会唤醒设备,强制屏 幕马上高亮显示,键盘灯开菩一糕,如果有 notification 弹嘲,会唤醒 设备。ON_AFTER_RELEASE:WakeLock 被释放含持屏幕亮度一小段时间, 糤akeLock 循环时的闪烁情葵申请了 partialwakelock,那么如果按 Power 键, 系统也不会进 Sleep,如 Music 播放时即使申请了其他的 wakelocks,按 Power 键,系统 还是会进 Sleep 但即使不把握 Android 设计者的企图而滥用 Wake Lock API,为了自身程械恼9ぷな奔渥柚 AP 进入休眠状况,就会变成待机电池杀手。 AlarmManagerAlarmManage 有一竌rmManagerService,该服为维护 app 注册下来的窤larm,并且经常 Alarm 设备,一旦有 Alarm 触发,磺 Alarm 事件发生,AlarmManagerService 就会遍历 Alarm 列表,找到相应的登录 Alarm 并发偿 AlarmManager 会维持一竨 的 wakelock。

深入理解android 卷2_深入浅出android_深入理解android网络编程

这样可保证电话休眠时,也可处理 alarm 的广播。一旦 alarmreceiver 的 onReceive()方法执行完,wakelock 会很快被释 本文由我司收集整编,推钾,如有疑问,请与我司联系 放。如果在 receiver 中开苧vice,有也许 service 还没片wakelock 已经被 释放了。宜时应实现单独的 wakelock 策略。 有 4 种 Alarm 类型:1)RTC_WAKEUP 在指定的时刻(设置 Alarm 的时含唤醒 设备来触发 Intent。 2)RTC 在一附的时间触发 Intent,但不唤醒设备。3)ELAPSED_REALTIME 从设备歧果聊时间超过总时间,那么触发 Intent,但不唤醒设备。恋氖奔浒ㄉ璞杆叩娜魏问奔洹W⒁庖坏愕氖牵奔淞募扑愕闶亲源铀 何沏?ELAPSED_REALTIME_WAKEUP 从设备骑到聊 总时间虹果需要将激发设备并触发 Intent。 tips:感谢茨阅读,本文由我司收集整编。轿阅!


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shouji/article-138286-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 张俊卿
        张俊卿

        好你们继续掐再给中国十年发展时间

      • 陈元初
        陈元初

      • 张俊辉
        张俊辉

        #易烊千玺献声小王子##易烊千玺#早安

        • 文昭王乞伏炽盘
          文昭王乞伏炽盘

          也只能是核战

      热点图片
      拼命载入中...