华为鸿蒙方舟编译器对安卓软件生态有什么影响? 原创
要想知道“华为公布的方舟编译器到底对安卓软件生态会有多大影响?”得先清楚“全新黑科技——方舟编译器”是什么?
方舟编译器是什么?
啥是编译器?简单来说,就是不管编程怎么变,最终编程得到的可执行二进制程序都是CPU运行的。编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。编译器就是承上启下的中间层,连接着高级语言和机器语言,应用程序是否能够直接编译,决定了流畅度和稳定性,这就是Android 平台与iOS平台在体验上巨大差异的关键。
方舟编译器是华为自主研发的编译器平台,开发者们都知道编译器是连接人类世界和机器世界的桥梁,任何在手机上的程序都要经历软件开发的一个过程,软件开发使用的语言是易于程序员理解的高级语言,程序在手机上运行需要转换成可执行的机器码,这个转换的过程就是由编译器完成的。华为方舟编译器采取了静态编译器的方式,是首个取代安卓虚拟机模式的静态编译器。它采用全程执行机器码高效运行程序。架构进一步得到优化,可供开发者在开发环境一次性的将高级语言编译为机器码,手机安装应用程序后可全速运行程序,带来效率上的极大提升。
那方舟编译器好在哪里呢?
方舟编译器可以说是安卓系统性能的革命突破,未来支持多语言统一编译,大幅提升开发效率的一种模式,支持目前常见的C/C++、Java、JS、Kotlin等。方舟编译器的优势我归为5点:
安卓程序编译效果更好;
安卓程序安装速度更快;
安卓程序运行速度更快;
系统垃圾随用随清,对手机硬件的依赖降低;
省电!省电!省电!重要的事情说三遍!!
其实,华为最牛X之处在于它直接进入安卓的灵魂深处,从程序开发到打包好的apk。直接就是手机CPU可以理解的汇编指令,这就提升了效率。方舟编译器的四个技术亮点是:
1.首个多语言联合优化编译器,消除跨语言调用开销;
2.程序运行时无需依赖虚拟机,减少资源占用,高效的内存回收机制;
3.可针对不同应用灵活编译优化;
4.开发者学习和使用成本低。
那么,方舟编译器和现在Android所使用ART有什么区别?
要知道方舟编译器和安卓使用的APT有什么区别?那就得知道安卓生态中编译器的工作原理是怎么样的?
我们知道现在安卓的大多数应用是用Java语言编写的,CPU只能理解汇编指令,没有办法识别Java语言的虚拟机指令;为了CPU能运行Java语言编写的程序,一般用这两种方法:
1.解释执行,经过CPU->中间层->Java代码,简单来说就是一个非常低效的方法。
2.另一个就是直接把Java翻译成CPU能理解的机器语言。而在这过程又有两种方式:AOT编译和JIT编译。
现在的安卓采用的是解释执行+还算可以的JIT + AOT的综合模式,不过他没有摆脱这一个问题,就是应用在被打包成APK的时候,采用的依旧是Java代码。换句话说,在APK变成用户可应用的过程中,还经历了一个在Android系统内部的编译过程,这就是安卓走不过去的坎,也就是我上面提到的虚拟机。
我们可以看上图,方舟编译器缩短了安卓上应用运行的路径,意思就是在Android生态上实现iOS的LLVM编译器的机制,对比安卓的ART编译器实现对流畅度的提升!
华为推出方舟编译器,一方面是得益于华为自身深厚的技术和人才积累,华为打从EMUI就一直力图通过低层优化提升系统性能,也是华为坚持的结果;还有就是华为一直聚焦在技术创新上来提升用户的使用体验,一步一步深入优化操作系统。
华为公布的方舟编译器对于开发者们有什么影响和意义?
方舟编译器开源,社区开发者们可以通过框架源码学习了解方舟编译器,熟悉方舟编译器的构架思想,也可以参与到对编译器的优化贡献中。而且华为创建了自己的开源社区,同时引入很多大牛共同建设,这也是行业内的一件大事,对开发者们来说算是开启了一个新的时代!这对开发者来说具有非常大的价值和意义。
方舟编译器有望解决安卓传统诟病。
我们知道安卓问世到现在已经有13年了,但是安卓的诟病一直没得到解决。首先,这对安卓用户来说始终感觉低了iOS一点,并且手机用一段时间后会出现卡顿现象。其次,对开发者而言,安卓系统随着时间不断升级迭代,碎片化问题和机型越来越多,开发的效率和成本日渐增加!这对开发者来说就是有苦难言啊!从这次发布会我们知道华为方舟编译器有望解决安卓虚拟机存在的性能问题。可以说,方舟编译器的开源对华为手机、开发者和其他手机厂商来说,都是一次颠覆安卓传统“恶习”的革命,也是华为自主技术和开发者生态的再进一步。
华为方舟编译器为开发者打造优越的开发环境。
方舟编译器作为国内自主研发的编译运行系统,华为自然是会给予其丰富的技术支持,包括编译器、调试器、调优工具,而且通过支撑多语言、消除跨语言的调用开销,帮助开发者在选择编程语言时不用再纠结语言的性能问题。对多平台的支持,华为将帮助开发在未来的多端设备开发上,始终使用同一套编程平台,不用在不同的开发平台间来回切换。这也相当于为开发者打造了一个“五星级”的开发环境。还有就是开发者用方舟编译器也不用改变原来的编码习惯。开发者可以自行开发代码优化算法,也可以通过方舟编译器预置的算法进行代码优化。
总的来说,对于华为而言,方舟编译器开源只是一小步,不过,这对整个行业来说,是非常大的一步,也是对开源领域的强势引领。可以期待的是,以华为的实力和眼光、高度,华为势必还将持续拥抱开源,进而为全球亿万开发者进行更深入、更全面的赋能,最终引领一个自主技术创新大生态时代的全面到来。
如果你想学习鸿蒙应用开发的话,欢迎大家私聊我,带你入门鸿蒙应用开发!
——————
原创:老王丨鸿蒙hms开发者高级认证持证人!学习更多鸿蒙OS相关开发技术可以关注我的公众号:鸿蒙开发者老王