对于很多使用智能手机的用户来,很多抱怨手机耗电太快,很多人买手机的时候卖家都是推荐买两块电池,还有如果用户留心的话,在买手机的网页上,卖家会显示播放视频多长时间,听音乐多长时间,待机多长时间,不过看的最多的应该是他们说待机能够多长时间,今天写这篇文章是由于之前面试一家公司,老板问我如何说一个app算是一个好的程序,当时我给出了三点:1、界面UI 2、流畅度 3、处理耗时数据时,如何在UI上的体现。而后他说了两个耗电,网络,我对网络比较赞成,毕竟我们大多数app不是单机版的,时不时的都要去与网络交互,但是对于耗电我当时不太赞同,我当时的想法就是耗电是驱动模块应该考虑的,还有就是你不用就不耗电,你一直启动肯定要耗电,这个致使我走入一个误区,虽然当时不赞同,不过事后我想起来他们公司产品是要用到GPS的,不用说这个肯定很耗电,所以就查阅了一些资料,平常我们都是性能优化,很多人都会想起内存优化,UI优化等等,其实这些不仅不仅影响app的流程度也会增加电池的消耗的,只不过没有去关注罢了。既然发现了新大陆,所以我打算花上几天的时间去研究一下被我忽略的省电问题。
一、谁吃了我的电量
首先我们来看看Android手机的电量都主要消耗在了什么地方:
显而易见,大部分的电都消耗在了网络连接、GPS、传感器、CPU上了。
简单的说也就是主要在以下情况下耗电比较多:
1、 大数据量的传输。
2、 不停的在网络间切换。
3、 解析大量的文本数据。
上面的三点可以体现在很多方面比如网络图片显示方式,与后台交互数据时使用的传输方式,后台服务等等。那如何让电量飞的更长呢
二、用户角度来控制电量
2.1、屏幕亮度
我们所说的屏幕亮度也就是屏幕的背光,这就好比10瓦的电灯泡和50瓦的电灯泡,很多时候我们并不需要将屏幕亮度调到最高,实际上屏幕亮度是我们手机上那块硕大的屏幕最耗电的地方,所以适当的降低屏幕亮度将能很大程度上提高手机的待机能力,当然安卓系统提供了一个I自动调节亮度的功能,它能自动根据周围的环境来调节屏幕亮度,不过它依赖传感器的,而传感器我们在上面也提到也是耗电的罪魁祸首之一。
2.2、震动
在一些场合我们不希望来电或者信息的时候打扰周围的人,同样也不希望遗漏这些信息,我们通常会调成震动模式,如果不必要时候,不要开启震动,因为驱动手机的震动马达工作室需要消耗相当的电力的,所以如果不是在很有必要的情况下,最好关闭震动,听一下自己喜爱的铃声也是不错的选择。
2.3、按键音和触摸反馈
是不是触摸手机和按键的时候有一个叮当叮当的声音很爽呀,你是爽了,但是电量可就消耗掉了,只要操作手机有按键音和触摸反馈的时候就会消耗额外的电力,而且这也不是什么必须的东西,果断关掉。
2.4、GPS
GPS是一个好东西,出门在外特别是陌生的地方必不可少,记得我刚来上海的时候,带了折叠车上了地铁(我可是用东西包裹的,不然不让折叠车进),由于要转地铁,偏偏到转的地方最后一辆车走了,我只能拿着车子走出地铁站,由于人生地不熟的,还差到我住的地方还有一站有12里地吧,当时想拼车回去,但是司机算两个人,将半个人还不行,索性就打开百度地铁定位,在乌七八黑的路上乱窜,期间为了七八个人,成功与23点40分到家,GPS是个好东西,但是它确实耗电,幸好我带了移动电源不然只能睡在大街上了。在日常生活中的大多数时候我们都用不上GPS,但这并不意味着它没有在工作,所以出门的时候查完地图就关掉它吧。
2.5、蓝牙
近距离传输的好东西,不过只要你开着蓝牙,它就会一直吃掉你那可怜的电量,据说有些病毒也会通过蓝牙传播,所以果断关闭(当然,需要使用蓝牙的时候除外)。
2.6、自动同步
这个功能我是果断的关闭,它不仅耗电也耗流量,所以有需要的时候在开启,不用最好不要开启。
2.7、飞行模式
很多用户在晚上讨厌被骚扰,那么请果断打开飞行模式吧,关闭一切网络连接的手机将会惊人的省电,当然如果是小情侣的话,最好还是不要开启,不然某一个晚上的某一个时刻没有联系到你,第二天可能被轰击的,呵呵,所以要灵活使用飞行模式。
2.8、尽量使用官方ROM或者没有对CPU超频的ROM
对于超频这个词语应该很多人都听说过,超频会稍微提高手机的运行速度,也会大幅增强耗电,并让你的手机变得不那么稳定,实在有点得不偿失。
2.9、减少开关机次数
手机在开机的时候会重新搜索网络信号,重新加载所有的软件,而这都会消耗掉额外的电量。
2.10、不要在信号弱的地方通话
信号越弱,手机就会将天线的功率增加到越强,这不仅会增加手机的辐射,也会快速的消耗掉你的电池
2.11、不要使用自动任务管理器软件或者内存优化软件
很多用户感觉手机内存消耗比较大的时候,喜欢用内存优化软件杀死进程来释放内存,但是你有没有看的杀死的进程在后台又悄悄的开启了,对于Android手机来说很多在后台运行的软件并不会大量增加耗电量,如果使用任务管理软件把这些后台的软件杀光后反而会造成过多的重新载入时间,既浪费时间,又增加CPU的负担,当然也就增加了电池的消耗
2.12、关闭那些活跃在后台的程序
这一条并没有跟上面冲突,“活跃”的意思是指那些即便在后台,也会不断调用你的网络连接或者监视系统内存的软件,前者如QQ这样的即时通讯软件,后者就是在第2.11条中说过的自动任务管理软件
2.13、少装点桌面软件
安卓手机最大的优点之一就是桌面可以随意定制,例如ADW,Launcher Pro。不过对于使用HTC Sense、MIUI等这种深度定制系统的用户来说,即便你使用了这一类桌面软件,经过定制的桌面也会依然在后台运行,这无疑会增加我们手机的负担,降低速度并增加电量消耗,所以最好只选择一款自己习惯的软件。
2.14、不要使用动态桌面
动态桌面的确很炫,不过一直运行着一个那么炫的东西,当然要大量的电量支持
2.15、最好不要勾选程序的推送功能
实现推送功能说明程序一直在后台运行,要么客户端自己轮询查看服务器,要么服务器定时发送客户端数据,客户端来检测是否是新的信息,这不仅是耗电,而且也耗流量
2.16、不要常开WIFI
WIFI是好,不用消耗手机卡流量,但是它传输数据耗电
2.17、看视频,听音乐,玩游戏
当然这三样是用户主动的娱乐行为,不过它们确实耗电,音视频这东西要看到画面,不仅要在底层编解码还要渲染到手机上,所以最好找一款比较好的软件。
三、开发角度省电量
其实从用户角度省电量,同样也能反射到我们的app里面,当然这并不是简单的叠加的就行的。比如GPS,有些软件确实需要GPS来实现定位功能,当然我们也可以使用流量来定位,不过不如GPS准确,程序开启GPS后,如何去动态管理GPS,而不是仅仅用完了就放在这就行的。之前我在一家公司里面,涉及一个功能需要修改手机音量,我觉得最起码要有一个现场保护的功能,原来什么样那你就应该退出程序或者后台(不用这个功能的时候)还原回去,居然还遭到测试人员和其他平台开发人员的轰击,当时我就很纳闷,因为当时由于保护现场方法造成了一个bug,他们说这个做法是多余的,我之后默默改为这个bug也没有说什么了,我们做开发不仅仅是开发人员,同样也应该是一个资深的用户,说起规范,我看到测试人员给的bug,如果不是硬性问题,我首先会炮轰一遍,因为有些bug是测试人员的个人感觉,而他们给出的理由就是他们是测试人员是从用户的角度来看的,因为之前我也是做过测试的,所以只要遇到这样的问题,我也不会去争吵谁是用户,而是搜了一大堆同类功能的app,让他们对比,有时候争吵可能就是灵感的来源。
-----时间不早了,明天晚上继续讨论一下作为开发人员如何让我们app省电量 2014/1/7 0:39