网站建设 中企动力西安/渠道推广费用咨询

网站建设 中企动力西安,渠道推广费用咨询,wcm 可以做网站吗,赤壁网站开发这几年,国产操作系统替代正在有条不紊地进行中。但生态是绕不过去的一道坎,指望应用厂商一下子完成国产系统适配也不现实。之前介绍过使用 Wine 运行 Windows 应用的方案,减少了国产系统应用偏少的难题。比如我在办公室使用最多的企业微信&am…

这几年,国产操作系统替代正在有条不紊地进行中。但生态是绕不过去的一道坎,指望应用厂商一下子完成国产系统适配也不现实。之前介绍过使用 Wine 运行 Windows 应用的方案,减少了国产系统应用偏少的难题。比如我在办公室使用最多的企业微信,一直没有开发 Linux 版本,就是通过 Wine 运行的。

除了 Windows 应用,还有新的目标,那就是手机应用。这些年移动互联网蓬勃发展,手机 app 从数量上已经远远超过桌面应用,如果能在桌面系统运行手机应用,那也能一定程度补齐国产操作系统的短板。手机应用主要是安卓和 iOS 两家。iOS 系统由于其封闭性,不太容易兼容,所以现在的方案基本上都是针对 Android 应用。

总体说来,在 Linux 系统上运行 Android 应用,有如下方案。

1. QEMU 模拟器方案

QEMU 基于虚拟化技术创建完整的 Android 虚拟机。通过模拟硬件设备(CPU、内存、屏幕等)运行完整的 Android 系统镜像,支持多版本 Android 和自定义设备配置。

这种方案支持完整的 Android 系统功能,适用于开发测试复杂的应用(如依赖特定传感器或 GPU 加速的应用)。比如谷歌官方的安卓模拟器就是在 QEMU 的基础上定制的。

但这种方案的缺点也是非常明显,模拟器启动非常缓慢,使用 Android 模拟器做过开发的同学应该深有体会,而且模拟器还需要模拟 ARM 指令,效率低下,所以在模拟器里运行安卓程序也是非常缓慢。

这种方法用来做开发调试还可接受,但如果只是为了运行安卓应用,那是万万不可能的。

2. anbox 容器化方案

Anbox 是“Android in a Box”的简称,是一种基于容器化技术的开源方案,目标是让 Android 应用程序直接在 Linux 系统上运行。

通过 Linux 容器(LXC)技术实现 Android 运行时环境的隔离,复用 Linux 内核直接执行应用,无需虚拟化硬件。硬件访问请求统一通过宿主机的 anbox 守护进程转发。

Anbox  借了 QEMU 模拟器的 OpenGL ES 渲染方案,通过虚拟化管道(fast pipes)实现图形加速,支持 Android 应用的窗口化显示,与  Linux 桌面环境无缝集成。

听起来很美好,但该项目已于2023年停止更新,究其原因,可能是兼容性差,依赖非标准内核模块 binder (进程间通信)和 ashmem (共享内存),显卡兼容性也不好,很多应用只是那能用,但跑起来存在诸多问题。

在 anbox 的主页上,建议用户转向 waydroid 项目和 anbox cloud(由 Ubuntu 支持)。

3. waydroid 容器化方案

Waydroid 和 anbox 类似,利用 Linux 容器(LXC) 技术,通过命名空间(如用户、进程、网络、挂载等)隔离 Android 运行时环境。它直接复用宿主机的 Linux 内核,无需虚拟化硬件,显著降低资源开销。Android 系统的文件系统(如  /system 、 /data )以独立挂载的方式与宿主机隔离,确保应用数据互不干扰。

Waydroid 支持自由调整窗口大小,模拟手机或平板界面。而且 Android 应用可自动添加到 Linux 应用菜单,支持拖拽文件互通。

正如名字所示,该方案要求 Linux 系统需支持 Wayland 显示协议 和 systemd。内核需启用  binder 、 ashmem  等模块,建议使用 Linux 5.4+ 版本。

Waydroid 支持的 Android 系统版本为 11 和12,比 anbox (只支持 Android 7) 更加友好。

4. 麒麟 KMRE

