在之前的华为P30中国发布会上,华为曾表示通过方舟编译器可实现系统操作流畅度提升24%,系统响应提升44%,第三方应用操作流畅度提升60%。其可以说是华为P30系列体验背后的最大功臣。
方舟编译器作为全新的系统及应用的编译和运行机制,从 DNA 层面对安卓进行了改造,打破了性能和功耗的的跷跷板,解决了安卓应用边解释边运行的低效问题,让手机能直接听懂“高级语言”,可以说是近几年来安卓阵营最大的根本性革新。
4月25日下午,华为在北京举行了“华为有技术 EMUI媒体沙龙”活动。在这次活动上,华为首次站在官方的角度,详细解释了P30系列在EMUI 9.1系统中所使用的方舟编译器的应用原理。(推荐学习:PHP视频教程)
首先我们要了解一下什么是编译器。简单来说,编译器就是将我们能够理解的语言翻译为计算机能够理解的以0和1构成的语言。
就像我们和外国人交流一样,语言不同是很难沟通的,但只要将其中一种语言翻译成对方能听得懂的语言,就能交流成功了。
华为方舟编译器最大的特点在于,它是业内第一款支持多语言联合优化的编译器,也就是说无论是C/C++还是Java都支持。
因此面对采用混合语言开发的安卓应用,方舟编译器可以在开发环境中编译成统一的流程,通过统一的程序表示和优化来执行,效率更高。
也就是说,现有安卓的运行机制就像是两个人各自准备任务,最后将他们的准备的结果综合在一起执行。而方舟编译器则是让这两个人一起准备,之后再一同执行任务。
安卓系统本身的编译是要通过ART虚拟机运行,因此系统资源占用较大。而方舟编译器则是在开发的时候就已经完成了静态编译,因此不需要依赖手机本身编译。
打个比方,以开卷考试为例,一个学生是在考试之前就预习好了可能会考到的知识点,做好了对应内容的标记,拿到卷子就迅速动笔;而另一个学生则是靠“临场发挥”,在考场上临时翻阅资料,占用大量考试时间。
同时,方舟编译器还提供了更高效的内存回收机制。由于不需要经过虚拟机,应用在运行过程中不需要暂停,同时随时回收内存,而不是将垃圾堆在一起回收。
方舟编译器还有一大核心功能就是对代码进行优化。所谓代码优化,就是为程序带来更高的性能。
举个很简单的例子,就是同一个人考两次试,怎么才能让第二次比第一次考的更好,其实就是要对复习进行优化。
前面说到,现有安卓系统的动态编译是利用ART虚拟机在机器上执行,而方舟编译器则是在开发的时候进行静态编译。
因此,前者只能采用简单的优化算法,而后者可以突破手机机能限制,根据不同的应用采用不同的编译和优化算法。
最后,华为方舟编译器还有一大亮点是学习和使用成本低。由于在APP发布之前的打包阶段就已经集成了编译环境,因此对于开发者来说,整个流程其实是被简化了,使用下来更方便。
华为表示,方舟编译器将从2019年开始全面开源。这也就是说无论是手机厂商,还是应用开发者都可以使用方舟编译器来优化应用的性能。
总的来说,通过华为方舟编译器编译应用相比现有安卓的优势主要在于:
1、释放机器编译压力,在开发时完成应用的静态编译,不经过ART虚拟机。
2、采用不同类型的应用优化方案,让应用运行效果达到最优。
3、提供更有效的内存回收机制,提升系统流畅度。
4、简化编译流程,降低开发者学习和使用成本。
根据华为官方公布的日程,方舟编译器将于2019年8月的华为终端开发者大会上开源编译框架代码,并于2019年11月的绿盟开发者大会上公布完整的方舟编译器代码。
更多PHP相关技术文章,请访问PHP图文教程栏目进行学习!