永发信息网

android 如何使用Wake Lock来节电?

答案:4  悬赏:80  手机版
解决时间 2021-12-30 23:40
  • 提问者网友:你挡着我发光了
  • 2021-12-30 07:23
android 如何使用Wake Lock来节电?
最佳答案
  • 五星知识达人网友:枭雄戏美人
  • 2021-12-30 08:02
android 使用Wake Lock来节电方法:
默认情况下,Android设备会在一段时间后使屏幕变暗,然后关闭屏幕显示,最后停止CPU,有时用户并不希望如此,因此Android提供了WakeLock类让用户实现自定义的电源管理,但是如果不合理使用这个功能,应用程序造成的电池电量消耗产生显著的影响,所以建议当用户观看屏幕但是很少与屏幕进行交互时(如看视频)使用,从而防止屏幕变暗。
如果一开始就对Android手机的硬件架构有一定的了解,设计出的应用程序通常不会成为待机电池杀手,而要设计出正确的通信机制与通信协议也并不困难。但如果不去了解而盲目设计,可就没准了。
首先Android手机有两个处理器,一个叫Application Processor(AP),一个叫Baseband Processor(BP)。AP是ARM架构的处理器,用于运行Linux+Android系统;BP用于运行实时操作系统(RTOS),通讯协议栈运行于BP的RTOS之上。非通话时间,BP的能耗基本上在5mA左右,而AP只要处于非休眠状态,能耗至少在50mA以上,执行图形运算时会更高。另外LCD工作时功耗在100mA左右,WIFI也在100mA左右。一般手机待机时,AP、LCD、WIFI均进入休眠状态,这时Android中应用程序的代码也会停止执行。
Android为了确保应用程序中关键代码的正确执行,提供了Wake Lock的API,使得应用程序有权限通过代码阻止AP进入休眠状态。但如果不领会Android设计者的意图而滥用Wake Lock API,为了自身程序在后台的正常工作而长时间阻止AP进入休眠状态,就会成为待机电池杀手。比如前段时间的某应用,比如现在仍然干着这事的某应用。
全部回答
  • 1楼网友:蓝房子
  • 2021-12-30 09:21
做任务,做任务,做任务
  • 2楼网友:渊鱼
  • 2021-12-30 09:02
