概述
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 的系统运行下面的命令安装它。
$ snap install --classic anbox-installer
另外你可以通过下面的命令下载安装脚本。
$ wget https://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh -O anbox-installer
请注意,我们还不支持除所有 Linux 发行版。请查看下面的章节了解支持的发行版。
运行下面的命令进行安装。
$ 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 系统中你可以用下面的命令安装所有的依赖:
$ 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
$ cd build
$ cmake ..
$ make
一个简单的命令会将必要的二进制安装到你的系统中,如下。
阅读全文请点击:
http://click.aliyun.com/m/22138/
分享到:
相关推荐
在Android中,最常提及的容器技术是Docker,尽管Docker主要应用于Linux系统,但通过项目如Termux和Anbox,开发者也能在Android设备上利用Docker的某些功能。Android容器的优势在于高效资源利用、快速部署和一致的...
Android-anbox.zip,anbox是一种基于容器的方法,用于在常规gnu/linux系统上引导完整的android系统,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有...
Anbox内核模块该存储库包含运行Anbox Android容器运行时所需的内核模块。 它们从原始的Anbox存储库中分离出来,使打包在各种Linux发行版中变得更加容易。安装说明您的系统上需要有dkms和linux-header。 您可以通过...
In other words: Anbox will letyou run Android on your Linux system without the slowness ofvirtualization.OverviewAnbox uses Linux namespaces (user, pid, uts, net, mount, ipc) to run afull Android ...
安装脚本,可自动在anbox(基于LX容器的环境,可在Linux 上运行Android应用程序)中安装Google Playstore。 安装步骤的详细说明可以在以下位置找到: 已在Ubuntu 20.04和20.10上使用Anbox Snap 186进行测试 命令...
Anbox是一种基于容器的方法,可以在常规GNULinux系统上启动完整的Android系统.zip
概述Anbox使用Linux名称空间(用户,pid,uts,net,mount,ipc)在容器中运行完整的Android系统,并在任何基于GNU / Linux的平台上提供Android应用程序。 容器内的Android无法直接访问任何硬件。 所有硬件访问是
标题中的“anbox-installer”指的是Anbox安装程序,它是一个用于在Linux系统上运行Android应用程序的开源容器技术。然而,根据提供的信息,这个特定的安装程序已经废弃,这意味着它不再被维护或推荐用于Anbox的最新...
AinD:Docker中的Android(Anbox) 通过在Docker中嵌套容器, 在Docker中启动Android应用。 与基于VM的类似项目不同,AinD可以在IaaS实例上执行,而无需支持嵌套虚拟化。 Docker Hub: 目的 防盗(请参阅) 适用于...
- **Anbox**:一个基于容器技术的开源项目,可以在Android设备上运行Android应用。类似地,它也可用于在没有虚拟机的情况下在Linux上运行Android应用。 7. **云桌面**: - **远程桌面服务**:通过连接到云服务器...
KMRE基于开源项目Anbox(Android in a Box),Anbox是一种容器化的技术,它将安卓系统作为一个独立的进程容器运行,不依赖于硬件模拟器或虚拟机。这意味着KMRE能够高效地利用系统资源,减少性能开销,同时保持良好的...