要耍安德猴,可以
- 在装有android的平板、手机上使用
- 可以用android sdk自带的模拟器(基于qemu)
- 还可以使用virtualbox/ vmware这样的虚拟机运行x86 android
体验从上到下, 依次80分,50分和10分。(iPhone是 100分的话)
本文介绍一种新的方式,将安卓置于Linux内核原生的容器(container)中,具有基本的GPU硬件加速,同时自带android的核心系统服务。
说人话,就是让android app原生的运行在一台PC中
仿佛有一台android设备运行在电脑里一样。但是并不是虚拟机或者模拟器,所以速度很快。
初步体验, 可以打到60~70分。
主角: ANBOX
官方网站的安装说明已经非常详细,这里只是大概记录一下。
首先Debian源里的并不是新版本,官方目前只支持snap包管理系统,所以如果你的Debian里还没有snap的话需要
1 | sudo apt install snapd |
Anbox安装
1 | sudo snap install --devmode --beta anbox |
如果日后需要更新
1 | sudo snap refresh --beta --devmode anbox |
snap在国内访问会非常不和谐,但是snap又不能直接使用环境变量, 需要修改其配置
1 | sudo systemctl edit snapd.service |
修改或加入下面几行
1 | [Service] |
Anbox内核模块安装
需要首先apt安装 dkms和内核头文件。
之后从git clone内核模块的源代码
1 | git clone https://github.com/anbox/anbox-modules.git |
编译
1 | sudo cp -rT ashmem /usr/src/anbox-ashmem-1 |
加载测试
1 | sudo modprobe ashmem_linux |
正常情况下,lsmod应该就能看到刚刚加载的模块
/dev/下面也会出现对应的设备
- /dev/binder
- /dev/ashmem
需要修改这两个文件的访问权限, 让普通用户也能访问。
激动人心的时刻, 运行
1 | anbox.appmgr |
第一次运行的话, CPU会加载android的系统环境, 在我电脑上大概几秒吧 ,完了之后就能看到一个新窗口
点开里面原生自带的应用,每一个都会是一个独立的窗口。
这时可以用adb shell连进去看看。
可以看到android显示的内核、硬件都是真机的,这就是Linux内核容器。
不要惊讶分辨率,我用的是1440p+1080p双显示器
此时android会用以太网卡和主机连接,而在主机端呢, 刚刚的内核驱动则会虚拟出一个anbox0网络设备。
不爽之处
- 目前的img只有 7.1
- 似乎并不支持摄像头
喔,对了, 有个脚本可以给默认的android image添加上google play,安装app方便很多
1 | git clone https://github.com/geeks-r-us/anbox-playstore-installer.git |
就到这里,
下次再见。