Anbox以基于容器的方式在Ubuntu等常规GNULinux系统上启动完整的Android系统。概述Anbox使用Linux命名空间(user、pid、uts、net、mount、ipc)在容器中运行完整的Android系统,并在任何基于GNULinux的平台上提供Android应用程序。容器内的Android无法直接访问任何硬件。所有硬件访问都是通过主机上的anbox守护进程进行的。我们复用了基于QEMU的模拟器实现的Android中的GL、ES加速渲染。容器内的Android系统使用不同的管道与宿主系统通信,并通过它发送所有硬件访问命令。更多详细信息,请参考以下文档:Android硬件OpenGLES仿真设计概述AndroidQEMUFastPipelineAndroid的“qemud”MultiplexingDaemonUbuntuTouch、SailfishOS或LuneOS。但是,由于Android应用程序映射目前仅适用于桌面环境,因此需要额外的工作来支持其他用户界面。Android运行时环境带有基于Android开源项目图像的最小自定义Android系统。目前使用的图像基于Android7.1.1。安装目前,安装过程包括几个向系统添加附加组件的步骤。包括:为binder和ashmen启用非发布的树外内核模块。使用udev规则为/dev/binder和/dev/ashmem设置正确的权限。能够将Anbox会话管理器作为用户会话的启动任务启动。为了使这个过程尽可能简单,我们将必要的步骤捆绑到一个名为“anbox-installer”的snap(参见https://snapcraft.io)中。安装程序将执行所有必要的步骤。您可以通过运行以下命令在所有支持snap的系统上安装它。$snapinstall--classicanbox-installer另外,您可以通过以下命令下载安装脚本。$wgethttps://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh-Oanbox-installer请注意,我们目前还不支持所有Linux发行版。请参阅下面的部分以了解支持的发行版。运行下面的命令来安装它。$anbox-installer它将指导您完成安装过程。注意:Anbox目前处于pre-alpha开发阶段。不要指望它具有您在生产中需要的所有功能。你一定会遇到错误和崩溃。如果你遇到,请不要犹豫,举报他们!注意:Anboxsnap目前完全未绑定,因此只能从边缘渠道获得。获得正确的约束是我们希望在未来实现的目标,但由于Anbox的性质和复杂性,这不是一件容易的事。支持的Linux发行版目前我们正式支持以下Linux发行版:Ubuntu16.04(xenial)未测试但可能支持:Ubuntu14.04(trusty)Ubuntu16.10(yakkety)Ubuntu17.04(zesty)从源代码安装并运行Android程序Building构建Anbox运行时你不需要特别了解任何东西,我们使用cmake作为构建系统。以下构建依赖项应该已经存在于您的主机系统上:,libgles2)glib-2.0libsdl2libprotobufprotobuf-compilerlxc在Ubuntu系统中,您可以使用以下命令安装所有依赖项:$sudoaptinstallbuild-essentialcmakecmake-datadebhelperdbus\google-mocklibboost-devlibboost-filesystem-devlibboost-log-dev\libboost-iostreams-devlibboost-program-options-devlibboost-system-dev\libboost-test-devlibboost-thread-devlibcap-devlibdbus-1-dev\libdbus-cpp-devlibegl1-mesa-devlibgles2-mesa-devlibglib2.0-dev\libglm-devlibgtest-devliblxc1libproperties-cpp-devlibprotobuf-dev\libsdl2-devlxc-devpkg-configprotobuf-compiler然后使用以下命令构建Anbox:$mkdirbuild$cdbuild$cmake..$make一个简单的命令将安装必要的二进制文件到您的系统中干,如下。$makeinstall如果你想构建一个anboxsnap,你可以按照下面的步骤:在支持snap的系统上安装中找到它。$snapinstall--dangerous--devmodeanbox_1_amd64.snap运行Anbox要从本地构建运行Anbox,您需要了解更多信息。请参阅“运行时步骤”文档。文档在项目源代码的子目录中,您可以找到有关Anbox的其他文档。如果您有兴趣,请参阅:运行时步骤构建Android图像报告错误如果您发现Anbox有问题,请提交错误。取得联系如果您想与开发人员取得联系,可以加入FreeNode中的#anboxIRC频道。版权和许可Anbox重用了其他项目的代码,例如AndroidQEMU模拟器。这些项目在带有许可证通知的externals/子目录中可用。anbox源码本身,如果相关源码中没有声明其他许可,则默认为GPLv3许可。
