当前位置:首页 > 技术分享

鸿易通:HOA Harmony on Android 26.6.13.1 在 Android 设备上运行 OpenHarmony / HarmonyOS HAP 应用

admin3个月前 (06-24)技术分享414

在 Android 设备上运行 OpenHarmony / HarmonyOS HAP 应用。

215301zmam7rwrkwzzmpzz.jpg

一个正在开发中的实验性项目目标是让 HarmonyOS 的 HAP 应用包无需修改即可在 Android 设备上运行。目前已完成核心运行时搭建,ArkTS 页面渲染和原生 .so 加载均已验证通过,但大量系统 API 尚未实现,兼容性有限。

百度网盘
https://pan.baidu.com/s/1EdSSnL7SVIjmevyqFM3bHQ?pwd=rcew

支持到什么程度

能力状态说明
ArkTS 页面渲染支持SurfaceView + Skia,SDK 5.0/6.0 ABC 格式兼容
HAP 安装与启动支持ZIP 解析、流式解压、多进程槽位管理(5 槽)
resources.index 解析支持V1(OHOS 5.0)和 V2(SDK 6.0)双版本
原生 .so 加载支持无 RUNPATH 的闭源 .so 拓扑依赖加载 + musl ABI bridge(libb.so)
C++ STL(libc++_shared)支持std::string/vector/map/thread/exception/RTTI 等全部通过
HDC 协议支持TCP 8710,支持 install/uninstall/shell/file send,DevEco Studio 可识别为设备
权限映射部分普通权限自动映射(INTERNET 等),危险权限需手动处理
生命周期部分onCreate/onResume/onPause/onDestroy 已对接,部分中间状态未实现
HDS 组件部分70+ 导出 mock,功能正确但视觉与原版差异较大
完整 Bundle Manager不支持未实现,bundleInfo_ is nullptr 日志警告
后台能力 / Service不支持未实现
分布式 / 多设备不支持未实现

已知限制

HOA 仍在早期开发阶段,以下为已知限制:

  • HAP 兼容性:目前只有部分 HAP 能正常运行。依赖未实现系统 API 的 HAP 会白屏或崩溃。

  • 性能:ArkUI-X 渲染管线未经优化,复杂页面可能卡顿。

  • 内存:每个 HAP 启动一个独立进程,多 HAP 同时运行内存压力较大。

  • 稳定性:长时间运行可能出现资源泄漏,建议测试后重启 app。

  • 安全性:HDC daemon 无认证机制(默认 8710 端口),仅适合开发调试,不要在生产环境使用。

原理

HOA 基于 ArkUI-X 的 Android 构建体系,通过多个仓库的定向适配使运行时能够加载并执行 OHOS 原生格式的 HAP:

  • ArkTS 渲染:ETS VM 执行 modules.abc 字节码,ACE 引擎将 UI 树渲染到 Android SurfaceView

  • 原生 .so 支持:通过 libb.so(musl ABI bridge)在 Android bionic 上运行 OHOS 闭源 .so;ELF patch 将 DT_NEEDED libc.so 替换为 libb.soelf_load_with_deps 对无 RUNPATH 的 .so 做拓扑依赖加载

  • HDC 协议:实现 OHOS HDC daemon,支持 DevEco Studio 设备识别与一键部署

转自:https://www.52pojie.cn/thread-2114086-1-1.html

扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/754.html

分享给朋友:

“鸿易通:HOA Harmony on Android 26.6.13.1 在 Android 设备上运行 OpenHarmony / HarmonyOS HAP 应用” 的相关文章

Chrome 开启自带多线程下载支持 提升下载速度

Chrome 开启自带多线程下载支持 提升下载速度

Chrome 是当前性能最高的浏览器之一,但在下载速度方面,Chrome 可一点都不快。当前 Chrome 的下载仍是单线程机制,速度非常慢。对此,大家不得不使用第三方的下载工具,例如迅雷、IDM 等支持多线程下载的下载软件,来提高下载速度…

mysql update不支持set子查询更新 的解决办法

mysql update不支持set子查询更新 的解决办法

先看示例:SELECT uin,account,password,create_user_uin_tree FROM sys_user结果:表中的create_user_uin_tree标识该条记录由谁创建。创…

解决 SVN Skipped 'xxx' -- Node remains in conflict

更新命令:svn up提示代码:意思就是说 ,这个文件冲突了,你要解决下Updating '.': Skipped 'data/config.php' -- …

[教程] WTG备份新方法——FFU镜像格式

[教程] WTG备份新方法——FFU镜像格式

FFU(Full Flash Update) 格式是一种基于扇区的磁盘镜像文件格式,默认使用快速哈夫曼压缩(Xpress-Huffman)算法压缩,在捕获和部署时会生成哈希表进行校验,并可以使用DISM修改捕获的镜像。FFU格式很适合WTG…

安装Windows 10X 教你如何安装Win10X正式版 及下载地址

安装Windows 10X 教你如何安装Win10X正式版 及下载地址

安装Windows 10X 教你如何安装Win10X正式版:Windows 10X是Windows 10操作系统的新版本,主要针对双屏电脑。由于即将运行Windows 10X的双屏电脑(例如即将面世的Surface Neo)的开发遇到挫折,…

2021可用的百度网盘高速下载方法分享

2021可用的百度网盘高速下载方法分享

最新可用方法https://blog.bitefu.net/post/163.html方法很简单就是利用网盘直链下载助手【网盘直链下载助手】是一款免费开源获取网盘文件真实下载地址的油猴脚本,基于PCSAPI,支持Windows,Mac,Li…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。