vlambda博客
学习文章列表

让安卓保持流畅?方舟编译器是能帮大忙,可根本原因就不在技术上

众所周知,使用安卓的手机系统上,不管是系统的运行速度还是软件的运行效率,总是觉觉得不如IOS,而在很长一段时间以来,人们一直都把安卓软件以及系统的卡顿归结为安卓系统的运行逻辑以及本身程序编写的问题,渴望能够在技术层面解决这一困扰安卓阵营多年的顽疾,于是就有了华为的方舟编译器的诞生。



何为方舟编译器?

方舟是这个编译器的名字,而真正的重点在于编译器,编译器起到的作用,可以简单的理解为一个翻译机,计算机的语言种类是非常多的,比如C++,Pascal、c、java等等,而这些语言到了硬件层面上,要靠着自身的程序翻译成在各种硬件之间通用的语言,那就是基础的二进制1和0,也就是说,硬件设备最容易看懂的,就是简单的1和0,而方舟编译器的作用,就是从外部把这个程序全部转换成基础的二进制语言。


让安卓保持流畅?方舟编译器是能帮大忙,可根本原因就不在技术上



到底解决了什么问题?

相信稍有常识的人应该就知道,没有哪个程序员愿意用1010,1001,1110这样的代码来进行程序编写,他们更愿意使用更高效的高级语言形式,比如java,java拥有更好的跨平台能力,也让程序员们编写程序变得更加简单,但是问题是java语言的运行效率并不高,于是就想到了用c语言建立运行库,然后用java来调用,如果你不理解什么意思,只需要知道,我们手机上的app程序,是多种计算机语言混合来写的,需要设备自己进行翻译成二进制语言,

那么我打个比方,假如我去一个饭店吃饭,然后我向服务员说了这样一句话"I 원하다 comer торт."这时候服务员就会用大脑想哦这个客人说了好几种语言,又是翻字典又是问经理的最后在在的菜单上写下来"这个客人需要一份蛋糕",是不是这样很麻烦?其实程序也是一样,在程序运行中就会有大量的硬件资源浪费资源在编译各种语言中。而方舟编译器就是把各种语言混合而成的程序,通过一个外部编码器都直接翻译成是个硬件就能看懂的二进制编码。这样就接生了大量硬件资源,可以更加高效的运行程序了!

让安卓保持流畅?方舟编译器是能帮大忙,可根本原因就不在技术上



问题关键却不在技术上!

很多人反映啊,这个手机系统自己通过其他工具刷成标准版安卓,然后去安装各种国际版软件的时候,就会流畅的多啊!这就是因为国内软件夹带"私货"有点多!

很多人都经历过一个很费解的现象,比如我安装一个用来检测硬件的程序,然后发现软件的权限申请中赫然出现了,申请"通讯录"权限,我就像看看手机硬件,一个检测程序你调用我通讯录干嘛,然后取消这项同意发现,这软件说权限缺失,运行不了,没法子同意吧,用户也不知道他调用通讯录干嘛。

再有就是之前已经曝光的,比如启动某公司软件A,软件A在运行同时就会自动唤醒软件B,然后软件B又会自动唤醒软件C,这样一直下去,结果后台出现了一长串运行程序,严重拖慢了运行速度。

这些问题有些手机厂商已经着手解决了,但是处于厂商本身利益的原因,有些程序的问题也只能睁一只眼闭一只眼,稍微限制一下,只要不太过分就算了,而且不同厂商有不同的策略,也就是说根本无法解决安卓app上程序之间互相调用和乱用权限的问题。




而作为另一大操作系统ios来说,因为苹果对于第三方软件统一管理进入App Store,软件的设计有着诸多统一规定,哪怕不用编译器也能从根本上杜绝app各种乱象,给用户更好的体验。

其实这件事情安卓也在做,对了,就是Google store,因为国外很多应用程序都必须依靠谷歌服务框架来运行,所以谷歌对各大软件开发商就有了很强的约束性作用,而自身的谷歌商店对于软件的管理就已经开始学习苹果的方式,但是毕竟众所周知的原因,国内软件还是各个厂商各自为政,拥有各自的服务框架并建立符合自己利益的软件商店,进行符合自己利益的优化,用户的体验性还是被牺牲掉一部分。

所以要想彻底解决国内安卓阵营用户体验不如苹果,首先鸿蒙编译器是从程序编写本身,也就是从技术上解决了部分问题,至于软件像我所说的例如连锁启动的问题,这是一个偏向于商业利益的问题,最好的解决办法就是,国内的各大手机厂商,在一起开个会,建立起统一的国内app的一系列标准,让app变得更纯粹为了用户的使用体验而考虑。

看到这里很多人觉得,我这是异想天开,国内缺乏了谷歌这样的强力大佬那么谁来约束呢?的确这是个难题,不过建立统一的服务框架,和建立统一的软件商店才能从根本上优化用户的体验。


现今,我看不到这样一个契机,或许只有某个厂商摆脱了安卓后才能在某厂商的手机上真正能享受到如同ios一样舒适的用户体验吧!