`

Anbox:容器中的_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 的系统运行下面的命令安装它。

$ 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容器和虚拟化.pdf

    在Android中,最常提及的容器技术是Docker,尽管Docker主要应用于Linux系统,但通过项目如Termux和Anbox,开发者也能在Android设备上利用Docker的某些功能。Android容器的优势在于高效资源利用、快速部署和一致的...

    Android-anbox.zip

    Android-anbox.zip,anbox是一种基于容器的方法,用于在常规gnu/linux系统上引导完整的android系统,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有...

    anbox-modules:Anbox内核模块

    Anbox内核模块该存储库包含运行Anbox Android容器运行时所需的内核模块。 它们从原始的Anbox存储库中分离出来,使打包在各种Linux发行版中变得更加容易。安装说明您的系统上需要有dkms和linux-header。 您可以通过...

    Anbox是一种基于容器的方法,用于在常规的GNU/Linux系统- Anbox / Anbox上引导完整的Android系统

    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-playstore-installer:安装脚本,可自动在Anbox中安装Google Playstore

    安装脚本,可自动在anbox(基于LX容器的环境,可在Linux 上运行Android应用程序)中安装Google Playstore。 安装步骤的详细说明可以在以下位置找到: 已在Ubuntu 20.04和20.10上使用Anbox Snap 186进行测试 命令...

    Anbox是一种基于容器的方法,可以在常规GNULinux系统上启动完整的Android系统.zip

    Anbox是一种基于容器的方法,可以在常规GNULinux系统上启动完整的Android系统.zip

    Anbox是一种基于容器的方法,可以在常规GNU / Linux系统上引导完整的Android系统-C/C++开发

    概述Anbox使用Linux名称空间(用户,pid,uts,net,mount,ipc)在容器中运行完整的Android系统,并在任何基于GNU / Linux的平台上提供Android应用程序。 容器内的Android无法直接访问任何硬件。 所有硬件访问是

    anbox-installer:已弃用,请参阅https

    标题中的“anbox-installer”指的是Anbox安装程序,它是一个用于在Linux系统上运行Android应用程序的开源容器技术。然而,根据提供的信息,这个特定的安装程序已经废弃,这意味着它不再被维护或推荐用于Anbox的最新...

    aind:爱因德

    AinD:Docker中的Android(Anbox) 通过在Docker中嵌套容器, 在Docker中启动Android应用。 与基于VM的类似项目不同,AinD可以在IaaS实例上执行,而无需支持嵌套虚拟化。 Docker Hub: 目的 防盗(请参阅) 适用于...

    不装虚拟机也能过把linux瘾

    - **Anbox**:一个基于容器技术的开源项目,可以在Android设备上运行Android应用。类似地,它也可用于在没有虚拟机的情况下在Linux上运行Android应用。 7. **云桌面**: - **远程桌面服务**:通过连接到云服务器...

    kmre-2.0-6-arm64.rar安卓兼容层

    KMRE基于开源项目Anbox(Android in a Box),Anbox是一种容器化的技术,它将安卓系统作为一个独立的进程容器运行,不依赖于硬件模拟器或虚拟机。这意味着KMRE能够高效地利用系统资源,减少性能开销,同时保持良好的...

Global site tag (gtag.js) - Google Analytics