麒麟软件开源的 KMRE(Kylin Mobile Runtime Environment,麒麟移动运行环境) 是国内首个基于容器化技术的商用移固融合方案,旨在通过兼容 Android 应用生态,解决 Linux 操作系统应用短缺的难题。

KMRE 和 anbox、Waydroid 类似,基于 Linux 容器(LXC) 技术实现 Android 与 Linux 的深度集成。通过适配 OpenGL|ES 和 Wayland 协议,支持国际主流显卡(如 NVIDIA、AMD)及国产显卡(如摩尔线程)的图形加速。

此外,KMRE 改进了 窗口管理,Android 应用窗口与 Linux 桌面窗口统一调度,支持多窗口自由缩放、分屏显示。

而且还实现了数据互通,剪贴板、文件系统、输入法、通知中心等与 Linux 桌面共享。

KMRE 在国产化支持方面做得不错,覆盖 x86 和 ARM 架构,适配飞腾、兆芯、海光、Intel、AMD 等 CPU,以及国产显卡。

5. 小结

上面的各种方案或多或少都有一些缺点,只是为了生态需求采用的方案,我们当然希望软件开发商都推出 Linux 适配版本,彻底抛弃 wine 和 Android 模拟器才是最终方案。

话说全村的希望鸿蒙 PC 会如何应对这一难题,让我们拭目以待。

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

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

相关文章

Python进阶教程丨lambda函数

1. lambda函数是什么? 在 Python 里,lambda 函数是一种特殊类型的函数,也被叫做匿名函数。匿名”意味着它不需要像常规函数那样使用 def 来进行命名。lambda lambda 函数本质上是简洁的临时函数 ,它适用于只需要简单逻辑的场景&a…

苹果HFS+56TB存储MOV文件出错的恢复方法

HFS文件系统是Apple电脑中默认的最常见的文件系统。HFS来源于UNIX,优势就是稳定性,另外HFS是支持日志功能的,所以很多存储设备也采用了HFS文件系统。再稳定的文件系统也有“马失前蹄”的时候,下面就来聊下HFS出现文件出错、丢失时…

电源电路篇

电源电路篇 一、LDO-Low Dropout Regulator(低压差线性稳压器)1.1 AMS1117-3.3V芯片 二、DCDC-Direct Current to Direct Current(开关稳压器)2.1 降压(Buck)电路2.1.1 TPS5450-5V芯片 一、LDO-Low Dropout Regulator(低压差线性稳压器) LDO是一种线性稳压器,用于提…

java项目之在线购物系统(源码+文档)

项目简介 在线购物系统实现了以下功能: 使用在线购物系统的用户分管理员和用户两个角色的权限子模块。 管理员所能使用的功能主要有:主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等。 用户可以实现主页、个人中心、我的…

go语言中空结构体

空结构体(struct{}) 普通理解 在结构体中,可以包裹一系列与对象相关的属性,但若该对象没有属性呢?那它就是一个空结构体。 空结构体,和正常的结构体一样,可以接收方法函数。 type Lamp struct{}func (l Lamp) On()…

Unity实现连连看连线效果

1.一个比较简单的向量计算,用的LineRenderer实现; 已知起始A点和终点C点,求B点; 先计算A点到C点的向量取归一化当做方向,再给定一个“模长”(B点到A点的模长)乘以该方向,最后加上L…

【MySQL】触发器与存储引擎

目录 触发器基本概念触发器操作创建触发器NEW 与 OLD查看触发器删除触发器 注意事项 存储引擎基本概念基本操作查询当前数据库支持的存储引擎查看当前的默认存储引擎查看某个表用的存储引擎创建表时指定存储引擎修改表的存储引擎 触发器 基本概念 概述: 触发器&a…

能“嘎嘎提升”提升用户居住体验的智能家居物联网框架推荐!

