正文内容 评论(0)
三、 对比三大系统 解析Android为啥如此耗电
微博上曾热传一个笑话:公交车边堵边开着,乘客们都低头摆弄手机。过了几站,一部分乘客抬起头满目惆怅地望着窗外,手机没电了,他们用安卓机;又过几站,又一批乘客抬起头满目惆怅地望着窗外,手机也没电了,他们用iPhone;再过几站,第三批乘客抬起头满目惆怅地望着窗外,猜:他们用什么手机?答:是安卓第二块电池没电了!
可能情况也没这么夸张,不过安卓手机费电这是不争的事实,许多人的安卓手机一直连着充电器,也为某个时间找不到充电接口而焦虑。
一直以来,Android设备的流畅度和续航时间都不太给力,明显低于同配置的iOS设备和WP8设备。随着硬件配置的提升,Android在流畅度上已经不落下风,但续航时间却没有质的突破。iPhone5的电池容量只有1440mAh,可以正常使用一天,而Android手机电池容量普遍在2000mAh、甚至3000mAh以上,但其使用时间却没有比iPhone长多少。究其原因,不能不提及三个系统的开发语言和后台机制,下面我们来一一解析。
1、 三大移动系统之开发语言
首先,iOS和WP8的系统开发语言分别是Objective-C和C#,两者均脱胎于C语言,增加了面向对象,代码效率上也接近C语言;而Android的开发语言是Java,最大的优点是跨平台性,但在上层软件和底层硬件之间需搭建一个Java虚拟机,效率上不如C语言,并且需要更大的内存。从某种程度上可以说,Android系统耗电多是先天性的,对于这方面,我们是无能为力的。
2、 三大移动系统之后台机制
在开发语言上我们无能为力,值得我们大刀阔斧改造的正是后台机制,说到后台,就涉及到“服务”和“进程”的概念,我们不是系统架构师,不必了解的太过详细,下面笔者就浅显的介绍一下三大移动系统的后台机制,对于了解Android系统为何耗电严重来说,完全够用了。
iOS系统
我们知道,iOS的后台是伪多任务后台,在iPhone 或iPad上,苹果提供了统一的通知中心。应用软件不能直接向用户手机推送消息,必须使用苹果统一的通知中心。这样只需一个专门的后台服务就可包揽全部的推送任务,这种模式可谓是极其苛刻的,可以将省电做到极致,但其也有缺点,一些即时消息软件会出现接受消息不及时的现象。
WP8系统
WP8的后台则有两套方案供应用选择,一种是“Periodic Task”(周期任务),适用于占用资源、数据较少但需定时运行的任务;另一种是“Resource Intensive Task”(资源集中任务),适用于占用资源、数据较大,运行时间有宽容度的任务。微软对这两种方案也有严格的规范,比如第二种模式只能在电量充足和连接Wi-Fi时才能使用,具体就不说了,反正知道WP8系统后台限制也非常严格、节电效果也非常优秀就行啦。
Android系统
而对于Android的后台,相比IOS和WP8的封闭,Android是完全开放的,其后台如同一个跑马场,天高任鸟飞。还因为大家都懂得的原因,国内Android手机很少使用Google的消息推送机制。于是各个安卓应用开发者便自行其是,想怎么连接就怎么连接,想隔多久连接就隔多久连接,根本没有为用户的电池续航能力考虑。并且这些不必要后台运行的服务,无疑会拖慢系统速度,消耗手机内存 ,同时浪费手机流量。
分析表明,Android应用唤醒周期在5分钟一下的占到13%,这样的应用在用户手机中应该不止一个。这样的话,有的程序刚刚休眠,就可能被别的程序唤醒,将Android后台比作马蜂窝也不为过。
还有极端的情况,有些Android应用会因程序BUG或资源不足,导致获取CPU资源后不释放,导致CPU持续被占用而严重耗电,大家有时见到的程序未响应就是这样产生的。
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...