首页 > 编程知识 正文

安卓13用华为的方舟编译器,华为方舟编译器开源项目1.0 版本

时间:2023-05-03 07:54:06 阅读:248129 作者:587

Android 所有的应用在编译打包的时候实际上是都打包成了字节码,而我们的手机 CPU 并不认识字节码,它们只认识机器码。于是我们需要在 App 和 CPU 之间添加一位「翻译」,App 才能够正常执行。

这和一些 Java 应用需要通过 JVM 执行类似,在 Android 中,App 需要依赖 Dalvik 才能执行。

在发布会上,华为提到了一个细节,他们表示这个编译器是给 App 开发者提供的,这意味着这个编译器本质上并不是一个内置在手机系统里的东西,而是一个给开发者使用的工具,或者说工具链。

综合华为之前在自己开发 OS 的新闻,方舟编译器甚至有可能是华为自研 OS 的一部分,它的存在能够让应用开发者轻松地将现有的 Android 工程编译成适合华为写的 Runtime 的应用,进而能够兼容地运行在华为自己的 OS 上。

华为之所以创造这个方舟编译器,很有可能不只是为了提升 Android 的性能那么简单。

华为方舟编译器有两个点能够大幅度提升 Android 的性能,第一个是它是一个面向开发者的工具,这意味着它编译的是开发者编写的工程,从源代码直接编译成机器码,将二进制打包到 APK 中。

这是一个相当有趣的思路,方舟编译器是在开发者的电脑上完成的编译这个操作,这意味着编译和用户以及用户的手机没有任何关系,在开发者的电脑上,华为可以将这个编译的优化做到极致,编译出尽可能高效、简洁的机器码,同时避免了 App 安装时间长和 App 体积过大的问题。

另一点是华为在编译器中加入了和 OS 的交互,不过这可能只能在 EMUI 上实现。在编译的过程中,编译器会在编译时对一些特别的代码进行标记,例如 IO 密集的代码等等。系统在执行它的过程中看到了这些标记,就会预先对系统资源进行调配,这和 GPU Turbo 是差不多的思路。

这么一来,应用的执行将会变得非常通畅,进而总体的性能会有一个大幅的提升。

如果华为真的已经在 EMUI 中加入了一套配合方舟编译器做的自己的 Runtime,那么即使华为开源了这个编译器,那么开发者也只能给 EMUI 编译更快的应用,其他厂商是偷不走这个技术的。

从华为开源它的动作来看,笔者个人认为华为应该是做了一套自己的 Runtime 实现,配合这套 Runtime,经过方舟编译器编译出来的 App 在性能表现上才会有大幅提升。它可以兼容其他厂商的手机,但是性能表现是会打折扣的。

由于华为只开源了编译器这个部分,所以其他厂商根本没有办法复刻华为通过方舟编译器给 App 运行性能带来的提升,因为其他的厂商根本没有办法通过这个编译器反推出 Runtime。在这个点上,华为牢牢地限制住了竞争对手。

华为的这个举动可以说是在对 Android 生态做进一步的分裂,华为最近是动了 EMUI 底层方面的东西,不知道华为是不是已经开始在向自己的 OS 过度了,如果是的话,这一次开放方舟编译器将会是一个关键的节点。

短信API服务有哪些?linux删除文件之后磁盘没释放html表格的作用有哪些

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。