纯血鸿蒙竟能运行安卓应用?技术原理大揭秘!

2,482 阅读15分钟

引言

在科技飞速发展的今天,操作系统领域的每一次突破都备受瞩目。近期,纯血鸿蒙能运行 Android 应用这一现象,犹如一颗投入平静湖面的石子,在技术圈激起了层层涟漪。作为国产操作系统的重要代表,纯血鸿蒙一直承载着人们对于自主可控、创新发展的期待。而它与 Android 应用的奇妙 “联动”,更是引发了广泛的讨论和关注。这背后究竟隐藏着怎样的技术奥秘?其性能表现又如何?在哪些应用场景中能发挥独特优势?本文将深入探究这些问题,为大家揭开纯血鸿蒙运行 Android 应用的神秘面纱。

纯血鸿蒙与安卓应用:打破常规认知

纯血鸿蒙,即 HarmonyOS NEXT,作为华为全力打造的新一代操作系统,其最大的特性之一便是底座全线自研 。从内核到编译器,从运行时环境到整个生态体系,都凝聚着国内科研人员的智慧与汗水,是真正意义上的自主可控的操作系统。余承东在发布会上着重强调了这一点,其采用的微内核架构,相较于传统的宏内核,在安全性和稳定性上有了质的飞跃。这种架构使得系统各模块之间的耦合度降低,即使某个模块出现问题,也不会轻易影响到整个系统的运行,就如同将一座大厦的各个功能区域进行了合理的隔离,一处失火不至于殃及整栋建筑。

在过去,鸿蒙系统为了实现与现有应用生态的衔接,在一定程度上兼容了安卓应用。但纯血鸿蒙的出现,意味着华为决心彻底摆脱对安卓的依赖,打造属于自己的独立生态。这一举措,在操作系统发展史上都具有里程碑意义,就好比苹果公司坚持使用自研的 iOS 系统,与安卓系统形成鲜明的竞争态势,而纯血鸿蒙的诞生,也将为全球操作系统市场带来新的格局。

然而,“出境易”“卓易通” 等应用的出现,却打破了人们对纯血鸿蒙不能运行安卓应用的常规认知。“出境易” 由湖南穹隆科技有限公司推出,在鸿蒙 OS Next 5.0 上架,它的出现,仿佛是在纯血鸿蒙的世界里开辟了一条特殊通道,让安卓应用得以 “借道” 运行。“卓易通” 同样具有类似功能,正式上线华为原生鸿蒙应用市场,为用户提供了丰富的第三方应用下载、管理、更新等服务。这两款应用的出现,让人们不禁好奇,纯血鸿蒙与安卓应用之间,究竟发生了怎样奇妙的 “化学反应” 。

技术原理深度剖析

底层支持:鸿蒙中的安卓兼容镜像

在纯血鸿蒙系统中,“anco_hmos.img” 文件是安卓应用得以运行的关键底层支持。从字面含义来看,“anco” 代表 “Android Compatible”,即安卓兼容,“hmos” 代表 “HarmonyOS”,也就是鸿蒙系统 。合起来,它意味着这是一个嵌入到鸿蒙 OS 系统层面的安卓运行环境。从本质上讲,它是一个安卓镜像文件,发挥着类似虚拟机的作用,但又并非传统意义上的虚拟机。这一技术与 wsl 技术(Windows Subsystem for Linux,即 Windows 的 Linux 子系统)有着异曲同工之妙。wsl 技术允许开发者在 Windows 操作系统中直接运行 Linux 环境,而无需借助任何虚拟机。同样,“anco_hmos.img” 使得安卓应用能够在纯血鸿蒙系统中找到适配的运行环境 。

当我们初次安装 “出境易”“卓易通” 这类应用时,系统会提示下载一个较大的环境资源包,其中 “anco_hmos.img” 便是核心文件。下载完成后,还需要重启系统,这是因为 “出境易” 和 “卓易通” 需要构建一个单独的 “运行环境”。值得一提的是,鸿蒙 OS 内核本身就兼容了 Linux ABI(应用程序二进制接口),这使得它可以运行为 Linux 设计的应用 。所以,“anco_hmos.img” 这个安卓镜像并没有包含 Linux 内核,只是包含了运行时(Runtime)部分,这样的设计既保证了安卓应用的运行需求,又避免了与鸿蒙内核的冲突,极大地提高了系统的兼容性和稳定性 。

运行环境:基于 iSulad 容器的进程

在纯血鸿蒙系统中,安卓应用的运行环境是基于 iSulad 容器的进程。当我们打开 “出境易” 内的 app 后,通过执行 shell ps -ef 命令,可以清晰地看到其通过 lxc-start 命令启动了一个基于 iSulad 的容器的进程。iSulad 是华为自研的容器引擎,在整个运行过程中扮演着至关重要的角色。它具有轻、快、易、灵的特点,是一个非常通用的容器引擎。

