分享

底层:提升性能及续航的ART与Project Volta

 雨中图书馆AniS 2014-10-31

底层:默认的Android Runtime模式

  在Andorid Runtime模式在Andorid 4.4 Kitkat上出现的时候,笔者就曾经对这个新功能抱有很大的期望。因为Dalvik虚拟机一直被视为拖慢Android整体运行速度的罪魁祸首,即使是谷歌在Android 2.2时代引入了实时编译技术(JIT:Just in time)让速度提升了数倍,但安卓手机的整体效率仍然不如iOS系统。而ART模式就是谷歌试图从底层解决Android设备运行速度的产物。

伴随Android 4.4出现的ART模式
伴随Android 4.4出现的ART模式

 

什么是ART模式

  ART模式是谷歌在2013年11月8日发布Android 4.4 Kitkat是伴随其出现的新功能,主要解决的是Android系统的运行效率低下、卡顿的问题。

  在4.4之前Android版本采用的都是Dalvik虚拟机。与ART模式不同的地方在于Dalvik采用的是实时编译(JIT:Just in time),而ART采用的是预编译(AOT:ahead of time)。由于安卓程序对于手机而言,就像外文原著对于我们一样,不能够直接理解然后运行,需要经过翻译。实时编译的意思就类似于”同声传译“,这对于人员的素质要求较高(性能需求较高);而预编译则类似于”提前将这本书翻译成中文”(安装时间变长,占用空间变大),但是好处是你要阅读时可以直接阅读,这样就能够得到更快的运行速度。

 

  正是因为ART模式是采用的是“事先准备好”,而Dalvik则是“临时抱佛脚”,自然速度上会快一些。(阅读译文当然要比听同声传译来得更加轻松愉快)

  其次,ART模式之前有很多耗时的代码优化并不能在Dalvik的“临时抱佛脚”框架下做,否则就会影响程序的加载速度与运行速度,但这个限制在ART模式中是不存在的。因为ART模式就是“事先准备好代码”,安装时间长一点也没关系。(提前翻译就有时间做一些词语上的润色和修饰,甚至包括“意译”以让读者更容易读懂;而同声传译由于时间关系就只能原文直译了,自然没有“酝酿”的美感可言)。

  虽然ART模式有着种种的优点,但笔者后来发现:即便是原生搭载Android 4.4 Kitkat的机型,其运行模式默认项也依然是传统的Dalvik模式,并没有启用最新的ART模式。谷歌这样做可能是为了给开发者时间去适配新的运行机制,也可能是为了两种运行机制间的平滑过渡,不至于太影响应用体验。

Nexus5上ART模式与Dalvik模式对比
Nexus5上ART模式与Dalvik模式效率对比

  然而时隔一年,谷歌在Android 5.0上终于将ART模式设为了默认运行机制。这也表明:Android系统从5.0时代开始要正式告别Dalvik了。从发布会上俩看,ART对于系统效能的提升还是比较显著的,相信各位也应该十分期待。

底层:Project Volta电池续航改进计划

  除了“性能”上的提升之外,谷歌还对Android系统的另一个“老大难问题”做出了积极的应对,这就是Project Volta电池续航改进计划。其中最主要的就是开发了“更强大的电量消耗分析器”(Battery Historian)以及“更加智能的后台唤醒机制”(Job Scheduler)。

  Battery Historian是谷歌主要面对开发者设计的新功能,除了在底层加入了大量电量跟踪API之外,谷歌还开发了能将这些数据清晰展现出来的可视化图标,方便开发者能够更便捷、更深入得了解电量到底消耗在哪,以进行针对性的改进。

新的Battery Historian能够提供更深
新的Battery Historian能够提供更深入更多的电量分析数据

  而Job Scheduler就是实实在在降低功耗的措施了。从名字我们就能够看出这项新增API的意思,即"日程安排“,安排的就是你手机里一个一个的应用程序。谷歌在进行对安卓设备功耗的研究时发现,应用每被唤醒一秒钟,你的待机时间就会少两分钟。如果你的设备中装了许多应用(相信绝大多数人都超过十个吧),而这些应用的唤醒时间都交叉重复的话,就相当于手机一直处于高能耗状态。如果能够“对齐”这些应用的唤醒时间,从而减少App的唤醒次数,无形中自然就能省下许多电量了。

Job Scheduler API

  Job Scheduler除了能够对齐后台应用唤醒时间之外,也让App调用硬件的逻辑更加智能。比如当一个App需要进行数据更新时,开发人员可以指定当WIFI时就刷新,如果是移动网络就延后刷新,这样同样也能够省下一部分电量。总的来说,Job Scheduler等于给Android设备提供了一个更加智能的后台管理机制。(看上颇像一款省电应用“绿色守护”,而Job Scheduler API就可以称得上是系统内置加强版的“绿色守护”,还不需要你自己去设置)

Android L相较Android4.4续航提升
外媒ArsTechnica对Android 5.0测试版做的对比续航测试

  可能这样说大家不太清楚Project Volta到底有多少用,外媒ArsTechnica对Android 5.0测试版的这项功能进行了测试,测试设备为Nexus 5,实测续航时间提升了36%。看上去提升幅度是巨大的,而且这还只是测试版取得的成绩,那么正式版的提升会有多大呢?相信你们会和我一样期待。

另附:Android大版本更新年表

Android系统历代更迭表

总结

  经过数个大版本的更新,先天不足的Android已经慢慢追上了看似“完美”的iOS。我们虽然不知道谷歌所做的这些努力究竟在碎片化的市场中能够激起多少波澜,但是我们至少看到了Android在不断进步。或许有一天,机器人或许真有机会能咬上那只小苹果

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多