智能家居在日常生活中给我们的带来了更多的便利,更让有些用户切实地体会到了科技的魅力,对于想要打造属于自己的智能家居氛围感的用户们,以下是一些能够帮助提升居住体验的智能家居物联网框架及应用: 1. 涂鸦智能(Tuy…

DevEco Studio的使用

目录 1.创建ArkTS工程 2.ArkTS工程目录结构(Stage模型) 构建第一个页面 构建第二个页面 实现页面间的跳转 1.创建ArkTS工程 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择…

性能监控——vmstat

性能监控——vmstat ​ 性能监控是对 IT 系统运行效率和有效性的系统观察和测量。它涉及收集、分析和报告各种组件(包括应用程序、网络、服务器和数据库)的关键性能指标 (KPI)。此过程使用专门的工具来跟踪响应时间、吞吐量、资源利用率和错误率等指标。…

图像分割的mask有空洞怎么修补

分享一个对实例分割mask修补的方法,希望对大家有所帮助。 1. 这是我准备分割的图片 2 分割结果 可以看到衣服部分有一些没分割出来,二值化图片能清晰看到衣服部分有些黑色未分出的地方。 3 补全mask区域 import cv2 import numpy as npdef fill_mask_h…

Qt 控件概述 QLabel

目录 QLabel显示类控件 label如何做到与窗口同步变化 边框 Frame QLabel显示类控件 ​​ ​​ textFormat :设置文件格式 ​ Pixmap :标签图片 label如何做到与窗口同步变化 Qt中对应用户的操作 : 事件和信号 拖拽窗口大小就会触发…

git 命令回退版本

1、查看提交记录 git log --oneline # 简化的提交历史&#xff08;推荐&#xff09; # 或 git log # 完整提交历史2、版本回退 git reset --hard <commit-hash>3、如果已推送过代码到远程仓库&#xff0c;需强制推送更新 git push -f

浅分析 PE3R 感知高效的三维重建

"近期&#xff0c;二维到三维感知技术的进步显著提升了对二维图像中三维场景的理解能力。然而&#xff0c;现有方法面临诸多关键挑战&#xff0c;包括跨场景泛化能力有限、感知精度欠佳以及重建速度缓慢。为克服这些局限&#xff0c;我们提出了感知高效三维重建框架&#…

汇编与反汇编:DEBUG 命令使用指南

前言 汇编语言是计算机底层编程语言&#xff0c;直接与 CPU 指令集对应。掌握汇编语言和调试工具&#xff08;如DEBUG&#xff09;是深入理解计算机工作原理的关键。本文将介绍汇编与反汇编的基本概念&#xff0c;并详细讲解如何使用 DEBUG 命令进行调试和内存操作。 目录 一、…

栈/堆/static/虚表

在 C 里&#xff0c;栈空间主要用来存放局部变量、函数调用信息等。下面为你介绍栈空间在 C 里的运用方式。 1. 局部变量的使用 在函数内部定义的变量会被存于栈空间&#xff0c;当函数执行结束&#xff0c;这些变量会自动被销毁。 #include <iostream>void exampleFu…

搭建个人博客教程(Hexo)

如何快速搭建一套本地的博客系统呢&#xff1f;这里有一套gitNode.jsHexo的部署方案来进行解决。 安装git Git 是一款免费开源的分布式版本控制系统&#xff0c;由 Linus Torvalds 于 2005 年为 Linux 内核开发设计。它通过本地仓库和远程仓库实现代码管理&#xff0c;支持分支…

鸿蒙NEXT开发问题大全(不断更新中.....)

目录 问题1&#xff1a;鸿蒙NEXT获取华为手机的udid ​问题2&#xff1a;[Fail]ExecuteCommand need connect-key? 问题3&#xff1a;测试时如何安装app包 问题1&#xff1a;鸿蒙NEXT开发获取华为手机的udid hdc -t "设备的序列号" shell bm get --udid 问题2&…

LiteratureReading:[2016] Enriching Word Vectors with Subword Information

文章目录 一、文献简明&#xff08;zero&#xff09;二、快速预览&#xff08;first&#xff09;1、标题分析2、作者介绍3、引用数4、摘要分析&#xff08;1&#xff09;翻译&#xff08;2&#xff09;分析 5、总结分析&#xff08;1&#xff09;翻译&#xff08;2&#xff09;…

ZMC600E,多核异构如何成就机器人精准控制?

ZMC600E主站控制器凭借其多核异构处理器的强大性能&#xff0c;实现了高算力与高实时性的完美平衡&#xff0c;让机器人动作流畅、精准无误。接下来&#xff0c;让我们深入了解其内核结构的奥秘。 在ZMC600E主站控制器控制机器人的时候&#xff0c;可以精准的控制机器人执行各种…