Linux 系統運行 Android 應用的幾種方案

這幾年,國產操作系統替代正在有條不紊地進行中。但生態是繞不過去的一道坎,指望應用廠商一下子完成國產系統適配也不現實。之前介紹過使用 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.pswp.cn/pingmian/72988.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72988.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72988.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python進階教程丨lambda函數

1. lambda函數是什么? 在 Python 里,lambda 函數是一種特殊類型的函數,也被叫做匿名函數。匿名”意味著它不需要像常規函數那樣使用 def 來進行命名。lambda lambda 函數本質上是簡潔的臨時函數 ,它適用于只需要簡單邏輯的場景&a…

TK矩陣系統:高效管理與智能化操作平臺

隨著TikTok等社交媒體平臺的快速發展,短視頻創作和內容運營逐漸成為互聯網行業的重要組成部分。為了幫助內容創作者、品牌運營商以及數據分析人員更高效地管理多個TikTok賬號并優化運營策略,TK矩陣系統提供了一種全新的解決方案,結合了先進的…

Spring Boot整合Apache BookKeeper教程

精心整理了最新的面試資料和簡歷模板,有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 Spring Boot整合Apache BookKeeper教程 1. 簡介 Apache BookKeeper 是一個高性能、持久化的分布式日志存儲系統,適用于需要強一致性和高吞吐量的…

蘋果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)。此過程使用專門的工具來跟蹤響應時間、吞吐量、資源利用率和錯誤率等指標。…

搭建Python量化開發環境:從零開始的完整指南

搭建Python量化開發環境:從零開始的完整指南 在量化投資領域,一個穩定且高效的開發環境是成功的關鍵。本文將引導你一步步搭建起自己的Python量化開發環境,確保你能夠順利開始編寫和運行量化策略。 🚀量化軟件開通 &#x1f68…

圖像分割的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中對應用戶的操作 : 事件和信號 拖拽窗口大小就會觸發…

詞頻統計 ccf-csp 2024-2-1

在學習了文本處理后,小 P 對英語書中的 n篇文章進行了初步整理。 具體來說,小 P將所有的英文單詞都轉化為了整數編號。 假設這 n 篇文章中共出現了 m個不同的單詞,則把它們從 1到 m進行編號。 這樣,每篇文章就簡化為了一個整數…

用爬蟲解鎖 Shopee 店鋪商品數據,開啟電商新洞察

在電商競爭白熱化的當下,Shopee 作為全球知名的電商平臺,匯聚了海量的商品與商機。對于電商從業者、數據分析師、創業者來說,精準掌握 Shopee 店鋪的商品信息,就如同手握一把開啟財富大門的鑰匙。而爬蟲技術,無疑是幫助…

k8s中的service解析

k8s中的service解析 在k8s中,我們可以通過pod來創建服務。 然而,當我們創建多個 Pod 來提供同一項服務時,直接通過 Pod IP 進行訪問會變得復雜且不可維護。因此,Kubernetes 提供了 Service 這一抽象概念,用于對外暴露…

git 命令回退版本

1、查看提交記錄 git log --oneline # 簡化的提交歷史&#xff08;推薦&#xff09; # 或 git log # 完整提交歷史2、版本回退 git reset --hard <commit-hash>3、如果已推送過代碼到遠程倉庫&#xff0c;需強制推送更新 git push -f

深度學習與傳統算法在人臉識別領域的演進:從Eigenfaces到ArcFace

一、傳統人臉識別方法的發展與局限 1.1 Eigenfaces&#xff1a;主成分分析的經典實踐 算法原理 Eigenfaces是基于主成分分析&#xff08;PCA&#xff09;的里程碑式方法。其核心思想是將人臉圖像視為高維向量&#xff0c;通過協方差矩陣計算特征向量&#xff08;即特征臉&…