Anbox 容器中的 Android

2021-09-23 16:43:53 字數 2999 閱讀 7750

anbox 使用 linux 命名空間(user、pid、uts、net、mount、ipc)來在容器中執行完整的 android 系統,並在任何基於 gnu linux 平台上提供 android 應用。

容器內的 android 無法直接訪問任何硬體。所有硬體訪問都通過主機上的 anbox 守護程序進行。我們重用基於 qemu 的模擬器實現的 android 中的 gl、es 加速渲染。容器內的 android 系統使用不同的管道與主機系統通訊,並通過它傳送所有硬體訪問命令。

有關更多詳細資訊,請參考下文件:

anbox 目前適合桌面使用,但也用在移動作業系統上,如 ubuntu touch、sailfish os 或 lune os。然而,由於 android 程式的對映目前只針對桌面環境,因此還需要額外的工作來支援其他的使用者介面。

android 執行時環境帶有乙個基於 android 開源專案映象的最小自定義 android 系統。所使用的映象目前基於 android 7.1.1。

目前,安裝過程包括一些新增額外元件到系統的步驟。包括:

為了使這個過程盡可能簡單,我們將必要的步驟繫結在乙個 snap(見  ) 中,稱之為 「anbox-installer」。這個安裝程式會執行所有必要的步驟。你可以在所有支援 snap 的系統執行下面的命令安裝它。

請注意,我們還不支援除所有 linux 發行版。請檢視下面的章節了解支援的發行版。

執行下面的命令進行安裝。

$ anbox

-installer

它會引導你完成安裝過程。

注意: anbox 目前處於 pre-alpha 開發狀態。不要指望它具有生產環境你需要的所有功能。你肯定會遇到錯誤和崩潰。如果你遇到了,請不要猶豫並報告它們!

注意: anbox snap 目前 完全沒有約束,因此它只能從邊緣渠道獲取。正確的約束是我們想要在未來實現的,但由於 anbox 的性質和複雜性,這不是乙個簡單的任務。

目前我們官方支援下面的 linux 發行版:

未測試但可能支援的:

從原始碼構建

要構建 anbox 執行時不需要特別了解什麼,我們使用 cmake 作為構建系統。你的主機系統中應已有下面這些構建依賴:

在 ubuntu 系統中你可以用下面的命令安裝所有的依賴:

$ 

sudo

apt install build

-essential cmake cmake

-data debhelper dbus \

google

-mock libboost

-dev libboost

-filesystem

-dev libboost

-log

-dev \

libboost

-iostreams

-dev libboost

-program

-options

-dev libboost

-system

-dev \

libboost

-test

-dev libboost

-thread

-dev libcap

-dev libdbus-1

-dev \

libdbus

-cpp

-dev libegl1

-mesa

-dev libgles2

-mesa

-dev libglib2.0

-dev \

libglm

-dev libgtest

-dev liblxc1 libproperties

-cpp

-dev libprotobuf

-dev \

libsdl2

-dev lxc

-dev pkg

-config protobuf

-compiler

之後用下面的命令構建 anbox:

$ 

mkdir

build

$

cdbuild

$ cmake

..

$

make

乙個簡單的命令會將必要的二進位制安裝到你的系統中,如下。

$ 

make

install

如果你想要構建 anbox snap,你可以按照下面的步驟:

$ 

mkdir

android

-images

$ cp/

path/to

/android

.img android

-images

/android

.img

$ snapcraft

結果會有乙個 .snap 檔案,你可以在支援 snap 的系統上安裝。

$ snap install 

--dangerous

--devmode anbox_1_amd64

.snap

執行 anbox

在專案源**的子目錄下,你可以找到額外的關於 anbox 的文件。

有興趣可以看下:

如果你發現了乙個 anbox 問題,請提交 bug。

原文發布時間為:2017-04-21

anbox 使用情況 最近比較火的Anbox專案

anbox是什麼?anbox是android in a box的縮寫,可以在linux系統中執行android應用,就像wine一樣在linux系統中執行windows應用一樣 因為anbox通過lxc容器技術在gnu linux系統中執行著整個android系統,所以概念上任何應用都可以執行。為什...

開源Anbox在Linux中執行Android應用

anbox 以基於容器的方式,在像 ubuntu 這樣的常規的 gnu linux 系統上啟動乙個完整的 android 系統。概述 anbox 使用 linux 命名空間 user pid uts net mount ipc 來在容器中執行完整的 android 系統,並在任何基於 gnu lin...

Mac中編譯FFmpeg教程 Android版

本篇文章主要介紹在mac環境中,編譯ffmpeg生成so庫。本次編譯的環境如下 export android ndk root users jiangshuaijie android ndk r14b build export path 然後在命令列中輸入ndk build測試環境是否配置成功。sl...