运行方舟编译器编译出来的APP,手机上必须预置方舟编译器吗?其他手机运行会变快吗?

caiyi74362036


方舟编译器是提供给软件开发者使用的,和我们用户没有直接关系,只有等待第三方APP开发者使用方舟编译器重新编译后,我们再进行下载就可以提升APP的流畅度,并且只要是安卓机都可以进行体验,这是一项非常利民的工程。



华为方舟编译器简介

方舟编译器是华为历时五年,经过数百人的专家团队进行开发的一款编译工具,主要针对安卓系统边解释边执行的低效处理方式进行了改进。


按照官方的说法,现有的安卓系统经过多次的技术改进,始终绕不过虚拟机这道坎,虚拟机中本身自带了编译器和解释器两个翻译官,作用是将开发者使用的高级语言转换成机器码,当我们在打开APP过程中,解释器相当于实时翻译,说一句翻译一句,而编译器则是结合上下内容翻译一大段,这样就使整个过程呈现出断断续续的状态,卡顿也就来源于此。

方舟编译器的运行机制和以上不同,它彻底绕过了虚拟机VM,使APP在开发阶段就被提前翻译成了机器码并打包,我们再下载使用时无需再经过虚拟机进行翻译,而是全程执行机器代码,运行效率得到大幅提升。据官方介绍,在将华为EMUI系统组件进行重新编译后就提升了24%的流畅度,响应速度提升了44%,而第三方软件的流畅度可以提高60%。



目前华为EMUI 9.1中的系统组件就是被方舟重新编译过的,另外第三方软件中也只有微博极速版是重新编译后的。官方宣称将会在今年11月份正式向开发者开源,未来不分品牌,只要是安卓机都可以体验到方舟编译器为我们带来的流畅体验。


电子维修


目前方舟只适配麒麟芯片,经方舟编译的APP目前只支持华为手机,而且只支持经底层优化跳过安卓虚拟机的EMUI。但方舟是开源的,所有的手机厂家都可以基于方舟适配自己的手机芯片。

但这有个问题,安卓的兼容性变差了,碎片化更加严重,因为即使都是高通芯片,小米OV适配的编译器也许都不一样,那么以后就会出现小米OV不同版本的微信,严重割裂安卓市场。解决方法只有统一方舟编译器,适配所有手机芯片。之所以谷歌不干掉虚拟机,也是因为直接编译对作为一个整体的安卓一点好处没有,只是对华为三星这些大厂商有好处。


心帆远影


    采用华为方舟编译器编译之后的APP,据说运行流畅度可以媲美IOS,改善了安卓系统内存回收机制,彻底告别了“卡顿”。

    用户手机不需要安装方舟编译器,只需要软件编写者将APP源代码通过方舟编译器编译形成APK文件就行。那这个方舟编译器到底是什么黑科技呢,下文具体说一说。


    方舟编译器

    先说一说什么是编译器,学过编程的人都知道,APP是通过高级语言比如JAVA编写的,需要转换成机器能够认识的语言,而编译器就担任了这个角色,将高级编程语言写的源代码翻译成机器认识的二进制代码。


    安卓手机采用了JAVA虚拟机的形式,所有的APP需要在虚拟机上边解释,边运行,所以系统资源占用比较大,因此对于安卓手机来说,运行内存越大越好,目前8G的运行内存已经成为主流。

    华为的方舟编译器,程序员完成APP源代码编写之后,经过方舟编译器编译,直接编译为在安卓系统可以运行的代码,实现静态编译,不需要JAVA虚拟机,同时改进了内存回收机制,随时回收内存,恶如不是将垃圾堆在一起回收。采用华为的方舟编译器,有可能告别安卓手机大内存的时代。


    方舟编译器的优势

    相比目前普遍在JAVA虚拟机上运行APP,经过华为方舟编译器编译的应用有以下优势:

    1、应用程序直接实现静态编译,不需要运行在JAVA虚拟机上。

    2、优化了内存回收机制,随时回收内存,而不是像JAVA虚拟机一样累积之后回收。

    3、方舟编译器将开源,根据华为官方公布的日程,将于2019年11月,实现方舟编译器的开源,促进方舟编译器更好的发展。


    总之,方舟编译器刚刚推出不久,是否能够得到大规模的推广和普及,现在还很难说,毕竟应用开发商和手机厂商有自己的考虑。