相信不少朋友都在为安卓的耗电问题所困扰,在通常的使用环境下,iOS的电源管理远比安卓优秀,这个差距主要体现在待机上——你可以将iPhone安心放在枕边一夜醒来电量纹丝不动,但如果换成安卓机的话,恐怕电量早已测漏光光连闹钟都不会响了。不过,虽说安卓本身是个实时多任务系统,但在待机时,系统本身是不甚耗电的,安卓4.2.2发布后电量控制更是备受好评。待机时安卓耗电飞快,主要原因还是因为第三方App滥用实时多任务的机制。 为此,不少朋友频频杀后台、清自启,但这样带来的负面效果也多得很,比如说有人用第三方App做闹钟,一不小心闹钟就不会响只能迟到了哭哭。而且后台经常是野火烧不尽,杀了又重生你奈我何,效果难以令人满意。这时候我们不妨换一种思路,通过限制第三方App的行为而非杀进程来打造一个省电的安卓环境。   安卓耗电的元凶:Wakelock   前面提到过,安卓本身是不甚耗电的,如果你用的是一部搭载原生系统的Nexus机器并且什么都不装,你会发现其实安卓也是个安安静静不乱吃电的好孩子。但装上一堆第三方App,特别是自带推送的App后,安卓的耗电程度呈几何级数倍增。巨大耗电量中的最大元凶,就是第三方App频频调用Wakelock。 什么是Wakelock?根据Google官方的描述,一旦调用了Wakelock,无论屏幕开关与否,CPU都会一直保持在运行状态,永不休眠(Deep Sleep)。无论是安卓还是iOS,系统本身都支持CPU休眠,在休眠时CPU耗电远比通常情况下耗电来得少。然而,不少第三方App都会频频调用Wakelock,即使这些App对资源占用很少,CPU可以一直维持在200MHz、400MHz这样的低频率,但所耗资源依然远比休眠状态多——你醒着的时候什么都不干,消耗的能量还是要多于睡眠时候的。 这些第三方安卓App让CPU没法进入休眠状态,安卓待机时电量依然刷刷地走。如何阻止App调用Wakelock就成为了安卓省电的关键,下面我们来看看要如何让第三方App远离Wakelock吧。 找出谁最爱用Wakelock   也许有的朋友会问,安卓不是自带电源监控App的吗?很遗憾,安卓自带的电源监控神通有限,只能监视哪个App经常让CPU飙高、屏幕常亮,对Wakelock不闻不问,真正的耗电元凶隐藏在云中雾里。这时候,我们需要使用专业的App来找出频频调用Wakelock的App。 1、BetterBatteryStats是一款久负盛名的电量监控App,其中最受欢迎的一项功能无疑就是能够查看App调用Wakelock的频率了。BetterBatteryStats并不支持中文,但使用并不复杂。进入到主界面后,点击第一栏,选中“Partial Wakelocks”,即可查看什么App调用Wakelock最多。 除此以外,使用BetterBatteryStats还能够查看CPU在不同时间段的频率、后台进程所消耗资源状态等,功能之强很难在同类App中找到对手。BetterBatteryStats还提供了图表查看,电量消耗一目了然。 2、Wakelock Detector也是一款好的电量保护软件,Wakelock Detector和BeeterBatteryStats一样,不支持中文,但Wakelock Detector的界面更加友好清新。Wakelock Detector的功能要比BetterBatteryStats少,用起来也更简单,点击右上角则可切换不同的选项,可以查看有什么App调用了屏幕和CPU Wakelock。 Wakelock Detector的界面更友好,一眼就看出Google地图多次调用Wakelock,是耗电真凶 找到频频调用Wakelock的App后,即可针对性地作出优化,如将这些App放置到自动杀进程的列表中,不许这些App常驻后台。不过前面也提到,某些App异常顽固,通过注册系统服务反复发作,那么有没有其他什么好方法呢? 3、绿色守护:冻住耗电的App 绿色守护是一款来自国人的App,用以自动冻结暂停系统中的其他App,运行时需要root权限。和传统的杀进程杀后台App相比,绿色守护并不会关闭某个App的后台,而是通过暂停App从而达到省电省资源的目的。由于绿色守护没有杀后台,自然也就不存在后台反复启动的问题。 绿色守护的使用十分简单,点击界面右下方的“+”按钮,选中列表中的App后,即可将App添加到自动暂停的行列中来。绿色守护自带检查App耗电情况(包括检查Wakelock)的功能,什么App耗电一目了然。 将App添加到了绿色守护的自动休眠列表后,绿色守护在锁屏或者是App进入后台一段时间后就会将该App调整到休眠状态,这时候该App就不会再有任何动作,开启Wakelock也无从谈起。根据机友们的反映,绿色守护还是十分有用的,虽然功能单一,但实用性却不可小觑。不过要注意的是,一旦App被冻住,推送之类的功能也会无效,想要冻住QQ、微信这类App之前务必三思。
  • 3楼网友:逃夭
  • 2021-12-30 08:10
sort=active一楼:默认情况下,Android设备会在一段时间后使屏幕变暗,然后关闭屏幕显示,最后停止CPU,有时用户并不希望如此,因此Android提供了WakeLock类让用户实现自定义的电源管理,但是如果不合理使用这个功能,应用程序造成的电池电量消耗产生显著的影响,所以建议当用户观看屏幕但是很少与屏幕进行交互时(如看视频)使用,从而防止屏幕变暗。 二楼:如果一开始就对Android手机的硬件架构有一定的了解,设计出的应用程序通常不会成为待机电池杀手,而要设计出正确的通信机制与通信协议也并不困难。但如果不去了解而盲目设计,可就没准了。 首先Android手机有两个处理器,一个叫Application Processor(AP),一个叫Baseband Processor(BP)。AP是ARM架构的处理器,用于运行Linux+Android系统;BP用于运行实时操作系统(RTOS),通讯协议栈运行于BP的RTOS之上。非通话时间,BP的能耗基本上在5mA左右,而AP只要处于非休眠状态,能耗至少在50mA以上,执行图形运算时会更高。另外LCD工作时功耗在100mA左右,WIFI也在100mA左右。一般手机待机时,AP、LCD、WIFI均进入休眠状态,这时Android中应用程序的代码也会停止执行。 Android为了确保应用程序中关键代码的正确执行,提供了Wake Lock的API,使得应用程序有权限通过代码阻止AP进入休眠状态。但如果不领会Android设计者的意图而滥用Wake Lock API,为了自身程序在后台的正常工作而长时间阻止AP进入休眠状态,就会成为待机电池杀手。比如前段时间的某应用,比如现在仍然干着这事的某应用。 首先,完全没必要担心AP休眠会导致收不到消息推送。通讯协议栈运行于BP,一旦收到数据包,BP会将AP唤醒,唤醒的时间足够AP执行代码完成对收到的数据包的处理过程。其它的如Connectivity事件触发时AP同样会被唤醒。那么唯一的问题就是程序如何执行向服务器发送心跳包的逻辑。你显然不能靠AP来做心跳计时。Android提供的Alarm Manager就是来解决这个问题的。那么Wake Lock
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