Anbox 以基于容器的方式,在像 Ubuntu 这样的常规的 GNU Linux 系统上启动一个完整的 Android 系统。

Anbox:容器中的 Android  开源Anbox在Linux中运转Android使用(linux安装anbox) Anbox Linux 第1张

Anbox 以根据容器的方法,在像 Ubuntu 这样的惯例的 GNU Linux 体系上发动一个完好的 Android 体系。

概述

Anbox 运用 Linux 命名空间(user、pid、uts、net、mount、ipc)来在容器中运转完好的 Android 体系,并在任何根据 GNU Linux 平台上供给 Android 运用。

容器内的 Android 无法直接拜访任何硬件。一切硬件拜访都经过主机上的 Anbox 看护进程进行。咱们重用根据 QEMU 的模拟器完结的 Android 中的 GL、ES 加快烘托。容器内的 Android 体系运用不同的管道与主机体系通讯,并经过它发送一切硬件拜访指令。

有关更多详细信息,请参阅下文档:

  • Android 硬件 OpenGL ES 仿真规划概述
  • Android QEMU 快速管道
  • Android 的 “qemud” 复用看护进程
  • Android qemud 服务

Anbox 现在合适桌面运用,但也用在移动操作体系上,如 Ubuntu Touch、Sailfish OS 或 Lune OS。但是,因为 Android 程序的映射现在只针对桌面环境,因而还需求额定的作业来支撑其他的用户界面。

Android 运转时环境带有一个根据 Android 开源项目镜像的最小自定义 Android 体系。所运用的镜像现在根据 Android 7.1.1。

装置

现在,装置进程包含一些增加额定组件到体系的进程。包含:

  • 启用用于 binder 和 ashmen 的非发行的树外内核模块。
  • 运用 udev 规则为 /dev/binder 和 /dev/ashmem 设置正确权限。
  • 能够发动 Anbox 会话管理器作为用户会话的一个发动使命。

为了使这个进程尽或许简略,咱们将必要的进程绑定在一个 snap(见 https://snapcraft.io ) 中,称之为 “anbox-installer”。这个装置程序会履行一切必要的进程。你能够在一切支撑 snap 的体系运转下面的指令装置它。

  1. $snapinstall--classicanbox-installer

别的你能够经过下面的指令下载装置脚本。

  1. $wgethttps://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh-Oanbox-installer

请留意,咱们还不支撑除一切 Linux 发行版。请检查下面的章节了解支撑的发行版。

运转下面的指令进行装置。

  1. $anbox-installer

它会引导你完结装置进程。

留意: Anbox 现在处于 pre-alpha 开发状况。不要盼望它具有出产环境你需求的一切功用。你肯定会遇到过错和溃散。假如你遇到了,请不要犹疑并陈述它们!

留意: Anbox snap 现在 彻底没有束缚,因而它只能从边际途径获取。正确的束缚是咱们想要在未来完结的,但因为 Anbox 的性质和复杂性,这不是一个简略的使命。

已支撑的 Linux 发行版

现在咱们官方支撑下面的 Linux 发行版:

  • Ubuntu 16.04 (xenial)

未测验但或许支撑的:

  • Ubuntu 14.04 (trusty)
  • Ubuntu 16.10 (yakkety)
  • Ubuntu 17.04 (zesty)

装置并运转 Android 程序

从源码构建

要构建 Anbox 运转时不需求特别了解什么,咱们运用 cmake 作为构建体系。你的主机体系中应已有下面这些构建依靠:

  • 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 体系中你能够用下面的指令装置一切的依靠:

  1. $sudoaptinstallbuild-essentialcmakecmake-datadebhelperdbus\
  2. google-mocklibboost-devlibboost-filesystem-devlibboost-log-dev\
  3. libboost-iostreams-devlibboost-program-options-devlibboost-system-dev\
  4. libboost-test-devlibboost-thread-devlibcap-devlibdbus-1-dev\
  5. libdbus-cpp-devlibegl1-mesa-devlibgles2-mesa-devlibglib2.0-dev\
  6. libglm-devlibgtest-devliblxc1libproperties-cpp-devlibprotobuf-dev\
  7. libsdl2-devlxc-devpkg-configprotobuf-compiler

之后用下面的指令构建 Anbox:

  1. $mkdirbuild
  2. $cdbuild
  3. $cmake..
  4. $make

一个简略的指令会将必要的二进制装置到你的体系中,如下。

  1. $makeinstall

假如你想要构建 anbox snap,你能够依照下面的进程:

  1. $mkdirandroid-images
  2. $cp/path/to/android.imgandroid-images/android.img
  3. $snapcraft

成果会有一个 .snap 文件,你能够在支撑 snap 的体系上装置。

  1. $snapinstall--dangerous--devmodeanbox_1_amd64.snap

运转 Anbox

要从本地构建运转 Anbox ,你需求了解更多一点。请参阅“运转时进程”文档。

文档

在项目源代码的子目录下,你能够找到额定的关于 Anbox 的文档。

有爱好能够看下:

  • 运转时进程
  • 构建 Android 镜像

陈述 bug

假如你发现了一个 Anbox 问题,请提交 bug。

取得联络

假如你想要与开发者联络,你能够在 FreeNode 中参加 #anbox 的 IRC 频道。

版权与答应

Anbox 重用了像 Android QEMU 模拟器这样的其他项目的代码。这些项目可在外部/带有答应声明的子目录中得到。

anbox 源码自身,假如没有在相关源码中声明其他的答应,默许是 GPLv3 答应。

转载请说明出处
知优网 » 开源Anbox在Linux中运转Android使用(linux安装anbox)

发表评论

您需要后才能发表评论