Android 7.0应用安装速度为什么那么快?

2020-04-04 07:40:21于海丽

去年三月份,Google发布了首个Android 7.0(Android Nougat)测试版,五月份发布正式版,虽然至今Android 7.0不足5%的市场占有率,足以让苹果笑掉大牙,但是随着三四月份新机扎堆发布,Android 7.0肯定会迎来一波爆发。或许你会问,Android 7.0有什么好的,我现在用6.0稳定得很呢,倒还真有一个能让你有真切感受的变化,用我们小超哥的话讲就是“震惊!Android 7.0应用安装速度飙升666%!”,你还别不信,先看看小超哥做的一个与Android 6.0的对比视频:

Android 7.0与Android 6.0应用安装速度对比

视频中用的测试手机为Nexus 5X,在Android 6.0中,安装同一版本的手机淘宝用时28秒,升级到Android 7.0后,安装手机淘宝仅用时14秒,请问你震惊了吗?

下次有基友或妹子问你Android 7.0有什么好的时候,你完全可以大胆告诉他们,Android 7.0的软件安装速度快了一倍啦~~~~不信你上超能网看看对比视频,万一妹子惊呆了,追问一句,怎么会快这么多呢,你肯定不能回答不知道吧,所以我军从不打无准备之仗,要做一个脱离低级趣味一个有益于人民一个BIGGER满满的人,你必须往下看。

Android 4.4时的JIT解决方案

故事还得回到几年前,还是Android 4.4的时代,那时Android还是用的Dalvik虚拟机,配合的是JIT编译器(Just In Time,即时编译器),其实Google在Android 2.2时就添加了JIT。当APP运行时,JIT编译器就会对新类进行编译,经过编译后的代码,会被优化成相当精简的原生型指令码,这样在下次执行到相同逻辑的时候,速度就会更快。

JIT是在运行时编译,优缺点很明显,安装速度快占用存储空间小,主要问题是在运行时编译开销大,容易造成卡顿,所以在这之后,Google果断壮士断腕,在Android 5.0和Android 6.0中放弃了Dalvik转投ART(Android Runtime)虚拟机怀抱,编译策略也弃JIT改用AOT(Ahead Of Time)方案。

Android 6.0采用了AOT编译方案

ART的策略与Dalvik不同,应用在第一次安装的时候,字节码就会预先编译成原生型指令码,使其成为真正的本地应用。以后运行APP时,不需要再进行编译,启动速度和运行速度都提高了,也就不那么卡顿了。

但是这种方案也有明显缺点,就是在安装中要全面预编译,安装时间难免长,而且会消耗掉更多的存储空间,根据我们的测试,手机淘宝这个APP在Android 6.0系统中应用存储大小为171MB,在Android 4.4系统中占用为154MB,相当于占用空间多了10%。截图就不贴了,有兴趣的朋友可找小超哥(微信9501417)索取。

在Android 7.0中,Google进一步改进了编译策略,这次他直接来了个Hybrid Mode,也就是AOT + JIT混合模式,糅合了两者的优点: