苹果在 WWDC 刚发布的 iOS 9 提供了一个新的“节能模式”,通过暂停后台任务,这个节能模式能帮设备最多三个小时的使用时间,例如当设备在面朝下放置的时候,即使通知到达,屏幕也不会被点亮,毕竟其实屏幕是耗电的最大元凶。
苹果对与移动设备(Macbook)或者手持设备(iPhone)的定义一开始就非常清晰,对于它们的续航时间的保证在产品定义的阶段就有了很高权重的考量。所以当 Windows PC 的笔记本电脑普遍续航还只有三个小时左右的时候,Macbook 的续航就已经到了当时惊人的6-7个小时,当 PC 终于提高了一些到了4-6个小时之后,Macbook Air 续航就已经能达到12个小时。
提升设备续航无非开源与节流
开源主要是硬件方面的工作,在现阶段电池技术已经到瓶颈的阶段,最直观的解决方案无非是增加电池容量,也就是增大电池体积,既而极大地压缩主板空间,这个在 Macbook 与 iPhone 上都有十足的体现。
而硬件上的节流在一开始苹果其实并没有太多的办法,无非就是选择更低功耗的 CPU 与其他元器件,但是在 iPhone 4 上的 A4 芯片 iMac Retina 显示屏的自主研发,都从侧面显示了苹果在硬件上的节流的决心。
苹果在软件方面的节流更是不遗余力,这也是苹果相比于 Windows、Android 软硬结合的优势。
决定手机待机时长的其中一个最重要的因素就是对后台任务的处理与限制
最基本来说,作为一台智能手机,iPhone 在一开始就不提供后台任务,甚至系统演化至今,iPhone 的后台任务都不是桌面系统严格意义上的多任务,在 iOS 7 之前,苹果只对音乐、导航等场景提供完整的后台服务(以至于像优酷之类的后台视频下载任务,都会偷偷地在背后放一段静音的音乐);在 iOS 7以后,对应用程序来说,才有了一定的后台任务空间(例如在后台做少量的计算、下载少量的数据),而从系统层面看,为了保证在这些后台任务下,系统依然能够节省电量,苹果在系统层面也做了十分细节的优化,例如:
在, iOS 7 之前,如果你还有部分未完成的任务,iOS 系统会在你完成之前其实还是属于活跃状态,但是在 iOS 7以后,iPhone 能在已经被其他工作唤醒的情况下,再开始本应完成的任务;就例如说你把一个 App 关闭了,但是你还得计算一些数据,这些计算在你锁闭 iPhone 不久就会被终止,但是如果你收到了一封邮件推送,邮件推送把系统给激活以后,你的这个计算任务又会随着系统的激活而激活,从而让任务有规划地集中执行。
还有一个例子就是苹果的推送机制(APNS)。苹果在开放开发 API 的伊始就为应用提供了 APNS 的推送机制,让所有的应用共用一个推送的通道,既节省了在待机时间内,CPU的损耗与网络交互,也提高了推送的稳定性与及时性(推送消息即使是在 GPRS 网络状况下也能稳定到达);而彼时的 Android 推送开发,还需要每个应用起一个后台进程去监听推送消息,即使后来无论是 Google 还是百度、腾讯都提供了相对来说统一的推送接口,但是 Android 的后台依旧有很多各种各样的进程在一直计算、监听网络。
这类省电技术在 OS X 上也有类似应用。2013 年的 WWDC 在 OS X Mavericks 上大大地提高了 Macbook 的续航时间,主要有技术有三点:首先,是内存压缩技术,OS X 会把最不常用的内存压缩到只有平常一半大小,但是在用户请求的时候又释放出来,这也是为何即使 Macbook Air 只有 4GB 内存,操作体验也依然流畅。其次是 应用睡眠(App Nap),苹果将窗口不在前台展示的应用完全暂停,其实是把 iOS 的单页面应用特性移植到了 OS X 上。之前的 Safari 即使是在后台,也有 15% 的 CPU 占用率,所以这项功能对与节能还是十分可观的。最后,与 iOS 类似,OS X 加入了一个叫时间合并的技术(Timer Coalescing),平是,许多应用与后台进程都在用不同的定时器在触发功能,而项技术则是刚好吧所有的任务同时执行,如图:
在增加设备续航时间方面,所以其实苹果在这方面可谓为用户操碎了心。相对于 Android 很多最后的结果其实可能只是产品定义的不同导致的两个方向不一样,就譬如是否允许后台进程这样的技术决策,Google 肯定考虑更多的是技术能实现的完整度,而苹果考量的更多的是用户体验,整体的孰优孰劣其实并无意义,有意义的是什么呢?是像高中老师教导的那样:要揣摩出题人的意图。
作者新浪微博:李乐佳
本文转载请注明来源:http://www.leiphone.com/news/201506/4hdjT1AwYgbSjLVy.html