HOA stands for Harmony on Android. It is a project that lets an Android phone run apps built for OpenHarmony, the Huawei-led operating system. OpenHarmony apps come as files with the extension HAP, and they use a UI framework called ArkUI written in a language called ArkTS. Normally those files only run on OpenHarmony devices. HOA aims to load and execute them on a regular Android device instead. The README explains the approach. It builds on ArkUI-X version 6.1, which is an existing cross-platform port of ArkUI to Android, and patches six of its source repositories so that the runtime can load the original HAP format from OpenHarmony rather than the cross-built variant. The diagram in the README shows the HAP being unpacked by a HapInstaller, then an embedded ETS virtual machine and ACE rendering engine drawing the ArkUI page onto an Android SurfaceView. A Java-side flag called setOhosHapMode is passed through JNI into the ETS VM to switch on compatibility paths, including handling differences in ABC bytecode record naming between SDK 5.0 and 6.0. Building requires checking out the ArkUI-X source, running its build script for Android, syncing the result into the HOA project, and then running gradle assembleDebug. The full steps are in docs/BUILD.md. At runtime the user installs a HAP through MainActivity or launches a dev test activity via adb. Devices need Android 8.0 or newer and arm64-v8a. The README says 4 of 5 tested HAPs render correctly so far.
Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.