鸿蒙 Next 可兼容运行 Android App,还支持出海 GMS?

最近 「出境易」和 「卓易通」 应该算是鸿蒙和 Android 开发圈“突如其来”的热门话题,而 「出境易」可能更高频一些,主要也是 Next 5.0 被大家发现刚上架了一个名为「出境易」的应用,通过这个 App 用户可以直接运行不兼容 Next 的 Android App,并使用 GMS 支持

本文主要来自目前互联网资料整合。

「出境易」可以先简单理解为是“在鸿蒙 NEXT 里运行 Android App 的工具” ,同样 「卓易通」 也是,它们都类似通过”虚拟机“的形式来运行的安卓“子系统”,在性能还能接受的情况下,让 Android App 可以运行到 NEXT 上,另外 「出境易」 还通过 Micro G 来支持到 GMS 环境。

但是其实严格来说并不是虚拟机,而是容器。

当然,两者也存在一些区别,例如:

  • 「出境易」会包含了一个定制的 Micro G,所以理论上应该是包含 Google Play,但是 「出境易」会有类似“白名单”的机制,仅有合作的 APP 可以安装,会检查签名,所以只有部分特定的 Android App 可以通过它来安装并运行
  • 「卓易通」则使用黑名单方式,仅对鸿蒙 Next 上架的应用无法安装,也会检查签名

Micro G 可以理解为是给无法按照 GMS 的机器使用 GMS 的一种方式,例如在之前「非纯血」鸿蒙上,通过 Micro G + Aurora Store ,再配合“不知名开发者”的 hw 插件,就可以让「非纯血」鸿蒙直接使用 GMS:

当然,其实「出境易」和 「卓易通」两者其实场景可以搭配使用,例如使用卓易通可以访问 Google Play ,然后通过它来下载和安装其他应用,然后再使用 「出境易」的 GMS·····

所以理论上,在「出境易」的环境内,用户可以直接安装白名单上的软件,然后通过界面跳转打开工具,进入到附带的环境「卓易通」和文件管理,去解锁更多支持·····

而其实「出境易」和 「卓易通」本身就是一个 Android Apk,可以直接在安卓系统上运行,而在纯血 Next 上,安装「出境易」的过程中则需要下载较大的资源包,并且需要重启系统,而在运行之后,「出境易」和 「卓易通」属于“独立环境”,例如内部开启的代理软件无法运用到纯血的 Next App 上。

大概理解:「出境易」对应的是 Google Play,「卓易通」对应的是华为应用商店(或者国内应用商店)

在实现上,看网友们的测试,目前技术支持应该是华为自研的 iSulad 通用容器引擎,这个在早期就有大佬在鸿蒙 Next 底层发现了 iSulad 进程支持。

iSulad 支持多种容器 runtime,包括 lxc、runc 和 kata,例如大家熟知的 lxc (Linux Containers) 就是 C 语言编写的开源 runtime,属于资源占用少,适用于对底噪资源限制高的场景,是 iSulad 默认的 runtime。

iSulad 作为新的通用容器引擎,官方表示它具有轻、快、 易、灵的特点,这个和子弹蚂蚁"小个头、大能量"的形象不谋而合,所以选用了这个 logo

目从官方的资料看, iSulad 的特点如下:

  • 轻量语言:C/C++,Rust on the way

  • 北向接口:提供CRI接口,支持对接Kubernets;同时提供便捷使用的命令行

  • 南向接口:支持 OCI runtime 和镜像规范,支持平滑替换

  • 容器形态:支持系统容器、虚机容器等多种容器形态

  • 扩展能力:提供插件化架构,可根据用户需要开发定制化插件

而从目前看到资料猜测,这些 android 容器的镜像应该不包含独立 linux 环境,因为 hongmeng kernel 本身可以兼容linux abi,所以不需要独立内核:

image-20241204163104783

而配合 device info hw 可以知道容器对应安卓 12、API 31:

image-20241204163121947

对于容器性能,网友测试结论大概是:

  • CPU大概 8 - 9 成左右性能
  • GPU性能几乎无损
  • 有屏幕锁帧的情况
  • 内存占用较大,例如上来就是 8GB 初始化占用
  • 耗电量预估略大于正常,但我没测

从目前结果上看,鸿蒙 NEXT 配合 「出境易」+ 「卓易通」,也是一种变相的双“系统”模式,这反而变相印证了早期的“谣言”:

总的来说,这是好事,至少让 鸿蒙 NEXT 多了新的可能性,而且目前看来效果也并不差,虽然肯定还有不少问题,但是至少它可用了不是么?

参考资料

https://www.zhihu.com/question/5771833354/answer/47159567135

https://zhuanlan.zhihu.com/p/10576812652

https://www.bilibili.com/video/BV1Q96NYkEU2/

https://cn.club.vmall.com/mhw/consumer/cn/community/mhwnews/article/id_1000000000002180550/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/61835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows实现Jenkins的自动化部署

什么是Jenkins?Jenkins有什么用? 按照我个人的理解,Jenkins就是一个很简单实现自动化工具,按照了Jenkins你就可以拥有一个类似小爱同学一样的管家,你可以通过你的手机步骤一个任务给你的小爱同学,例如打开…

合规性要求对漏洞管理策略的影响

讨论漏洞管理中持续面临的挑战,包括确定漏洞的优先级和解决修补延迟问题。 介绍合规性要求以及自动化如何简化漏洞管理流程。 您认为为什么尽管技术不断进步,但优先考虑漏洞和修补延迟等挑战仍然存在? 企业基础设施日益复杂,攻…

挑战用React封装100个组件【004】

项目地址 https://github.com/hismeyy/react-component-100 组件描述 组件适用于展示图片的地方,提供了small,medium,large三种大小。可以删除图片,也可以全屏预览图片。 样式展示 前置依赖 今天我们的这个挑战需要用用到了…

