PUB:20170406 Anbox - Android in a Box.md

@geekpi @jasminepeng
This commit is contained in:
wxy 2017-04-21 17:16:54 +08:00
parent 5b508888c9
commit 646dd71e0e

View File

@ -1,10 +1,11 @@
# Anbox Anbox容器中的 Android
===============
Anbox 是一个基于容器的方式,在像 Ubuntu 这样的常规的 GNU Linux 系统上启动一个完整的 Android 系统。 Anbox 以基于容器的方式,在像 Ubuntu 这样的常规的 GNU Linux 系统上启动一个完整的 Android 系统。
## 概述 ### 概述
Anbox 使用 Linux 命名空间user、pid、uts、net、mount、ipc来在容器中运行完整的 Android 系统,并提供任何基于 GNU Linux 平台的 Android 程序 Anbox 使用 Linux 命名空间user、pid、uts、net、mount、ipc来在容器中运行完整的 Android 系统,并在任何基于 GNU Linux 平台上提供 Android 应用
容器内的 Android 无法直接访问任何硬件。所有硬件访问都通过主机上的 anbox 守护进程进行。我们重用基于 QEMU 的模拟器实现的 Android 中的 GL、ES 加速渲染。容器内的 Android 系统使用不同的管道与主机系统通信,并通过它发送所有硬件访问命令。 容器内的 Android 无法直接访问任何硬件。所有硬件访问都通过主机上的 anbox 守护进程进行。我们重用基于 QEMU 的模拟器实现的 Android 中的 GL、ES 加速渲染。容器内的 Android 系统使用不同的管道与主机系统通信,并通过它发送所有硬件访问命令。
@ -15,19 +16,19 @@ Anbox 使用 Linux 命名空间user、pid、uts、net、mount、ipc来在
* [Android 的 “qemud” 复用守护进程](https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/docs/ANDROID-QEMUD.TXT) * [Android 的 “qemud” 复用守护进程](https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/docs/ANDROID-QEMUD.TXT)
* [Android qemud 服务](https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/docs/ANDROID-QEMUD-SERVICES.TXT) * [Android qemud 服务](https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/docs/ANDROID-QEMUD-SERVICES.TXT)
Anbox 目前适合桌面使用,但也可使用移动操作系统,如 Ubuntu Touch、Sailfish OS 或 Lune OS。然而由于 Android 程序映射目前只针对桌面环境,因此还需要额外的工作来支持其他的用户界面。 Anbox 目前适合桌面使用,但也用移动操作系统,如 Ubuntu Touch、Sailfish OS 或 Lune OS。然而由于 Android 程序映射目前只针对桌面环境,因此还需要额外的工作来支持其他的用户界面。
Android 运行时环境带有一个基于[ Android 开源项目](https://source.android.com/)镜像的最小自定义 Android 系统。所使用的镜像目前基于 Android 7.1.1。 Android 运行时环境带有一个基于 [Android 开源项目](https://source.android.com/)镜像的最小自定义 Android 系统。所使用的镜像目前基于 Android 7.1.1。
## 安装 ### 安装
目前,安装过程包括一些添加额外组件到系统的步骤。包括: 目前,安装过程包括一些添加额外组件到系统的步骤。包括:
  * 没有分发版内核同时启用的 binder 和 ashmen 原始内核模块。 * 启用用于 binder 和 ashmen 的非发行的树外内核模块。
  * 使用 udev 规则为 /dev/binder 和 /dev/ashmem 设置正确权限。 * 使用 udev 规则为 /dev/binder 和 /dev/ashmem 设置正确权限。
  * 能够启动 Anbox 会话管理器作为用户会话的一个启动任务。 * 能够启动 Anbox 会话管理器作为用户会话的一个启动任务。
为了使这个过程尽可能简单,我们将必要的步骤绑定在一个 snap见 https://snapcraft.io称为“anbox-installer”。这个安装程序会执行所有必要的步骤。你可以在所有支持 snap 的系统运行下面的命令安装它。 为了使这个过程尽可能简单,我们将必要的步骤绑定在一个 snap见 https://snapcraft.io 中,称 “anbox-installer”。这个安装程序会执行所有必要的步骤。你可以在所有支持 snap 的系统运行下面的命令安装它。
``` ```
$ snap install --classic anbox-installer $ snap install --classic anbox-installer
@ -49,11 +50,11 @@ $ anbox-installer
它会引导你完成安装过程。 它会引导你完成安装过程。
**注意:** Anbox 目前处于** pre-alpha 开发状态**。不要指望它具有生产环境你需要的所有功能。你肯定会遇到错误和崩溃。如果你遇到了,请不要犹豫并报告它们! **注意:** Anbox 目前处于 **pre-alpha 开发状态**。不要指望它具有生产环境你需要的所有功能。你肯定会遇到错误和崩溃。如果你遇到了,请不要犹豫并报告它们!
**注意:** Anbox snap 目前 **完全没有约束**,因此它只能从边缘渠道获取。正确的约束是我们想要在未来实现的,但由于 Anbox 的性质和复杂性,这不是一个简单的任务。 **注意:** Anbox snap 目前 **完全没有约束**,因此它只能从边缘渠道获取。正确的约束是我们想要在未来实现的,但由于 Anbox 的性质和复杂性,这不是一个简单的任务。
## 已支持的 Linux 发行版 ### 已支持的 Linux 发行版
目前我们官方支持下面的 Linux 发行版: 目前我们官方支持下面的 Linux 发行版:
@ -65,9 +66,9 @@ $ anbox-installer
* Ubuntu 16.10 (yakkety) * Ubuntu 16.10 (yakkety)
* Ubuntu 17.04 (zesty) * Ubuntu 17.04 (zesty)
## 安装并运行 Android 程序 ### 安装并运行 Android 程序
## 从源码构建 #### 从源码构建
要构建 Anbox 运行时不需要特别了解什么,我们使用 cmake 作为构建系统。你的主机系统中应已有下面这些构建依赖: 要构建 Anbox 运行时不需要特别了解什么,我们使用 cmake 作为构建系统。你的主机系统中应已有下面这些构建依赖:
@ -132,11 +133,11 @@ $ snapcraft
$ snap install --dangerous --devmode anbox_1_amd64.snap $ snap install --dangerous --devmode anbox_1_amd64.snap
``` ```
## 运行 Anbox #### 运行 Anbox
要从本地构建运行 Anbox ,你需要了解更多一点。请参考[“运行时步骤”](docs/runtime-setup.md)文档。 要从本地构建运行 Anbox ,你需要了解更多一点。请参考[“运行时步骤”](docs/runtime-setup.md)文档。
## 文档 ### 文档
在项目源代码的子目录下,你可以找到额外的关于 Anbox 的文档。 在项目源代码的子目录下,你可以找到额外的关于 Anbox 的文档。
@ -145,15 +146,15 @@ $ snap install --dangerous --devmode anbox_1_amd64.snap
* [运行时步骤](docs/runtime-setup.md) * [运行时步骤](docs/runtime-setup.md)
* [构建 Android 镜像](docs/build-android.md) * [构建 Android 镜像](docs/build-android.md)
## 报告 bug ### 报告 bug
如果你发现了一个 Anbox 问题,请[提交一个 bug](https://github.com/anbox/anbox/issues/new)。 如果你发现了一个 Anbox 问题,请[提交 bug](https://github.com/anbox/anbox/issues/new)。
## 取得联系 ### 取得联系
如果你想要与开发者联系,你可以在 [FreeNode](https://freenode.net/) 中加入 *#anbox* 的 IRC 频道。 如果你想要与开发者联系,你可以在 [FreeNode](https://freenode.net/) 中加入 *#anbox* 的 IRC 频道。
## 版权与许可 ### 版权与许可
Anbox 重用了像 Android QEMU 模拟器这样的其他项目的代码。这些项目可在外部/带有许可声明的子目录中得到。 Anbox 重用了像 Android QEMU 模拟器这样的其他项目的代码。这些项目可在外部/带有许可声明的子目录中得到。
@ -163,7 +164,7 @@ anbox 源码本身,如果没有在相关源码中声明其他的许可,默
via: https://github.com/anbox/anbox/blob/master/README.md via: https://github.com/anbox/anbox/blob/master/README.md
作者:[ Anbox][a] 作者:[Anbox][a]
译者:[geekpi](https://github.com/geekpi) 译者:[geekpi](https://github.com/geekpi)
校对:[jasminepeng](https://github.com/jasminepeng) 校对:[jasminepeng](https://github.com/jasminepeng)