社会热点

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

电脑版   2020-11-26 11:22  

运行方舟编译器编译出来的APP,手机上必须预置方舟编译器吗?其他手机运行会变快吗?:采用华为方舟编译器编译之后的APP,据说运行流畅度可以媲美IOS,改善了安卓

1

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

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


    方舟编译器

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


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

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


    方舟编译器的优势

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

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

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

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


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

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

2

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

华为方舟编译器简介

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

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

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

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

3

运行方舟编译器编译出来的APP,手机无须预置编译器

方舟编译器是提供给开发者使用的,普通用户无需关注。在数字世界里,CPU只认识"0"和“1”,CPU所执行的指令以及处理的数据都是由"0"和“1”组成。如果我们编程的时候也用"0"和“1”来进行,那么效率是极低的,可读性也极差,操作起来难度也相当高。最开始的时候我们用汇编语言来编程,每一条指令和数据都可以编译成不同的"0"和“1”组合。虽然汇编语言可以用于编程,但随着各种程序APP功能的不断复杂,汇编语言已经不能满足我们编程的需求了。所以“C”,“C++”,“JAVA”,“Python”,“GO”,"SWIFT"等等各种高级语言就应运而生了。高级语言大大提升了我们编程的效率,也有非常好的可读性。高级语言编写好的程序通过编译器编译成CPU能够识别的机器代码就可以了。

手机运行APP为什么不用预置编译器?

APP需要在操作系统内运行。运行IOS系统的苹果手机,需要安装适配ISO的APP;运行安卓系统的手机,需要安装适配安卓的APP ;运行鸿蒙系统的手机,当然就要安装适配鸿蒙系统的APP了。编译器把开发者开发出来的程序编译为可以安装在操作系统的的APP,所以编译好的APP就无须预置编译器了。

方舟编译器是什么?

方舟编译器是华为研发的一个编程平台,它可以支持多种语言,多种芯片平台。方舟编译器以开源的方式发布,众多开发者可以对方舟编译不断的优化。据华为发布的信息,方舟编译器编译出来的APP运行效率会更高。

华为发布的"麒麟系列"是用于移动智能设备的SoC芯片;华为发布的“鸿蒙系统"是一款面外未来的操作系统。芯片SoC平台有了,操作系统有了,当然不能缺少用于连接芯片与操作系统的方舟编译器了。

华为为什么要发布方舟编译器?

目前IOS和安卓基本上瓜分完移动设备操作系统份额。没有各种APP的支持,操作系统就没有吸引力了。不能安装微信,不能安装支付宝的智能手机,你会买吗?华为要推广鸿蒙系统,必须吸引开发者构建生态。方舟编译可以直接编译基于安卓开发的APP,编译出来的APP可以运行在安卓和鸿蒙系统,运行效率更高。通过这样一波操作,华为就可以更容易的吸引开发者,降低构建应用生态的难度!

欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习

记得点赞和评论哦!非常感谢!

4

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

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

5

目前有很多人对方舟编译器的理解上还存在误区,认为编译是运行了手机上的。主要是长久以来“方舟编译器能大幅提升系统及App运行速度”这样类似消息很容易让非技术领域的人们产生误解,从字面意思看起来好像方舟编译器是用在手机上的,因此,很多人都期待华为什么时候发布带有方舟编译器的手机。

方舟编译器不是给手机用的!!

用户不能在手机上使用方舟编译器,该编译器是软件开发者用来编译软件用的,可供开发者在将高级语言编译为机器码,而手机能不能运行此类App,需要看硬件是否支持,而不是看是否预置了编译器。


为什么通过方舟编译器编译的App运行速度会得到很大提升?

编译器的作用就是把高级语言编译成能直接机器或虚拟机执行的目标代码。


首先来看看为什么Android很慢,Android的App都是基于Java开发的,而且编辑后机器 不能直接“看懂”,机器能执行的都是0,1这样的二进制机器码,所以需要一个“翻译员”来把Java语言翻译成机器能“看懂”的语言,而这个“翻译员”就是Java虚拟机,因为走了一条弯路,再加上Java虚拟机本身也要占用系统资源,所以Android的运行效率相比而言较低。


而通过方舟编译器编译后的App,指令是机器能直接“看懂”的,中间不需要虚拟机来“翻译”,所以运行速度有显著提升,理论上跟IOS相当。

简单的说,就是A只会中文,B只会英语,B要听懂A的话中间就需要一个翻译,这样传达消息的效率就很低,现在A报了个补习班把英语学会了,就可以直接用英语和B对话了,这样中间就省了一个环节,效率也就明显提升了。


所以,不要错误地把方舟编译器理解成手机系统层面的工具。


至于方舟编译器编译出来的App在其他手机运行快不快的问题,答案是肯定的,但前提条件是手机硬件和系统支不支持运行此类App。

6

感谢您的阅读!

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

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

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

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

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

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

现在我们了解两个问题:

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

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

7

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

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

方舟编译器

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

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

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

方舟编译器的优势

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

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

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

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

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

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


8

方舟编译器的原理我就不说了,很多人有介绍:主要是把原来ART动态编译通过方舟编译器预先让开发者在电脑上编译成机器码,减少手机端的开销。缺点是会增大软件储存空间。华为宣称,方舟编译器可让系统操作流畅度提升24%,系统响应速度提升44%,第三方应用重新编译后流畅度可提升60%。

第一张图是华为2019开发者大会上已经报备会支持方舟的软件厂商。第二张是V20升级EMUI10 的更新明细,上面有写到EMUI10方舟编译器已经新增35款软件主流应用。现在方舟已经开源,除华为手机外要想在手机上使用方舟编译过的软件肯定得在手机上装上方舟编译器兼容逻辑层,不然系统如何知道是用ART运行软件还是直接内核CPU就可以执行的机器码?

2019年8月31日,华为正式将方舟编译器开源,针对前端、后端持续进行开源,预计2020年对Java编译器工具链开源,支持Java程序编译。2021年对Javascript编译器工具链开源,可用于JS程序的编译。




9

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

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

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

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


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

10

不叫编译器,应该叫骗译器。

现在根本没有编译过的app,你看华为骗译器官方有放出编译过的APP吗?

没有!

如果有,大家一对比编译过的华为版和没编译过的官方版就知道是否真有功效,但华为从来没放出成功编译后的APP,连华为自己的APP都没有编译前和编译后的对比APP。

现在网上流传的什么支付宝编译过流畅了,人家支付宝都说了没用过,是自己优化的功能。

本文版权归原作者所有,如需商业用途或转载请与原作者联系。

分享

相关信息
 
李靓蕾会原谅王力宏吗

2021-12-30 14:01:01