配置一个兼容arm的x86的Android虚拟机
需求
一个效率高的Android虚拟机,还支持arm
为啥不用avd呢?
那货速度虽然还不错,但是太耗内存和CPU,再加上AS和Chrome,直接内存爆炸
需要的东西
- Virtual Box
- Android x86
- x86版的Android,而且可以直接硬盘安装,而不是刷入镜像
- houdini
- 动态解释ARM指令到x86的库,用来兼容armabi,在内置脚本里也有提供下载,所以并不会在这儿下载
安装Android
在官网下一个镜像,在VBox中安装。没错,就像安装Linux那样安装就行了,记得把system设置成rw,安装过程中会提示,重启过后就可以进入系统了
配置ARM兼容
adb
连上,或者直接在内置终端里su
,然后which enable_nativebridge
- 然后把这个文件复制到
/data/local/tmp/
下,然后vi
它,在wget $url
那句前添加echo $v $url && exit
,运行它(/data/local/tmp
目录下),记下版本和地址,然后这个复制过来的脚本就可以删了。把文件手动从地址下载下来,adb push
进去,然后cp /data/local/tmp/houdini.sfs /system/etc/houdini$v.sfs
,其中$v
就是前面的版本,然后运行原脚本,就可以挂载兼容库。检查方法是看目录/system/lib/arm
是否存在- 如果你做了透明代理,应该可以直接跑脚本,会自动下载和部署
- 去 设置->应用兼容性 中开启兼容模式
- 装个QQ试试?
让屏幕横过来
用了一段时间,发现默认是横向布局,非常蛋疼,于是又想办法让它竖过来
- 设置VBox额外分辨率,并在grub中配置,有点蛋疼,参考 这个
- 设置Android的分辨率和DPI,参考 这个 和 这个
- 推荐的配置是VBox分辨率高度为你的屏幕高度,宽度按
16:9
算吧,然后设备内就1080x1920
就好
实际效果
- 效率很不错,至少各项占用比avd低不少
- 操作有点蛋疼,传文件只能用adb,操作只能鼠标,不能像avd那样xjb点
- 也许可以用来玩儿游戏?(没试过
注意事项
- 如果发现鼠标操作有问题,请关闭鼠标捕获
houdini
库只做了armabi
的兼容,v7a
和v8a
可能会炸- 权限问题,请将涉及到的文件都
chown 0:0