鸿蒙 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你就可以拥有一个类似小爱同学一样的管家,你可以通过你的手机步骤一个任务给你的小爱同学,例如打开…

Python网络爬虫技术详解与实践案例

Python网络爬虫技术详解与实践案例 在大数据和人工智能盛行的今天,数据的获取与分析成为许多项目和业务的关键。网络爬虫作为一种自动化的数据采集工具,广泛应用于数据挖掘、市场分析、情报收集等领域。本文将详细介绍Python网络爬虫的基本概念、工作流程、进阶技巧,并附上…

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

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

挑战用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.…

深入理解 Axios 拦截器的执行链机制

深入理解 Axios 拦截器的执行链机制 在现代前端开发中,Axios 是最流行的 HTTP 请求库之一,而 拦截器(Interceptor)功能是其核心特性之一。通过拦截器,我们可以在请求发送前或响应返回后进行灵活的预处理或后处理。然而…

ElementUI:el-drawer实现在父组件区域内打开抽屉组件非全屏

我们在开发ElementUI的时候遇到抽屉组件全屏的问题,但是我们需要在指定div中展示出来,上代码: 1、在el-drawer中增加属性 el-drawerstyle"position: absolute"z-index"-1":append-to-body"false">// do s…

电机驱动MCU介绍

电机驱动MCU是一种专为电机控制设计的微控制器单元,它集成了先进的控制算法和高性能的功率输出能力。 电机驱动MCU采用高性能的处理器核心,具有快速的运算速度和丰富的外设接口。它内置了专业的电机控制算法,包括PID控制、FOC(Fi…

Ubuntu Linux操作系统

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

Vue 前端 el-input 如何实现输入框内容始终添加在尾部%

要在 el-input 输入框的尾部添加 %,你可以通过两种方式来实现: 使用 suffix 插槽:这是最直接和最常用的方法。使用 append 插槽:如果你需要在输入框内或者右侧显示其他内容。 方法 1:使用 suffix 插槽 el-input 提供…

开箱即用,阿里开源!专业AI 聊天界面工具包:Ant Design X

Ant Design X是一个基于Ant Design体系的创新解决方案,为构建高效的AI交互界面提供了便利和支持。从精细的原子组件到快速集成的模型服务,Ant Design X让开发者能轻松应对各种需求。本文将结合实际场景,展示Ant Design X的功能与使用方法。 为…

kernel crash数据解析

crash数据解析 crash解析工具下载和编译方法如下: git clone https://github.com/crash-utility/crash.git cd crash; make targetARM64 crash工具解析ramdump文件: 1. 将dump 出来的ramdump 文件拷贝到 Linux 系统 2. 找到当前Linux 内核对应的vm…

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…

[node.js] [HTTP/S] 实现 requests 发起 HTTP/S/1.1/2.0 请求

node.js 使用 V8 引擎来编译运行 javascript 代码,与浏览器中的环境不同的是,node.js 不包含 DOM 和 BOM 模块。 本文使用 node.js 的官方库来实现一个简单的 requests() 函数,可以用来发送 HTTP/1.1 和 HTTP/2.0 的请求。有关 HTTP/1.1 和 …

spring boot 微服务 redis集群配置

spring boot 微服务 redis集群配置 1.redis 有三种集群模式 主从模式 哨兵模式&#xff08;Sentinel&#xff09; Cluster模式引入redis依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis&…

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

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

Golang HTTP 标准库的使用实现原理

一.使用&#xff1a; 启动http服务&#xff1a; package mainimport "net/http"func main() {http.HandleFunc("/wecunge", func(w http.ResponseWriter, r *http.Request) {w.Write([]byte("wecunge"))})http.ListenAndServe(":8080&quo…