从架构设计上看,iSulad 通过将镜像和 rootfs 部分独立为服务,优化了镜像模块元数据的隔离性,使得不同镜像和 rootfs 之间的操作完全隔离,这大大提高了系统的安全性和稳定性。在运行安卓应用时,iSulad 能够快速地创建和管理容器进程,让安卓应用在这个容器环境中高效运行。与传统的虚拟机运行方式不同,基于 iSulad 容器的方式避免了模拟硬件环境带来的性能损耗,使得安卓应用在纯血鸿蒙系统中能够以较高的效率运行。同时,iSulad 支持 CRI/OCI 标准开源接口,可以灵活对接 runc、kata 等多种 OCI 运行时,确保了与容器生态的兼容性,为安卓应用在纯血鸿蒙系统中的运行提供了坚实的保障 。

应用本质:特殊的 “应用商店”

“出境易” 和 “卓易通” 从本质上来说,就像是两个特殊的 “应用商店”。在鸿蒙 next 商店中,我们下载到的其实是一层壳,这层壳主要负责与纯血鸿蒙 OS 进行权限交互,比如图片、文件 IO 等操作。而它们的本体则是 Android 应用的 apk,即 “出境易.apk”“卓易通.apk”,并且这些 apk 文件拿出来同样可以在 Android 手机上安装使用。

“出境易” 还包含一个 “文件共享.apk”,“卓易通” 则有一个 “搜应用.apk” 和 “文件共享.apk”。这两个特殊的 “应用商店” 在搜索应用的原理上有所不同。“出境易” 采用白名单方式,只有与其合作的 Android 应用才可以在其中安装。这就好比一个会员制的俱乐部,只有被邀请的会员(合作的应用)才能进入。而 “卓易通” 采用黑名单方式,除了纯血鸿蒙 OS 上架的应用,其他应用都可以安装。就像是一个公共图书馆,除了被特别标注禁止借阅的书籍(纯血鸿蒙上架应用),其他书籍都可供借阅。这种不同的搜索应用原理,也为用户提供了多样化的选择,满足了不同用户对于应用获取的需求 。

性能表现与用户体验

性能测试数据解读

在性能测试方面,我们以麒麟 9000s 为测试平台,对纯血鸿蒙系统下运行的安卓应用进行了多维度的测试。在单核心跑分测试中,正常情况下麒麟 9000s 单核心跑分可达 1000 分左右,而在 “出境易” 环境下运行安卓应用时,单核心跑分约为 930 分,效率达到了 93% 。这一数据表明,在 CPU 性能方面,纯血鸿蒙运行安卓应用时的损耗相对较小,基本能够维持较高的性能水平。从原理上来说,由于其底层采用了类似 wsl 的技术,同时运行环境基于华为自研的 iSulad 容器引擎,这种方式避免了传统虚拟机模拟硬件环境带来的大量性能损耗,使得 CPU 能够较为高效地处理安卓应用的运行任务 。

在内存占用方面,情况则不太乐观。基于 iSulad 的容器本身内存占用极大,一个容器进程基本就达到 8GB 。这意味着,在纯血鸿蒙系统中运行安卓应用时,如果同时打开多个应用,内存很快就会被大量占用。例如,当我们同时打开两个较为占用内存的安卓应用时,12GB 的运行内存可能很快就所剩无几。这是因为每个安卓应用在运行时,除了应用本身所需的内存,还需要为容器环境分配大量内存资源,导致整体内存占用过高 。

功耗方面,根据用户反馈以及实际测试观察,在纯血鸿蒙系统上运行安卓应用时,手机容易出现发烫现象,这表明其功耗较高。这是由于安卓应用在非原生的纯血鸿蒙环境中运行,需要进行额外的适配和转换工作,这一过程会消耗更多的电量。例如,在长时间运行一些大型游戏类安卓应用时,手机的发热情况会更加明显,功耗也会急剧上升,严重影响了手机的续航能力 。

用户实际体验反馈

从用户实际体验反馈来看,纯血鸿蒙运行安卓应用目前还存在诸多问题。许多用户反映,通过 “出境易”“卓易通” 运行的安卓应用存在较多的 Bug。比如,部分应用在启动时会出现闪退现象,还有些应用在运行过程中会出现界面显示异常、功能无法正常使用等问题 。这些问题严重影响了用户的使用体验,使得安卓应用在纯血鸿蒙系统上的运行稳定性大打折扣。

在与原生体验的差距方面,无论是从流畅度还是功能完整性上,都能明显感受到差异。原生的安卓应用在安卓系统上运行时,能够充分利用系统的各项资源和特性,实现最佳的性能和功能表现。而在纯血鸿蒙系统中,即使通过 “出境易”“卓易通” 等应用来运行安卓应用,也无法达到原生的流畅度和稳定性。例如,在进行一些复杂的操作时,如快速切换应用、进行多任务处理等,原生安卓系统的响应速度更快,而纯血鸿蒙运行安卓应用时则会出现明显的卡顿现象 。

