您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Linux中怎么運(yùn)行Android應(yīng)用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
概述
Anbox 使用 Linux 命名空間(user、pid、uts、net、mount、ipc)來在容器中運(yùn)行完整的 Android 系統(tǒng),并在任何基于 GNU Linux 平臺(tái)上提供 Android 應(yīng)用。
容器內(nèi)的 Android 無法直接訪問任何硬件。所有硬件訪問都通過主機(jī)上的 anbox 守護(hù)進(jìn)程進(jìn)行。我們重用基于 QEMU 的模擬器實(shí)現(xiàn)的 Android 中的 GL、ES 加速渲染。容器內(nèi)的 Android 系統(tǒng)使用不同的管道與主機(jī)系統(tǒng)通信,并通過它發(fā)送所有硬件訪問命令。
有關(guān)更多詳細(xì)信息,請(qǐng)參考下文檔:
Android 硬件 OpenGL ES 仿真設(shè)計(jì)概述
Android QEMU 快速管道
Android 的 “qemud” 復(fù)用守護(hù)進(jìn)程
Android qemud 服務(wù)
Anbox 目前適合桌面使用,但也用在移動(dòng)操作系統(tǒng)上,如 Ubuntu Touch、Sailfish OS 或 Lune OS。然而,由于 Android 程序的映射目前只針對(duì)桌面環(huán)境,因此還需要額外的工作來支持其他的用戶界面。
Android 運(yùn)行時(shí)環(huán)境帶有一個(gè)基于 Android 開源項(xiàng)目鏡像的最小自定義 Android 系統(tǒng)。所使用的鏡像目前基于 Android 7.1.1。
安裝
目前,安裝過程包括一些添加額外組件到系統(tǒng)的步驟。包括:
啟用用于 binder 和 ashmen 的非發(fā)行的樹外內(nèi)核模塊。
使用 udev 規(guī)則為 /dev/binder 和 /dev/ashmem 設(shè)置正確權(quán)限。
能夠啟動(dòng) Anbox 會(huì)話管理器作為用戶會(huì)話的一個(gè)啟動(dòng)任務(wù)。
為了使這個(gè)過程盡可能簡(jiǎn)單,我們將必要的步驟綁定在一個(gè) snap(見 https://snapcraft.io ) 中,稱之為 “anbox-installer”。這個(gè)安裝程序會(huì)執(zhí)行所有必要的步驟。你可以在所有支持 snap 的系統(tǒng)運(yùn)行下面的命令安裝它。
$ snap install --classic anbox-installer
另外你可以通過下面的命令下載安裝腳本。
$ wget https://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh -O anbox-installer
請(qǐng)注意,我們還不支持除所有 Linux 發(fā)行版。請(qǐng)查看下面的章節(jié)了解支持的發(fā)行版。
運(yùn)行下面的命令進(jìn)行安裝。
$ anbox-installer
它會(huì)引導(dǎo)你完成安裝過程。
注意: Anbox 目前處于 pre-alpha 開發(fā)狀態(tài)。不要指望它具有生產(chǎn)環(huán)境你需要的所有功能。你肯定會(huì)遇到錯(cuò)誤和崩潰。如果你遇到了,請(qǐng)不要猶豫并報(bào)告它們!
注意: Anbox snap 目前 完全沒有約束,因此它只能從邊緣渠道獲取。正確的約束是我們想要在未來實(shí)現(xiàn)的,但由于 Anbox 的性質(zhì)和復(fù)雜性,這不是一個(gè)簡(jiǎn)單的任務(wù)。
已支持的 Linux 發(fā)行版
目前我們官方支持下面的 Linux 發(fā)行版:
Ubuntu 16.04 (xenial)
未測(cè)試但可能支持的:
Ubuntu 14.04 (trusty)
Ubuntu 16.10 (yakkety)
Ubuntu 17.04 (zesty)
安裝并運(yùn)行 Android 程序
從源碼構(gòu)建
要構(gòu)建 Anbox 運(yùn)行時(shí)不需要特別了解什么,我們使用 cmake 作為構(gòu)建系統(tǒng)。你的主機(jī)系統(tǒng)中應(yīng)已有下面這些構(gòu)建依賴:
libdbus
google-mock
google-test
libboost
libboost-filesystem
libboost-log
libboost-iostreams
libboost-program-options
libboost-system
libboost-test
libboost-thread
libcap
libdbus-cpp
mesa (libegl1, libgles2)
glib-2.0
libsdl2
libprotobuf
protobuf-compiler
lxc
在 Ubuntu 系統(tǒng)中你可以用下面的命令安裝所有的依賴:
$ 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
之后用下面的命令構(gòu)建 Anbox:
$ mkdir build $ cd build $ cmake .. $ make
一個(gè)簡(jiǎn)單的命令會(huì)將必要的二進(jìn)制安裝到你的系統(tǒng)中,如下。
$ make install
如果你想要構(gòu)建 anbox snap,你可以按照下面的步驟:
$ mkdir android-images $ cp /path/to/android.img android-images/android.img $ snapcraft
結(jié)果會(huì)有一個(gè) .snap 文件,你可以在支持 snap 的系統(tǒng)上安裝。
$ snap install --dangerous --devmode anbox_1_amd64.snap
運(yùn)行 Anbox
要從本地構(gòu)建運(yùn)行 Anbox ,你需要了解更多一點(diǎn)。請(qǐng)參考“運(yùn)行時(shí)步驟”文檔。
文檔
在項(xiàng)目源代碼的子目錄下,你可以找到額外的關(guān)于 Anbox 的文檔。
有興趣可以看下:
運(yùn)行時(shí)步驟
構(gòu)建 Android 鏡像
報(bào)告 bug
如果你發(fā)現(xiàn)了一個(gè) Anbox 問題,請(qǐng)?zhí)峤?bug。
取得聯(lián)系
如果你想要與開發(fā)者聯(lián)系,你可以在 FreeNode 中加入 #anbox 的 IRC 頻道。
版權(quán)與許可
Anbox 重用了像 Android QEMU 模擬器這樣的其他項(xiàng)目的代碼。這些項(xiàng)目可在外部/帶有許可聲明的子目錄中得到。
anbox 源碼本身,如果沒有在相關(guān)源碼中聲明其他的許可,默認(rèn)是 GPLv3 許可。
上述就是小編為大家分享的Linux中怎么運(yùn)行Android應(yīng)用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。