如果觉得对你有帮助,可以多多点赞哦,也可以随手点个关注哦,谢谢。

Geek视界


题主其实对华为方舟编译器有些误解。方舟编译器能加快安卓应用的安装、启动和运行速度,就算手机没有预置方舟编译器,APP还是可以正常运行,不存在被编译出来的APP。

说明这个问题之前,我们先来看看究竟什么是编译器。相信懂点编程的人都知道,计算机语言和我们的言语不同,如果我们想写出一段程序,必须用计算机能看懂的言语进行编程,然后计算机才会按照指令去运行,这个过程我们叫做编译。这就好比我们要和外国人交流,是先把我们想要表达的意思翻译成外语,然后再把外国人的意思翻译成中文。



这对于安卓系统是一个道理。与IOS系统不同,安卓系统是基于Java编程语言开发的。虽然Java在开发时更易开发,但手机不能直接识别。目前谷歌给出的最新解决方案是利用手机上的虚拟机进行同步编译,这样无疑会增加手机的负担,使得系统在运行过程中变卡顿,尤其是当后台运行程序变多时。

而华为方舟编译器是业内第一款支持多语言同时编译的编译器,通俗易懂的说,华为方舟编译器能直接将系统底层的Java语言翻译成机器语言,并且该翻译器是在系统代码上完成的,并不会加重对手机的负担。目前绝大部分安卓应用在开发时都不会使用单一语言,举个例子,某APP的代码使用了C语言和Java语言,当这个程序运行时,安卓系统要同时翻译这两种语言,然后再把两者的结果相互混合。在有了方舟编译器后,编译器能同时翻译两种言语,以此来提高运行效率。


不知道各位看官们是如何看待华为方舟编译器的呢?欢迎在下方评论留言,让更多人看到您的观点,谢谢!


科飞猫科技公社


用户的手机上并不需要预置方舟编译器,因为这个方舟编译器是给应用开发商用的,跟用户唯一的联系就是,可以让用户的手机运行更加流畅,所以他并不会对用户的使用习惯造成什么影响,我们还是正常下载-安装-使用各种APP即可。

如果想要了解其中的原因,这就跟方舟编译器的运行原理有很大的关系了,这里我们简单扼要的介绍一下:

根据华为的介绍,方舟编译器是华为投入数百人的专家团队,历时五年开发的一款编译工具,主要针对安卓系统边解释边执行的低效处理方式进行了优化,因为我们目前所使用的安卓系统,经过了这么多次技术改进却始终绕不过虚拟机这道坎,虚拟机中本身自带了编译器和解释器,作用是将开发者使用的高级语言转换成机器码,当我们在使用APP的时候,编译器通常是结合上下内容翻译一大段,这样就使整个过程呈现出断断续续的状态,卡顿也就来源于此。

针对这种情况,方舟编译器对其运行逻辑进行了优化,它绕过了虚拟机VM,使APP在开发阶段就被提前翻译成了机器码并打包,我们再下载使用时无需再经过虚拟机进行翻译,而是全程执行机器代码,运行效率得到大幅提升,最终凭借这款编译器华为EMUI系统提升了24%的流畅度,响应速度提升了44%,而第三方软件的流畅度可以提高60%。

当然这样解释起来看似很简单,但是在技术时间方面其实是非常复杂的,不过方舟编译器也有一个问题,那就是目前只适配麒麟芯片,而且只支持经底层优化跳过安卓虚拟机的EMUI,但毕竟这款编译器是开源的,其他手机厂家都可以基于方舟适配自己的手机芯片,从用户体验上来讲自然是好事,但小米、OV他们是否会低下头使用华为推出的技术,未来又该如何向用户解释,这一点对于爱面子的国产手机厂商来讲也是挺为难的。


木石心志


感谢您的阅读!

国产手机其他系统如果使用方舟编译器,会不会有一种认输的感觉呢?!

你肯定和我一样,对于华为方舟编译器的原理还是一知半解。甚至于,我们会有这样的疑惑?到底方舟编译器能不能运用在所有安卓手机上,比如MIUI系统,或者Flyme系统,是不是也能使用方舟编译器呢?

余承东直接在微博上,发布了一分钟了解方舟编译器视频,在里面这样解释了方舟编译器:

