首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

什么黑科技?纯血鸿蒙又可以运行Android应用了!

  • 24-12-16 12:05
  • 4317
  • 9910
juejin.cn

背景

纯血鸿蒙OS Next系统最近出现了两款热门应用:出境易、卓易通,其功能是:让你在出境后可以方便安装到各种Android应用。

发生了什么?

「出境易」这款应用可以在纯血鸿蒙OS NEXT里直接安装&运行Android应用!

纯血鸿蒙官方声称:「不支持运行Android应用」!

于是:

  • 很多正在努力开发、兼容纯血鸿蒙应用的开发者都在议论:是不是可以停鸿蒙开发、继续写回Android了?
  • 也有很多粉丝后台私信Carson,问:目前继续学鸿蒙开发到底还有没意义?


本文意图

今天Carson来带大家扒扒「出境易」、「卓易通」到底是怎么能在纯血鸿蒙OS NEXT里运行Android应用的。具体包括:「出境易」、「卓易通」这两款Android应用

  1. 在纯血鸿蒙系统里运行的底层支持是什么?
  2. 在纯血鸿蒙系统里的运行环境是什么?
  3. 「出境易」、「卓易通」本质是什么?
  4. 在「出境易」、「卓易通」上的Android应用性能、体验如何?

问题1:在纯血鸿蒙系统里运行的底层支持是什么?

  • 无论黑科技有多 “黑”,总需要底层给与相关支持才有运行的可能。
  • 在初次安装「出境易」、「卓易通」时需下载一个环境,抓包&解包可得到:

其中最为关键的文件:anco_hmos.img,从字面解释来看:

  • anco:AndroidCompatible = 安卓兼容
  • hmos:HarmonyOS = 鸿蒙OS系统
  • 整体看,即**「鸿蒙OS系统里的安卓兼容」**

实际上,这其实是一个安卓镜像文件,是一个嵌入到鸿蒙OS系统层面的安卓运行环境(类似虚拟机的作用,但实际不是虚拟机)。

其实是类似wsl技术,即Windows Subsystem for Linux = Windows的Linux子系统,能让开发者在Windows操作系统中直接运行Linux环境,而无需任何虚拟机。

所以,要在纯血鸿蒙OS 上安装「出境易」、「卓易通」不仅需要下载很大的安卓镜像资源包,还需要重启系统,因为「出境易」和 「卓易通」是单独的“运行环境”。

值得一提的是:

  • 因为本身鸿蒙OS内核就兼容了Linux ABI(应用程序二进制接口),即鸿蒙OS内核本身就可以运行为Linux设计的应用。
  • 所以,虽然这是一个安卓镜像,但这个属于鸿蒙的安卓镜像并没有包含Linux 内核,只是包含运行时(Runtime)部分。 以下是鸿蒙内核架构图: 鸿蒙内核示意图

问题2:在纯血鸿蒙系统里的运行环境是什么?

那么,这类Android应用到底是运行在什么环境上的呢?打开「出境易」内的app后,通过执行shell ps -ef会出现以下进程:

  • 即其运行环境是:通过lxc-start命令启动了一个基于iSulad的容器的进程。
  • iSulad 是华为自研的容器引擎,是一个非常通用的容器引擎,具有轻、快、 易、灵的特点。以下是其架构图:

iSulad官网介绍:www.openeuler.org/zh/other/pr…


问题3:「出境易」、「卓易通」本质是什么?

二者的功能都是:让你在出境后可以方便安装到各种app。听起来是不是有点类似国内的应用商店?

  • 实际上,二者在鸿蒙next商店下载的是一层壳,负责与纯血鸿蒙OS进行权限交互(图片、文件IO等)
  • 本体也是Android应用的apk,即出境易.apk、卓易通.apk。拿出来也是可以在Android手机上安装的。(如下图)

除此以外,「出境易」还含有一个「文件共享.apk」、「卓易通」还有一个「搜应用.apk」、「文件共享.apk」。

这里值得一提的是,两个“应用商店”可搜到的应用原理不同:

  • 出境易:白名单方式,即只有与其合作的Android应用可以安装;
  • 卓易通:黑名单方式,即只有纯血鸿蒙OS上架的应用不可以安装;

下面附上视频:纯血鸿蒙OS 「出境易」、「卓易通」安装Android应用实机演示

www.bilibili.com/video/BV1Q9…


性能如何?

既然能跑了,那么用户体验如何呢?网友们已经开始跑分了:

  • 测试环境:麒麟9000s;
  • 结论:单核心正常跑分1000,目前「出境易」是930分左右,效率是93%;

  • 分析:上面提到其底层支持是类似wsl的技术,同时运行环境是采用华为自研的iSulad 容器引擎的方式,并非所谓的虚拟机环境。这种嵌入方式可以使得安卓应用能够在鸿蒙系统上运行,但又不会占用过多的资源或影响系统的稳定性;
  • 结合业界常见容器水平93%左右,华为的iSulad容器达到了业界水平,可理解为:GPU性能几乎无损。

但是对于内存使用就不太友好了,容器本身内存占用极大,基本一个容器进程就是8GB,随便开两个应用12GB就没了。 同时结合网上使用的评价:手机容易发烫(功耗高)、应用Bug较多等等,可以总结为:以这种方式在纯血鸿蒙OS上运行的Android应用 「能用」,但是「不好用」,与原生体验还是存在很大差距。


结论

  • 从技术角度 分析:基于anco_hmos,采用类似wsl的方式同时结合iSulad容器引擎,使得在纯血鸿蒙OS上运行Android应用成为了板上钉钉的现实。
  • 从性能角度 实践:在CPU性能可认为几乎无损的情况下,内存跟功耗问题短时间内还是无法解决;
  • 从用户体验 观察:应用Bug较多,结合性能内存问题,目前暂时仅处于一个**「能用」**的状态。

基于上述分析 & 问题表现,在纯血鸿蒙OS上运行Android应用在国内大范围使用短时间内几乎不可能,更多的是在一些小众、边缘、尝试探索的场景,比如一些使用频率较低的小众app、尝试出海境外的场景(如本文提到的「出境易」等)。

最后

如何看待这次在纯血鸿蒙OS上运行Android应用的事件呢?评论区留言你的看法!

参考文章:

  • www.bilibili.com/video/BV1Q9…
  • zhuanlan.zhihu.com/p/105768126…
  • cn.club.vmall.com/mhw/consume…
注:本文转载自juejin.cn的Carson带你学Android的文章"https://juejin.cn/post/7448576110823047202"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

140
Android
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top