
linux
一个较为客观的回答是:从理论上讲,目前已经具备实现这一目标的条件,但从实际表现来看,完成度似乎还不算高。首先,Mali 的驱动大部分是免费开源的,并且同时支持
linux 和
Android 两个系统。对于付费的商业合作伙伴,还可以获得完整的 Mali DDK(驱动开发套件)源代码。此外,也有一些第三方通过逆向工程得到了 Mali 驱动,因此这并不是一个难以克服的问题。由于其源码支持
linux,鸿蒙可以基于修改后的
linux 内核进行适配,实际上他们也正是这么做的。只要
麒麟芯片能够顺利生产,
华为完全可以为自己的芯片编写驱动程序,从而在驱动层面上摆脱对外部技术的依赖。然而,如果
麒麟芯片无法继续生产,转而使用
高通芯片作为替代方案,那么就不得不依赖
高通提供的
安卓驱动,这样一来,摆脱 AOSP(
Android Open Source Project)也就无从谈起了。除了 Mali,海思还自主研发了一款名为 Maleoon(马良 GPU)的图形处理器。目前尚不清楚它是否只是在 Mali 驱动基础上进行了封装,但无论如何,这至少是一个备选方案,可能蕴含了一些独特价值。在对内核、驱动以及硬件抽象层进行深度定制之后,上层的
Android Runtime(ART)也被替换掉了。现在取而代之的是 Ark Runtime(方舟运行时),后者的设计类似于 Node
JS 的封装形式,主要用于解析
JavaScript 并提供运行环境。尽管 Ark Runtime 在设计中可能参考了
Android Runtime 的许多思路,例如支持 AOT(Ahead-of-Time Compilation,即时编译),但它已经发展出一套独立的技术体系。这种改动使得纯鸿蒙应用与
安卓应用在数据结构层面变得截然不同。纯鸿蒙应用更接近于 Node
JS 的 npm 打包方式,通过 NAPI 与底层
C++ 进行交互,其
包头实际上是基于 Node
JS 的规范。因此,开发纯鸿蒙游戏需要借助一个经过魔改的 Unity 引擎(团结引擎)。在这种模式下,游戏的入口是基于
JavaScript 的,而内部的核心循环则由
C++ 编写,所有的接口和消息传递均通过 NAPI 实现交互。相比之下,
安卓应用的打包方式依然保持传统,内部结构可能是 JAR 包或 AAR 包的形式,并通过 NDK 或 JNI 等机制与底层
C++ 进行交互。总结鸿蒙 Next 已经从理论上实现了从底层到上层对
安卓系统的全面重构。当然,以上内容主要是基于公开资料的分析,具体实施进展以及完成度究竟如何,目前还不得而知。