溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中怎么運(yùn)行Android應(yīng)用

發(fā)布時(shí)間:2021-06-29 14:33:27 來源:億速云 閱讀:256 作者:Leah 欄目:移動(dòng)開發(fā)

這期內(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è)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI