在 Android 设备上运行 OpenHarmony HAP 应用。
HOA 基于 ArkUI-X 6.1-Release 的 Android 构建体系,通过 6 个仓库的定向适配使运行时能够加载并执行 OHOS 原生格式的 HAP,将 ArkTS 页面渲染到 Android SurfaceView 上。
┌─────────────────────────────────┐
│ HAP (entry.hap) │
│ ├── module.json │
│ ├── ets/modules.abc │ ← OHOS 原生字节码
│ ├── resources.index │
│ └── resfile/ │
└──────────┬──────────────────────┘
│ HapInstaller 解压
▼
┌─────────────────────────────────┐
│ HOA Application │
│ ├── StageApplication │ ← ArkUI-X 6.1 Android 适配器
│ ├── libarkui_android.so │ ← 内嵌 ETS VM + ACE 渲染引擎
│ └── OHOS HAP Mode Patches │ ← 6 仓库定向适配
└──────────┬──────────────────────┘
│
▼
┌─────────────────────────────────┐
│ Android SurfaceView │
│ └── Hello World (ArkUI) │
└─────────────────────────────────┘
关键机制:Java 层通过 setOhosHapMode(true) 设置环境变量,经 JNI 传入 ETS VM,在模块路由时激活 OHOS 兼容路径(自动适配 SDK 5.0/6.0 ABC record 名格式差异),使 ArkUI-X 能正确加载 OHOS 编译的 ABC 文件。
cd <arkui-x-source>
./build.sh --product-name arkui-x --target-os android
cd <hoa-project>
./scripts/sync_arkui_x.sh
./gradlew assembleDebug详见 docs/BUILD.md。
- 生产模式:MainActivity → Install HAP(选择文件)→ 点击启动
- 开发测试:
adb shell am start -n app.hackeris.hoa/.DevTestActivity --ez autoLaunch true
要求:Android 8.0+,arm64-v8a 设备。
ArkUI-X 6.1-Release 移植完成。5 个已安装 HAP 中 4 个正常渲染,支持安装/预览/启动/卸载全流程。详见 agents/PROGRESS.md。
docs/BUILD.md— 完整构建文档docs/ARKUI-X_PATCHES.md— ArkUI-X 源码修改说明agents/PLAN.md— 技术方案agents/PROGRESS.md— 项目进展