鸿蒙 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 多了新的可能性,而且目前看来效果也并不差,虽然肯定还有不少问题,但是至少它可用了不是么?

最后,「卓易通」其实属于用户卡 Bug 卡出来,而后还有人提取 App 的场景,目前来看应该没对外开发可用,虽然有「出境易」,但是明显限定了场景,所以“逃课”是不可取的,该适配还是要适配~

在这里插入图片描述

参考资料

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.rhkb.cn/news/484095.html

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

相关文章

请求响应:常见参数接收及封装(数组集合参数及日期参数)

数组参数 在前端页面的表单中,存在复选框元素,当提交表单到后端的时候,会将复选框中的全部内容提交到后端进行处理,由于复选框中往往存在很多数据,并且同复选框中数据名称相同,这样的请求参数叫做数组参数…

ASP.NET Core SignalR 入门

一、简介 📢 SignalR的主要功能是提供服务器和客户端之间的实时通信。当连接的客户端变得可用时,服务器可以立即向其推送内容,而不是等待客户端发起请求。这种功能特别适合需要实时更新数据的应用场景,如聊天应用、实时数据分析、…

介绍一下希尔排序法(c基础)

hi , I am 36 适合对象c语言初学者 希尔排序(Shell Sort)是一种改进的插入排序算法,它通过将原始数据分成多个子序列来改善插入排序在处理大规模无序数组时性能较差的情况。 基本原理 希尔排序的基本思想是先将整个待排序的记录序列分割成为…

Python知识分享第十九天-网络编程

网络编程 概述用来实现 网络互联 不同计算机上运行的程序间可以进行数据交互也叫Socket编程 套接字编程 三要素IP地址概述设备在网络中的唯一标识分类IPV4城域网13广域网22局域网31IPV6八字节 十六进制相关dos命令查看ipwindows: ipconfigmac和linux: ifconfig测试网络ping 域…

opencv-android编译遇到的相关问题处理

1、opencv-android sdk下载 下载地址:https://opencv.org/releases/ 下载安卓SDK即可 2、解压下载好的SDK 3、导入opencv的SDK到安卓项目中 导入步骤在/OpenCV-android-sdk/sdk/build.gradle文件的注释中写的非常详细,大家可安装官方给出的步骤导入。…

【CC2530开发基础篇】光敏和热敏传感器

一、前言 1.1 开发背景 本实验通过CC2530单片机接入光敏传感器和热敏传感器,进行数据采集与检测,并将检测结果通过串口终端输出。光敏传感器和热敏传感器是常见的环境感知设备,分别用于测量光强和温度。在实际应用中,这些传感器…

基于 LLamafactory 的异步API高效调用实现与速度对比

文章目录 背景摘要简介代码实现运行结果速度对比异步调用速度同步调用速度 背景 原先经常调用各家的闭源大模型的API,如果使用同步的方式调用,速度会很慢。为了加快 API 的调用速度,决定使用异步调用 API 的方式。 摘要 通过异步方式调用大…

贪心算法实例-问题分析(C++)

贪心算法实例-问题分析 饼干分配问题 有一群孩子和一堆饼干,每个小孩都有一个饥饿度,每个饼干都有一个能量值,当饼干的能量值大于等于小孩的饥饿度时,小孩可以吃饱,求解最多有多少个孩子可以吃饱?(注:每个小孩只能吃…

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器(模块化编写)

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器(模块化编写) 1. 实验要求2. 功能分析3. 模块设计4. 波形图4.1 按键消抖模块4.2 按键控制蜂鸣器模块 5.代码编写5.1 rtl代码5.2 测试代码 6. 代码仿真7. 添加约束文件并分析综合 在上期的内容中&…

linux环境GitLab服务部署安装及使用

一、GitLab介绍 GitLab是利用Ruby onRails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 二、GitLab安装 1、先安装相关依赖 yum -y install policycoreutils openssh-server openssh-clients postf…

视频码率到底是什么?详细说明

视频码率(Video Bitrate)是指在单位时间内(通常是每秒)传输或处理的视频数据量,用比特(bit)表示。它通常用来衡量视频文件的压缩程度和质量,码率越高,视频质量越好&#…

企业多套系统如何一步步实现对接完成闭环?

前言 很多企业用着用着突然发现企业内部有很多的系统,有ERP、CRM、MES、PLM各个系统还比较独立上线时间不一致,主数据包袱很重。这期就讲讲面对情况如何实施对接的案例。 客户背景 公司专注于健康科技领域,致力于打造国际化的专业健康管理…

MySQL大小写敏感、MySQL设置字段大小写敏感

文章目录 一、MySQL大小写敏感规则二、设置数据库及表名大小写敏感 2.1、查询库名及表名是否大小写敏感2.2、修改库名及表名大小写敏感 三、MySQL列名大小写不敏感四、lower_case_table_name与校对规则 4.1、验证校对规则影响大小写敏感4.1、验证校对规则影响排序 五、设置字段…

【HarmonyOS开发】超详细的ArkTS入门

安装DevEco Studio和新建项目就不多说了,可以移步官网 就可以把他们拆成这几个部分了,如果看不懂可以暂时忽略下面冒号后面的内容 装饰器:用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中Entry、Component和St…

如何在本地环境中模拟使用https

1.生成私钥文件,其中out输出路径可以自定义 openssl genrsa -out D:\localhost.key 2048 2 生成证书签名请求(CSR),根据第一步正确指定私钥路径,和签名请求 openssl req -new -key D:\localhost.key -out D:\localhos…

认识自定义协议

经过前面的介绍,我们知道TCP/IP协议有一组五层模型,从上往下为应用层、传输层、网络层、数据链路层和物理层,且在网络中传输的数据都必须经过这几层模型的封装和分用,作为程序员,我们最经常打交道的就是应用层。程序员…

在Node.js局域网调试https的Vue项目

需求: 最近在测试在网页端(HTML5)调用移动设备的定位等权限功能,发现某些功能是必须保证域名在https下的否则会出现不正常现象。 解决: 1.在线生成和证书 访问:CSR文件生成工具-中国数字证书CHINASSL …

接口性能优化宝典:解决性能瓶颈的策略与实践

目录 一、直面索引 (一)索引优化的常见场景 (二)如何检查索引的使用情况 (三)如何避免索引失效 (四)强制选择索引 二、提升 SQL 执行效率 (一)避免不必…

linux 系列服务器 高并发下ulimit优化文档

系统输入 ulimit -a 结果如下 解除 Linux 系统的最大进程数 要解除或提高 Linux 系统的最大进程数,可以修改 ulimit 设置和 /etc/security/limits.conf 文件中的限制。 临时修改 ulimit 设置 可以使用 ulimit 命令来查看和修改当前会话的最大进程数: 查…

LinuxTCP编程详解

目录 一、创建套接字 二、绑定套接字 示例 三、监听套接字 四、等待套接字 五、服务器端示例 六、连接套接字 七、客户端示例 八、Send和Recv C/S模式:Client客户端、Server服务器 TCP编程基于socket套接字实现,因此也习惯称为Socket编程 一、…