随着鸿蒙Next系统全面脱离AOSP生态,鸿蒙与安卓两大移动系统正式走向生态割裂。原生鸿蒙应用(HAP格式)仅能在鸿蒙设备上运行,大量普通安卓设备无法适配,给开发者测试、普通用户体验鸿蒙应用带来了极大限制。
今天给大家介绍一款优质开源实验项目——HOA(Harmony on Android),它基于官方ArkUI-X框架深度定制改造,无需刷机、无需鸿蒙真机,即可在原生Android设备上直接运行标准OpenHarmony HAP应用,打通了安卓兼容鸿蒙应用的反向生态链路,项目地址:https://gitcode.com/harmony-on-android/HOA/blob/master/README.md。

HOA 是一款轻量化、高适配的鸿蒙应用跨端运行容器,核心目标只有一个:基于Android平台,原生兼容、运行标准OpenHarmony编译的HAP应用。
区别于传统模拟适配类项目,HOA 不做浅层API映射、不做界面伪适配,而是依托官方ArkUI-X底层能力,通过精准补丁改造,原生支持鸿蒙ABC字节码解析与ArkUI页面渲染,实现真正意义上的端到端原生运行。
HOA 的技术核心是基于ArkUI-X Android构建体系,通过4项定向补丁改造底层运行时,让原本适配跨端开发的ArkUI-X框架,具备识别、加载、运行标准OpenHarmony原生应用的能力。
整个运行流程标准化、分层清晰,完整复用鸿蒙原生运行逻辑:
标准OpenHarmony HAP包 → HAP解压解析器 → HOA适配运行层 → ETS虚拟机+ACE渲染引擎 → Android SurfaceView渲染展示
具体分层逻辑如下:
应用层:标准鸿蒙entry.hap安装包,包含module.json配置文件、ets原生ABC字节码、资源索引文件及各类静态资源,完全遵循OpenHarmony官方编译规范。
解析层:内置HapInstaller工具,自动完成HAP包解压、配置读取、资源解析、字节码提取,模拟鸿蒙系统的应用安装与解析逻辑。
核心运行层:基于ArkUI-X Android适配器改造,依托libarkui_android.so底层库,内置ETS虚拟机和ACE ArkUI渲染引擎,原生执行鸿蒙ABC字节码。同时通过专属补丁,修复鸿蒙字节码记录名匹配、路径适配等兼容问题。
渲染展示层:将解析后的ArkTS页面、UI组件,直接渲染至Android原生SurfaceView,实现高清、流畅的鸿蒙界面展示。
为解决ArkUI-X无法识别原生鸿蒙字节码的问题,项目设计了专属环境适配开关,是整个项目的技术关键:
Android Java层通过 setOhosHapMode(true) 开启鸿蒙HAP兼容模式,该配置通过JNI底层传递至ETS虚拟机。
虚拟机接收指令后,自动切换至OHOS专属兼容路由:
自动补全鸿蒙应用默认路径src/main/
适配鸿蒙字节码特有的「&包裹record名」命名规则
让标准ArkUI-X运行时,完美兼容OpenHarmony官方编译的ABC字节码文件
全程无需修改鸿蒙源码、无需重新编译应用,原生HAP包可直接复用。
目前 HOA 项目已完成端到端全链路打通,成功实现 OpenHarmony 标准HAP「Hello World」应用在Android设备上的完整解析、字节码执行、ArkUI界面渲染,核心运行链路完全可用,具备成熟的基础运行能力,点击可查看运行视频。
鸿蒙Next系统彻底摒弃AOSP,不再兼容安卓APK,两大系统生态彻底割裂。HOA项目反向实现了安卓兼容鸿蒙HAP应用,填补了生态断层,让海量安卓设备无需更换硬件,即可体验、运行原生鸿蒙应用。
对于OpenHarmony开发者而言,无需购置鸿蒙真机、无需部署笨重的鸿蒙模拟器,普通安卓手机即可快速调试标准HAP应用,大幅降低鸿蒙应用的开发、测试、适配成本。
项目仅通过4项定向补丁,就让ArkUI-X框架同时支持跨端应用与原生鸿蒙应用,充分验证了ArkUI-X底层引擎的通用性和可扩展性,为后续跨端系统适配提供了核心技术参考。
区别于重型虚拟机、系统级改造方案,HOA 基于上层框架定制,无需ROOT、无需改系统、纯应用层部署,轻量化、低侵入、易部署,为Linux、车载、嵌入式等多终端适配鸿蒙应用提供了可复用的实现范式。
HOA 不是简单的模拟工具,而是一套基于官方底层引擎的标准化鸿蒙跨端运行方案。它以极小的改造成本,打通了HAP应用在安卓平台的原生运行链路,既解决了开发者的实际调试痛点,也为鸿蒙生态跨设备普及、跨系统兼容提供了全新的民间实现思路。
作为开源实验性项目,它虽暂仅支持基础鸿蒙应用运行,但具备极高的学习价值与二次开发潜力,是研究ArkUI-X原理、鸿蒙应用运行机制、跨端兼容技术的优质源码项目,喜欢的小伙伴们可以关注起来~