镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

Anbox 介绍

  • Anbox 是一个可以在 GNU/Linux 发行版上运行 Android App 的容器,是一个开源兼容层。
  • 其工作原理是在 LXC 容器中运行 Android 环境,重新创建 Android 的目录结构作为可挂载的 loop 镜像,同时使用本机 Linux 内核来执行应用,所以没有虚拟化的开销,非常轻量级且保障了运行速度。
  • 每个 Android 应用将在一个单独窗口打开,就像 Linux 本地应用程序一样。

安装过程

1、环境要求

  • Anbox 的 dkms 模块在内核版本 ≥ 5.7 下不会工作。
  • 需要运行带有 ashmem 和 binder 模块的内核,但它们不是 Arch Linux 默认内核 ( linux ) 的一部分。

2、开始安装

  • 确保系统安装了 Linux 内核头文件:

    1. sudo pacman -S linux-headers
  • 安装 Anbox :

    • anbox-image 是官方镜像,可根据需要选择其他镜像
    • anbox-git 是 Anbox 运行的容器
    • anbox-modules-dkms-git 是 Anbox 所需的内核模块
    1. yay -S anbox-image anbox-git anbox-modules-dkms-git
  • 加载 DKMS 模块:

    1. sudo modprobe ashmem_linux
    2. sudo modprobe binder_linux

    检查设备:

    1. ls -1 /dev/{ashmem,binder}

    看到如下信息,说明模块加载成功:

    1. /dev/ashmem
    2. /dev/binder
  • 挂载 binderfs

  • 启动服务,设置开机自启:

    1. sudo systemctl start anbox-container-manager.service
    2. sudo systemctl enable anbox-container-manager.service

3、配置网络

  • Arch Wiki 提供了三种连网方案:NetworkManager、systemd-networkd、anbox-bridge。
  • 笔者采用 anbox-bridge 方式:

    • 下载 anbox-bridge.sh 脚本到 /usr/bin 目录下,并赋予可执行权限
    • 创建文件 /etc/systemd/system/anbox-container-manager.service.d/enable-anbox-bridge.conf 并写入一下内容:

      1. [Service]
      2. ExecStartPre=/usr/bin/anbox-bridge.sh start
      3. ExecStopPost=/usr/bin/anbox-bridge.sh stop

4、安装 adb 工具

  • adb ( Android Debug Bridge ) 是安卓开发调试工具,我们用它来管理 Anbox 内的安卓应用。

    1. sudo pacman -S android-tools

adb 使用

  • 安装应用

    1. adb install /path/to/app.apk
  • 查看应用列表

    1. adb shell pm list packages
  • 卸载用户应用

    1. adb uninstall app.name
  • 卸载系统应用

    1. adb uninstall --user 0 app.name

尚未解决的问题

  • 某些应用打开后,窗口上方的标题栏消失,导致整体画面上移但实际点击区域未移动,且下方留有黑边。
  • 未挂载 binderfs 时,开关机会提示 [FAILED]Failed to Mount Android Binder File System
  • 按 Arch Wiki 步骤挂载binderfs后,开关机提示 [FAILED]Failed to Mount /dev/binderfs

本文转自:ONe2

更多相关文章

  1. android 应用层开发
  2. android在fc8上内核编译笔记
  3. 一、 Android(安卓)应用程序概述
  4. android应用去掉title bar
  5. Android官方培训课程中文版(v0.9.7)
  6. Android核心分析(22)-----Android应用框架之Activit
  7. SQL Server数据库bcp导出备份文件应用示例
  8. SQL高级应用之同服务器上复制表到另一数据库中并实现去重复
  9. sql时间格式化输出、Convert函数应用示例

随机推荐

  1. MySQL数据查询之单表查询
  2. 5 - SQL Server 2008 之 四则运算、比较
  3. Mysql查询需要太多时间来执行。
  4. 做了一个工程(VB+SQLServer)后,老板又要我将
  5. kali攻防第6章 SQLMAP介绍及ASP网站渗透
  6. sql2000 数据库文件突然丢失
  7. SQL Server2008清除数据库日志
  8. esql的查询结果集 ObjectQuery
  9. SQL Server 一些关键字详解(一)
  10. 备份SQL Server数据库