搜索
缓存时间12 现在时间12 缓存数据 你相信吗 也许在另一个平行时空 有一个跟你长得很像很像的人 正在热烈得爱着那个你爱不到的人
查看: 154|回复: 0

鸿蒙 OS Next 支持运行 Android 应用了(转载备份)

[复制链接]
发表于 2024-12-7 19:20:19 | 显示全部楼层 |阅读模式

马上注册,免受广告困扰,轻松兑换eSIM!

您需要 登录 才可以下载或查看,没有账号?注册

×
原帖转自微信公众号:https://mp.weixin.qq.com/s/Kq8PTH82cfIG_J7OcJJ4RA
640.jpeg
几个小时前,Harmony OS Next 5.0 上架了一个名为“出境易”的应用,通过这个应用,可以运行不兼容原生鸿蒙 OS Next 的 Android 应用。

很多网友对其技术原理感到好奇,但手里没有相关的设备,不敢妄言。不过我可以大胆猜测一下,它的原理应该与我曾经开发的“两仪”类似。
640 (2).jpeg
应用商店显示,上架此应用的公司为“湖南穹隆科技有限公司”,在天眼查上查询,它的联系方式与公司法人与“湖南小算科技信息有限公司“一致。
640 (1).jpeg
而 VMOS 是一款 Android 系统上运行 Android 系统的虚拟机应用,两仪的运行原理与其一致。

两仪的运行原理并不复杂,其核心技术分为三部分:

1. 对 POSIX API 的兼容层;对于 Android 系统来说,这是天然兼容的。对其他系统来说,POSIX 兼容也很成熟了,鸿蒙 OS Next 自然也能做到。
2. ELF loader;在 Android 系统上这也很自然,不过 Android 10 以后禁止了 W^X,因此也需要自己 load ELF;鸿蒙 OS Next 可能需要在 kernel 加个 binfmt_misc 类似机制,如果它兼容 Linux 内核,那这一步也可省略。
3. OpenGL / vulkan 的转译层;OpenGL 指令序列化的相关技术也很成熟,不过要解决 GPU 对象在显存间共享的问题,否则顶多做到 40 FPS;两仪的最初版本非常卡,就是因为图像都是序列化传输的;后面虽然支持了 GPU 直通,但也耗尽了我所有的心力。

虽然还有很多其他的工作要做,不过那些都是体力活。所以从原理上讲,在应用层运行起一个 Android 系统在技术上其实并没有太大的阻碍,不过我不确定是否任何一个普通的鸿蒙应用都有权限做到如此,特别是对 Linux 内核兼容层的访问权限。

640 (3).jpeg

两年前,我曾与鸿蒙生态的朋友有过短暂的交流,当时对方在寻找鸿蒙系统的虚拟机技术方案;但由于投入周期太长,最终我们放弃了合作。今天看到相关的技术方案落地,万分感概。

作为在开源合作和全球化环境下成长起来的技术人,曾很难理解鸿蒙的决定;但在 Linus 可以因为莫须有的原因踢掉俄罗斯开发者的今天,这样的选择似乎又显得很自然。或许我们应该少一点讥笑与嘲讽,多一点理解和祝福吧。
640 (1).jpeg
[发帖际遇]: Alvis 捡了钱没交公 金币 降了 3 . 幸运榜 / 衰神榜
爱生活,爱奶昔~

Powered by Nyarime. Licensed

GMT+8, 2024-12-23 12:15 , Processed in 0.020611 second(s), 13 queries , Gzip On, Redis On
发帖际遇 ·手机版 ·小黑屋 ·RSS ·奶昔网

登录切换风格
快速回复 返回顶部 返回列表