综上所述,虽然纯血鸿蒙系统实现了运行安卓应用的突破,但从性能表现和用户体验来看,目前还存在较大的提升空间。这种运行方式在现阶段仅适用于一些小众场景,如使用频率较低的小众 app、尝试出海境外的场景等 。对于大多数用户来说,在日常使用中,还是更倾向于使用原生的纯血鸿蒙应用或者在安卓系统上运行安卓应用,以获得更好的性能和体验。

对鸿蒙生态及未来发展的影响

对鸿蒙应用开发的影响

“出境易” 和 “卓易通” 的出现,在鸿蒙应用开发领域犹如投入了一颗石子,激起了层层波澜。对于开发者而言,这两款应用的出现,既是机遇也是挑战。从积极的方面来看,它们为开发者提供了更多的时间和空间来进行原生鸿蒙应用的开发与适配 。在原生鸿蒙应用生态尚未完全成熟的阶段,开发者可以借助这两款应用,让用户先使用安卓应用来满足基本需求,从而减轻开发的紧迫性。例如,一些小型开发者团队,在开发原生鸿蒙应用时可能面临技术、人力和时间等多方面的限制,“出境易” 和 “卓易通” 的出现,使得他们可以有更充裕的时间来打磨自己的原生应用,提高应用的质量 。

然而,也有部分开发者担心,这两款应用的存在可能会影响原生鸿蒙应用的适配进度。如果开发者发现通过 “出境易” 和 “卓易通”,用户就可以使用安卓应用,那么他们可能会对原生鸿蒙应用的开发投入减少。毕竟,开发原生应用需要投入更多的时间和精力,而且还需要适配不同的设备和系统版本。例如,某些大型应用厂商,原本计划投入大量资源进行原生鸿蒙应用的开发,但看到 “出境易” 和 “卓易通” 的情况后,可能会重新评估开发计划,甚至暂停原生应用的开发 。

从不同角度来看,对于那些有长远规划的开发者来说,他们依然会坚定地进行原生鸿蒙应用的开发。因为原生鸿蒙应用能够充分利用鸿蒙系统的特性,如分布式架构、微内核带来的高性能和安全性等,为用户提供更好的体验。而对于一些短期利益导向的开发者,可能会因为 “出境易” 和 “卓易通” 的存在而产生懈怠心理。但随着鸿蒙生态的不断发展和完善,以及用户对原生应用体验的追求,这种情况也会逐渐得到改善 。

在特定场景下的应用前景

在小众、边缘场景中,纯血鸿蒙运行安卓应用有着独特的优势。比如一些特定行业的专业应用,可能由于用户群体较小,开发者没有足够的动力去开发原生鸿蒙版本。但这些应用对于特定用户来说又是必不可少的,此时通过 “出境易” 或 “卓易通” 在纯血鸿蒙系统上运行安卓版的专业应用,就可以满足这些小众用户的需求。以某些科研领域的专业数据分析软件为例,这类软件在安卓系统上已经有了成熟的版本,但在鸿蒙系统上还没有原生应用。科研人员使用纯血鸿蒙设备时,就可以借助 “出境易” 或 “卓易通” 来运行安卓版的数据分析软件,从而不影响科研工作的开展 。

在出海境外场景中,纯血鸿蒙运行安卓应用更是有着广阔的应用可能性。由于鸿蒙系统在海外的生态建设还在不断完善中,很多海外常用的应用,如谷歌地图、YouTube、WhatsApp 等,目前还没有原生鸿蒙版本。而 “出境易” 的出现,正好解决了这一问题。用户在境外使用纯血鸿蒙设备时,通过 “出境易” 可以轻松安装和使用这些海外应用,满足出行导航、社交娱乐等需求。这不仅提升了用户在境外的使用体验,也为鸿蒙系统在海外的推广和发展奠定了基础 。

总结与展望

纯血鸿蒙能运行安卓应用,这一技术突破背后蕴含着复杂而精妙的技术原理,从底层的安卓兼容镜像 “anco_hmos.img”,到基于 iSulad 容器的运行环境,再到 “出境易”“卓易通” 这类特殊的 “应用商店” 形式,每一个环节都凝聚着技术团队的智慧与创新 。在性能表现上,虽然 CPU 性能损耗较小,但内存占用和功耗问题突出,用户体验也存在诸多不足,目前仅适用于小众、边缘场景和出海境外场景 。

展望未来,鸿蒙系统在生态建设方面,随着 “10 万应用” 目标的推进,有望吸引更多开发者加入,进一步完善应用生态。在技术发展上,或许会不断优化安卓应用的运行机制,解决当前存在的性能和体验问题,实现更高效、更稳定的运行。同时,随着鸿蒙原生应用的不断丰富和完善,其在万物互联的时代,将在智能家居、智能穿戴、车联网等领域发挥更大的作用,构建起更加庞大、智能的生态系统。

关于纯血鸿蒙运行安卓应用,你有怎样的看法和期待呢?欢迎在评论区留言讨论,一起交流对这一技术现象的见解,共同期待鸿蒙系统更加美好的未来 。