当前位置:首页 > 实用技巧 >

方舟编译器安装步骤(方舟编译器怎么启动)

来源:原点资讯(www.yd166.com)时间:2023-06-24 19:59:53作者:YD166手机阅读>>

4月11日,华为上半年度旗舰P30系列和EMUI 9.1在上海正式发布了,会上华为发布了方舟编译器,让早已在欧洲开过一次的发布会依然让人振奋人心。在欢呼安卓系统流畅度再次大步追赶IOS的时候,也许很多人(包括我)都会有疑问:华为是不是为了营销夸大宣传了,边解释边执行是好多年前的安卓才这样的呀,方舟编译器真的有那么好吗?
方舟编译器来了

华为宣称:现有安卓是解释执行的,而方舟编译器编译后可以全程执行机器指令.

方舟编译器安装步骤,方舟编译器怎么启动(1)

方舟编译器全程执行机器码

华为宣称:EMUI9.1采用方舟编译器编译之后,给安卓系统带来24%的操作流畅度提升,系统响应性能提升44%。同时应用开发者使用方舟编译器编译一次之后,可以提升应用60%的流畅度。

方舟编译器安装步骤,方舟编译器怎么启动(2)

方舟编译器编译后带来的系统性能提升和第三方应用性能提升

基础知识普及

在Android系统里,Java代码是如何执行的

应用开发与打包

第一步: Java编译器将Java源代码编译成Java字节码文件,扩展名为.class

第二步: dx工具将Java字节码文件处理成Android虚拟机专用的dex文件

第三步:经过签名,字节对齐等操作后,打包成安装包文件,格式为.apk

应用安装与执行

第一步:将dex文件从apk文件中解压出来

第二步:将dex文件的字节码转为本地机器指令。余承东说的边解释边执行就是这一步。

第三步:执行机器指令

安卓虚拟机的类型

  • Dalvik虚拟机
  • 在Android5.0之前,系统的默认虚拟机是以Dalvik虚拟机。
  • ART虚拟机
  • 从Android5.0开始,安卓抛弃了Dalvik,使用ART虚拟机,目前安卓使用的也是ART。
字节码执行的方式
  • 边解释边执行
  • 这种方式就是原始Java程序的执行方式,效率比较低。
  • JIT (Just In Ttime)
  • 这种模式是在程序运行起来后才将字节码编译成机器指令。程序运行后,有分析模块分析出热点代码,然后通过JIT的方式将这部分热点代码编译成机器指令。
  • AOT (Ahead Of Ttime):
  • 这种模式就是在程序启动前提前将字节码编译成机器指令。但是会带来两个缺点:
  • 1、应用安装速度慢。例如现在105M的微信安装需要几分钟。
  • 2、更多的存储占用。例如下边一个混沌大学的app,oat后还多出17M的oat文件出来,而apk里的dex本来就只有14.6M。

方舟编译器安装步骤,方舟编译器怎么启动(3)

混沌大学app将dex编译为oat后的存储占用情况

Android 6.0到Android 7.0对字节码编译执行的改进

主要说7.0版本是因为从7.0开始,安卓已经在字节码执行上通过权衡取舍,应用安装速度,启动速度,存储空间占用上都有了较好的表现。

安卓5.0-6.0,完全采用AOT的优劣:

方舟编译器安装步骤,方舟编译器怎么启动(4)

Android6.0时代的全AOT编译

安卓7.0,JIT AOT 解释执行模式:

方舟编译器安装步骤,方舟编译器怎么启动(5)

android7.0时代:解释执行 JIT AOT

疑问一:"边解释边执行",不是好几年前的安卓系统才会吗,华为是不是夸大宣传了?

从Android5.0开始就就已经采用ART虚拟机,目前的安卓系统采用JIT和AOT,也会生成机器指令。完全说目前的安卓系统边解释边执行感觉太过夸张呀。

疑问二:"经过方舟编译器编译后的安卓系统,系统响应能力提升44%",是说方舟编译器生成的机器指令更优?

根据华为的宣传,EMUI 9.1系统经过方舟编译器编译后,系统响应能力提升44%。因为从Android7.0开始,系统的代码已经被编译为本地机器指令了(在boot.oat里),既然经过方舟编译器编译后的system_server进程效率更高,那么我们可以认为方舟编译器生成的机器代码比谷歌提供的编译器更优秀。

疑问三:"应用经过方舟编译器编译后,操作流畅度提升60%",是说方舟编译器编译的机器指令能屏蔽了芯片平台差异了?

根据华为的宣传---对应用进行编译,然后这个应用就可全程执行机器码,我们可以肯定方舟编译器将字节码生成了机器指令并打包到APK里了。然而这种做法其实就是AOT的做法,只是将AOT放到了PC上执行而已。谷歌没有直接采用这种在PC上进行AOT处理,而是放到设备本地执行,应该是顾忌这样将产生平台相关性,避免加大安卓的碎片化。

在Android应用开发时,为了提升性能很多应用都采用jni调用c/c 的动态库的方式。例如混沌大学app就提供了x86和armeabi两种平台的动态库。

方舟编译器安装步骤,方舟编译器怎么启动(6)

混沌大学应用的native库