编译器:将一种语言(高级语言)编译成可执行的机器码!


方舟编译器:将在APK打包中,直接讲java代码编译成机器码,这样手机安装后,可以直接执行!

你是否已经发现:目前的安卓手机,在安装运行APK后,它还需要经历了将软件经过解释器进行解释,并且透过JIT逐级编译执行!而如今的方舟编译器,却可以直接在程序开发阶段,直接静态编译,让我们的APK直接打包后,就能执行了!所以,能够让华为的EMUI9.1更为流畅!

现在我们了解两个问题:

  • 国产手机系统会经过方舟编译器编译吗?虽然EMUI9.1对系统服务组件进行了编译,系统流畅度和响应速度提升。但是,国产的手机系统,是不会使用华为方舟编译器来进行系统编译,如果使用了方舟进行系统编译,这似乎间接的说明了自己的系统不如华为系统。
  • App编译,APP是第三方通过方舟编译器编译,这需要等开源,我觉得软件厂商可能会使用方舟编译器编译。即使国产手机其他系统不进行方舟编译器编译,但是只要APP进行了编译,就是我们打开应用软件的速度会提升,这也是一个好事。

不过,Flyme或者MIUI这样的国产系统是不会使用方舟编译器的,这和它们发展相悖,毕竟它们可以自己研发这方面技术,使用华为,实际上有一种认输的感觉。因此,它们应该,不,肯定不会使用!


LeoGo科技


方舟编译器开源的目的主要是培养系统生态,是为了在外国公司不提供系统并掐断系统生态的现实需要情况下做出的生死存亡之举。而且,该编译器打破手机和PC之间的人为垄断屏障,其程序编译后两者都可以运行。

华为那么多系统研发人员绝不可能只研发手机系统,并且按照最坏角度考虑,其编译后的程序运行对现有程序是有一定兼容,但防止以后的各种权益之争,希望的是使用无争论的方舟编译器编译程序,这其实在全方位保护各类个人或公司的互联网著作知识产权。华为已经在这样做了。

对于华为这样做,外国公司特别美国跨国公司是恨到底的,但又不得不合作,并经由财团控制美国政府对华为进行打压。所以,华为正处于生死存亡的关头之说并不是假的。

其实到现在,中国政府完全要求美国政府提供所谓证据。其实美国政府得到了侵入华为服务器获得的代码但不符合已有编译原理,打压华为要扼制华为方舟编译器系统开发,却不能提供相关证据。现在华为堂堂正正推出方舟编译器,提供美国政府获取相关代码入侵华为服务器信息给一些西方国家。下一步,将在法庭诉讼中提供不利美国政府及美国跨国公司的更多证据。


另眼角度


白话科普方舟编译器是什么?

可以把[方舟编译器]理解成给软件开发工程师用的工具,跟最终的软件用户无关。比如:工程师用DW写程序开发网站,但是网站用户浏览网页不需要用DW;设计工程师要用PS设计图片,但是浏览图片的用户不必用PS。

用方舟编译器编译过的APP和安卓系统为什么可以让手机变快?

  • 以前安卓手机的工作流程:人类下达操作指令 > VM(编译器和解释器)翻译成机器码 > 机器执行指令。
  • 方舟编译器编译后的手机工作流程:人类下达指令 > 机器执行。绕过了VM过程,把以前发出指令后才进行的编译工作,在APP开发阶段就提前编译好了。
  • 因为节省了中间进行的编译时间,所以使用方舟编译器编译过的APP和系统会变快。

综上结论:

  • 手机不需预置方舟编译器,因为他是一个给程序员开发APP程序的工具而已。

  • 使用方舟编译器编译的APP,不管装在哪个手机上,都会变快。


手机功能科普


如果方舟编译器真能如华为所说带来这么大的流畅度提升,其他厂商很有可能会跟进。原因很简单,

1:如果不跟进,其他厂商的系统流畅度会不如华为,与其他厂商系统发展不利。

2:其他厂商很难再研发跟华为匹敌的编译器(连华为这种大厂都花了9年的时间研发,时间不予许)。

3:方舟编译器开源啊,其他厂商很容易基于方舟编译器在开发出新的编译器(例如开源的linux,有很多系统也是基于它的,如安卓等。),这样多少能撇开点跟华为的关系。


H2o


最好别用,不安全


分享到:


相關文章: