华为方舟编译器,你是不是太过分了?

Android 7.0之后,谷歌也意识到程序占用空间大,启动慢。我该怎么办?谷歌发现人们不能用一个程序使用所有的功能。那么只编译一些常用的有效率吗?所以这个时候其实就是把JIT拉回Android,安装的时候不用全部编译。直接安装就行了,当然快。这其实就是中间层、JIT、AOT走到一起,根据用户的习惯,将其常用程序的常用功能代码解释存储,用户可以快速重用。

Android 7.0之后,谷歌做的就是优化。8.0系统是解释器,提高了“冷码”的解释速度。最新的10.0(Android Q)系统,即使在安装的时候,也会提前知道用户常用的这个程序是什么,安装时间稍微长一点,但是热代码已经解释了,进一步提高了速度。

在Ark编译器中,编译后的APK会先转换成机器码,再用静态编译的方式安装。这其实就是AOT,不需要麻烦的虚拟机来提高运行速度和效率。而且作为开发者,你还可以根据不同的程序特点,选择不同的编译优化方案,不像安卓官方方式使用的统一虚拟机方案。

现在安卓手机的一大特点就是内存越来越大,6GB是老人机的配置。这不仅是因为程序大,还因为Android程序运行产生的垃圾。清理垃圾呢?你需要暂停节目,你就暂停,也就是所谓的“卡”。华为方舟编译器利用程序多线程运行的特点。比如你现在用的“中关村在线”APP,用的是两个线程AB。在华为的P30手机中,线程A在运行时,B在清理垃圾,然后线程A在清理垃圾,而线程B在运行时,程序不间断运行,垃圾不停止,一致且节省系统资源。