目前应用希望提升执行效率,又希望在多种芯片平台上能通用,于是采用每个芯片平台都编译一份机器指令(动态库)的做法。那么这种芯片平台相关性,谷歌没有解决的问题,华为的方舟编译器真的通过架构级别的优化解决了?

  • 如果仅仅是创造了一个编译器,然后生成了海思麒麟芯片自己的专有应用,那么就有点夸大宣传了。可想而知如果是这样,那么高通就提供高通编译器,三星猎户处理器提供猎户编译器,进一步分裂,不是我们想看到的。
  • 如果方舟编译器编译的机器代码所有芯片平台都能用,那么可以为华为鼓掌了,的确是革命性的!可想而知,既然字节码编译的机器码为所有平台通用,那么应该可以研究一下,可以也把c/c 的编译都跨平台执行,岂不是要上天了!
众多猜测

1、方舟编译器是一套编译工具链,编译生成的机器码完全摆脱“需要在ART里执行”的束缚,比谷歌的编译器更优。

2、华为做了个ART,方舟编译器编译字节码为机器码,但需要在EMUI里才能运行。

3、方舟仅仅编译了更优的字节码。

4、方舟编译器编译的机器码,第一次突破了平台相关性。

我们的期待

编译器大牛Fred Chow加入华为已经4年了,他的加入使得华为成为了国内唯一一个能写编译器的公司。憋了4年的大招,华为终于亮剑,作为国人,我们也为华为感到骄傲!我们希望方舟编译器是真正革命性的东西。

同时也希望这是全安卓阵营都能使用的,而不是仅适用于华为EMUII系统,这样大家的手机都能使用了。我也想赶紧用方舟编译器将我们公司的android framework重新编译一次,感受一下那44%的性能提升。

结束语

由于华为没有提供程序和源码下载,这些疑问只能等待正式开放下载后去验证了。你对方舟编译器作何看法,欢迎留言与我们交流!

欢迎大家关注我们同名微信公众号“麻辣软硬件(*VOSDeveloper)”,一起交流技术相关话题!

栏目热文

方舟编译器在哪里查看(方舟编译器革命性在哪里)

方舟编译器在哪里查看(方舟编译器革命性在哪里)

在去年4月,华为在P30系列发布会上正式发布了方舟编译器。据官方介绍,它能有效解决安卓程序执行效率低的问题,让手机和应用...

2023-06-24 19:38:46查看全文 >>

如何使用电脑上的方舟编译器

如何使用电脑上的方舟编译器

8月6日消息 今日晚间,荣耀老熊发文科普方舟编译器及EROFS超级文件系统,我们来看一下吧。以下为荣耀老熊科普方舟编译器...

2023-06-24 20:06:27查看全文 >>

方舟编译器如何使用(如何使用方舟编译器)

方舟编译器如何使用(如何使用方舟编译器)

*本文来自花粉俱乐部-动听的人期待已久的“方舟编译器”终于在荣耀V20上线了,搭载了方舟编译器的系统,可以明显感觉到手机...

2023-06-24 19:36:24查看全文 >>

方舟编译器安装教程(安装方舟编译器后怎么设置)

方舟编译器安装教程(安装方舟编译器后怎么设置)

知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。一、官...

2023-06-24 19:34:04查看全文 >>

方舟编译器是怎么工作

方舟编译器是怎么工作

EMUI发展至今,服务着216个国家和地区中的4.7亿日活跃用户。我们不忘初心,砥砺前行,只为更好地服务用户。从EMUI...

2023-06-24 19:30:24查看全文 >>

移动网络猫坏了咋办(移动网络猫正常亮几个灯)

移动网络猫坏了咋办(移动网络猫正常亮几个灯)

各位看官大家好,简单说下移动故障简单判断方式和方法,下图是光猫正常状态,4灯全绿,电源 无线 上网 信号灯4个。当你没...

2023-06-24 20:07:45查看全文 >>

网络不稳定猫坏了叫谁修理

网络不稳定猫坏了叫谁修理

网速的好坏受到影响的因素有很多,路由器只是其中一个重要环节。大体影响网速的重要因素可以分为三种:1、运营商网络:机房端口...

2023-06-24 19:59:55查看全文 >>

网络猫坏了怎么修

网络猫坏了怎么修

1、用户使用无线连接的终端上网反应慢、掉线原因:客户端无线WIFI型号使用环境复杂造成无线信号串扰掉线故障解决办法:1)...

2023-06-24 19:58:05查看全文 >>

无线网络猫坏了会怎么样(怎么分辨wifi猫是不是坏了)

无线网络猫坏了会怎么样(怎么分辨wifi猫是不是坏了)

我们在遇到WiFi信号时断时续的情况时,你要自己首先会判断。是不是猫的问题?是不是自己路由器问题呢?前段时间,电脑连不上...

2023-06-24 19:39:33查看全文 >>

网络上的猫坏了能修吗

网络上的猫坏了能修吗

现在一般的家庭都会安装有宽带网络,特别是有年轻人的家庭,网络给我们带来了很多的方便与快捷,这其中的好处就不说啦。但是如果...

2023-06-24 20:03:17查看全文 >>

文档排行