鸿蒙的开发工具包

蒙开发环境,工具包

www.huangq.com

方舟编辑器下载

华为应用市场

P30系列国行发布会上,华为宣布了革命性的“方舟编译器”,通过架构级优化,显著提升性能,尤其是全程执行机器码,高效运行应用,彻底解决安卓应用“边解释边执行”造成的低效率。

华为宣称,方舟编译器可让系统操作流畅度提升24%,系统响应速度提升44%,第三方应用重新编译后流畅度可提升60%!

虚拟框架听到这个消息,我已经吓哭了。

可能很多童鞋不知道这里是个咋回事,什么是机器码?什么又是「边解释边执行」?华为到底干了啥,它又要牛逼了吗?作为一个技术爱好者,这里我跟大家科普一下

Android平合的绝大多数应用是使用Java语言写的,CPU只能理解机器指令,无法直接识别Java语言的虚拟机指令;为了让CPU能运行Java语言编写的程序,一般有两种办法:

1.「计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决」引入一个中间层,这个中间层负责Java代码的执行,然后这个中间层本身编译为CPU能理解的汇编指令,也就是CPU->中间层->Java代码。如果这个中间层采用Java语言直接作为输入,理解句Java语句就把Java语言翻译ー下让CPU执 行一段,我们一般称这种模式为「解释执行」。毋庸置疑这种方式效率是相当低效的。

2.直接把Java语言翻译成CPU能理解的机器语言。这里又有两种方式
a.在程序运行之前直接把Java代码编译为机器语言。这种模式我们称之为AOT( Ahead of time)编译。

b.在程序运行起来之后,实时地把Java语言编译为机器语言然后执行。这种模式称之为JIT( Just in time)编译。

肯景介绍完了回到 Android平台上面, Android平台分为几个阶段

1.在 Android5.0正式采用ART之前Android采用的是解释执行+辣鸡JT的方式执行Java代码。在这个阶段是货真价实的「边解释边执行」的模式,代码效率相当低下,再加上那时候同样辣鸡的GC(垃圾回收)Android用起来真是惨不忍睹。
Android5.0~ Android6.0。 Google推出了ART( Android Runtime)来解決之前的Java代码执行效率问题。这个阶段采用的是完全AOT模式; Android应用在安装的时候,系统会把所有Java代码提前编译为机器码。这种模式有两个缺点不能忍

a.安装速度巨慢。即使是现在吊炸天的855采用AOT模式编译一下安装包比较大的应用(如支付宝)可能就要一分钟。那个时候的CPU可不如现在,安装一个应用都让你等得头皮发麻。更要命的时候,系统OTA开机会对所有的应用执行AOT操作,这时候你的开机速度可能要半个小时
b.占用磁盘空间,Java代码编译为机器码之后体积会急剧膨胀。

3. Android7.0~现在。 Google做了很大的改进基于这样一个事实:我们使用一个应用的时候,基本每个人只使用它一小部分功能,为什么要把所有代码全编译呢?只编译你经常用的那部分代码不就OK了,这样安装的时候啥也不干速度飞快,等你用的时候系统就能知道哪部分代码经常被执行,把这部分代码编译为机器码,运行起来速度也快。于是 Google又引入了JT,这时候的执行模式是AOT+JT+解释执行。

a.应用安装的时候不执行AOT编译,安装速度飞快。初次使用应用的时候没有机器码,因此只能解释执行。

b.应用运行起来之后,系统收集经常被运行的代码的信息,做两件事:1)在必要的时候在运行时直接把Java代码编译为机器码(JT),然后使用机器码执行提高运行效率。2)把这个「经常被运行的代码信息保存起来

C.设备空闲的时候,系统拿出应用运行时候保存的「热点代码信息」直接把这些代码编译为机器码(AOT)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