python通过ODBC连接神通数据库

1、安装神通数据库 2、安装python 3、安装pyodbc pip3 install pyodbc-5.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 注:pyodbc要和python版本相对应 4、安装unixodbc 5、配置神通数据库ODBC数据源 6、示例代码如下 #!/usr/bin/python…

【阅读记录-章节5】Build a Large Language Model (From Scratch)

目录 5. Pretraining on unlabeled data5.1 Evaluating generative text models5.1.1 Evaluating generative text models5.1.2 Calculating the text generation loss评估模型生成文本的质量 5.1.3 Calculating the training and validation set losses 5.2 Training an LLM5.…

Ubuntu Linux操作系统

一、 安装和搭建 Thank you for downloading Ubuntu Desktop | Ubuntu (这里我们只提供一个下载地址,详细的下载安装可以参考其他博客) 二、ubuntu的用户使用 2.1 常规用户登陆方式 在系统root用户是无法直接登录的,因为root用户的权限过…

git查看本地库对应的远端库的地址

git查看本地库对应的远端库的地址 git remote -v 如果想要查看特定的远端库的url地址,可以使用如下命令,其中origin是默认的远端库的名称,可以使用其他远端库的名称 get remote get-url origin

C# yield 关键字

文章目录 前言一、yield 关键字的语法形式及使用场景(一)yield return(二)yield break 二、yield 关键字的工作原理三、yield 关键字的优势与应用场景(一)优势(二)应用场景 前言 在 …

QT6学习第八天 QFrame 类

QT6学习第八天 QFrame 类族QLabel 标签部件按钮部件QLineEdit 行编辑器部件QAbstractSpinBoxQAbstractSlider 今天来学一学 QFrame 类。 QFrame 类族 QFrame 类是带有边框的部件的基类。它的子类包括常用的标签部件 QLabel、以及 QLCDNumber、QSplitter、QStackedWidget、QToo…

【2024 re:Invent现场session参加报告】打造生成式AI驱动的车间智能助手

前言 这次参加了 re:Invent 2024 的 Builders Session 「Building a generative AI–powered shop floor assistant」,在这里和大家分享一下内容! Session 概要 Learn how to build a generative AI assistant to analyze data from industrial IoT se…

【C++】数组

1.概述 所谓数组,就是一个集合,该集合里面存放了相同类型的数据元素。 数组特点: (1)数组中的每个数据元素都是相同的数据类型。 (2)数组是有连续的内存空间组成的。 2、一维数组 2.1维数组定…

[VUE]框架网页开发02-如何打包Vue.js框架网页并在服务器中通过Tomcat启动

在现代Web开发中,Vue.js已经成为前端开发的热门选择之一。然而,将Vue.js项目打包并部署到生产环境可能会让一些开发者感到困惑。本文将详细介绍如何将Vue.js项目打包,并通过Tomcat服务器启动运行。 1. 准备工作 确保你的项目能够正常运行,项…

ESP32-S3模组上跑通ES8388(13)

接前一篇文章:ESP32-S3模组上跑通ES8388(12) 二、利用ESP-ADF操作ES8388 2. 详细解析 上一回解析了es8388_init函数中的第6段代码,本回继续往下解析。为了便于理解和回顾,再次贴出es8388_init函数源码,在…

openEuler 22.03 使用cephadm安装部署ceph集群

目录 目的步骤规格步骤ceph部署前准备工作安装部署ceph集群ceph集群添加node与osdceph集群一些操作组件服务操作集群进程操作 目的 使用ceph官网的cephadm无法正常安装,会报错ERROR: Distro openeuler version 22.03 not supported 在openEuler上实现以cephadm安装部…

DevOps工程技术价值流:GitLab源码管理与提交流水线实践

在当今快速迭代的软件开发环境中,DevOps(开发运维一体化)已经成为提升软件交付效率和质量的关键。而GitLab,作为一个全面的开源DevOps平台,不仅提供了强大的版本控制功能,还集成了持续集成/持续交付(CI/CD)…

Spring 邮件发送

Spring 邮件发送 1. 主要内容(了解) 2. JavaMail 概述(了解) JavaMail,顾名思义,提供给开发者处理电⼦邮件相关的编程接⼝。JavaMail 是由 Sun 定义的⼀套收发电⼦邮件的 API,它可以⽅便地执⾏⼀…

VSCode如何关闭Vite项目本地自启动

某些情况下VSCode打开Vite项目不需要自动启动,那么如何关闭该功能 文件>首选项>设置 搜索vite 将Vite:Auto Start 勾选取消即可

一种多功能调试工具设计方案开源

一种多功能调试工具设计方案开源 设计初衷设计方案具体实现HUB芯片采用沁恒微CH339W。TF卡功能网口功能SPI功能IIC功能JTAG功能下行USB接口 安路FPGA烧录器功能Xilinx FPGA烧录器功能Jlink OB功能串口功能RS232串口RS485和RS422串口自适应接口 CAN功能烧录器功能 目前进度后续计…

Spark和MapReduce场景应用和区别

文章目录 Spark和MapReduce场景应用和区别一、引言二、MapReduce和Spark的应用场景1. MapReduce的应用场景2. Spark的应用场景 三、MapReduce和Spark的区别1. 内存使用和性能2. 编程模型和易用性3. 实时计算支持 四、使用示例1. MapReduce代码示例2. Spark代码示例 五、总结 Sp…

Python办公——openpyxl处理Excel每个sheet每行 修改为软雅黑9号剧中+边框线

目录 专栏导读背景1、库的介绍①:openpyxl 2、库的安装3、核心代码4、完整代码5、最快的方法(50万行44秒)——表头其余单元格都修改样式总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍…