安卓4.4 KitKat号称最少只需512MB系统内存即可流畅运行,某种程度上却是也做到了,相比之前的多次空口许诺着实令人惊喜,那么,Google是如何做到的呢?说来很有趣。
发展至今,安卓系统在功能特性上已经很成熟了,Google也开始在4.x时代转向其他方面。Jelly Bean 4.1的时候,Google提出了“黄油工程”(Project Butter),目的是让安卓系统速度更快、更加可靠、减少崩溃。
完成这一阶段性目标后,Google又提出了新的“苗条工程”(Project Svelte),力图减少安卓的内存占用率,保证任何厂商的手机只要有512MB内存就能执行任何功能特性,而不必局限在古老的Gingerbread 2.3系统,最终成果就是KitKat 4.4。
安卓首席工程师Dave Burke开玩笑地说:“我首先做的工作是‘黄油工程’,让系统更加流畅。问题是,黄油是有重量的。接下来,‘苗条工程’就是要减肥。所以呢,迄今为止我对安卓的贡献基本上是零。”
那么,这个减法如何做到的呢?还得感谢Nexus 4。
Burke透露说:“‘苗条工程’的基本目标就是将内存需求降低到512MB。我们如何做到的呢?就是拿一部Nexus 4,让它运行在512MB上(原本是2GB)。”
接下来就是让KitKat运行在更低的分辨率,以及两个处理器核心上。为了让工程师们有更加身临其境的体验,他们都被迫使用精简版的Nexus 4,内存、分辨率、处理器核心和频率都被大大降低。
Burke说:“我们选择了qHD分辨率,也就是960×540,因为这是入门级智能手机的甜点。我们将处理器核心从四个降到两个。我们降低了运行频率,以及诸如此类的东西。这么说吧,我们一帮人都用着残废的手机。这很痛苦。”
这时候,Google的目标有四个:
1、精简系统体积。
2、降低Google Experience设备(也就是Nexus系列)上应用的内存占用。
3、修正内存较少时的应用交互、崩溃。
4、更好地监测应用的运行状态,使开发者可以更好地掌控应用的内存占用。——这被称为“ProcStats”(进程状态),是开发模式中的一个功能。
前两个就是借助那部残废版的Nexus 4完成的,而后两个让安卓可以更好地监视、处理应用的内存使用,比如一旦发现谁长时间使用大量内存,系统就会自动关闭它。
最终,安卓4.4实现了瘦身,可以在低配置平台上运行得更流畅,而且不但不会损失功能特性,还增加了不少新东西。
当然了,要注意第二条的前提,那就是仅限Nexus设备。换句话说,对于第三方安卓设备,Google仍旧是基本上无能为力的,特别是那些预装了大量应用的,安卓自己再怎么努力都是白费。