我的部署机CentOS7没有安装图形桌面,运行模拟器时报QT,xcb之类的错误(欢迎遇到同样问题的同学一起探讨),因此在Docker里安装的模拟器。以下为搭建流程。
此篇难度中级,需提前了解以下知识
- 安卓模拟器,x86和arm的区别
- Linux基本操作,更改环境变量
- Docker基本操作
- VNC和noVNC
环境准备
- 支持kvm的Linux系统(x86模拟器必须kvm支持,arm不用)
- Docker(本机环境支持的同学可省略)
- 科学上网
一、安装模拟器命令行工具
- 模拟器依赖Java环境,首先安装JDK8. 官方传送门
或者使用命令行安装:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
# centos
yum install -y java-1.8.0-openjdk-devel.x86_64
- 下载安卓模拟器tools.官方传送门
3. 添加JAVA和ANDROID_HOME环境变量.
二、运行Docker镜像
- 安装Docker,跟随官方传送门一路安装即可.离线安装可参考后面踩坑记录.
- 拉取镜像
docker pull thyrlian/android-sdk-vnc
- 启动容器
docker run --privileged --network host -v /dev/kvm:/dev/kvm -v $ANDROID_HOME:/opt/android-sdk thyrlian/android-sdk-vnc
参数 | 解释 |
---|---|
-v /dev/kvm:/dev/kvm | |required,共享部署机的kvm |
-v $ANDROID_HOME:/opt/android-sdk | |共享部署机下载的模拟器 |
–network host | |使用部署机的网络 |
- 本机使用screen Sharing或者VNC Viewer连接vnc://IP:5901,此时可看到一个最简的Linux桌面.
三、下载运行模拟器
提示:以下安装命令需要加好环境变量才能用.
# 1.查看安装列表
sdkmanager --list
# 2.安装platform-tools
sdkmanager "platform-tools"
# 3.安装API30,同时支持x86和arm
sdkmanager "platforms;android-30"
# 4.安装模拟器镜像
sdkmanager "system-images;android-30;google_apis;x86_64"
# 5.安装模拟器运行文件
sdkmanager "emulator"
# 6.实例化一个安卓机
avdmanager create avd -n android30 -k "system-images;android-30;google_apis;x86_64"
# 7.运行安卓模拟器
emulator -avd android30 -noaudio -no-boot-anim -gpu off
# 8.安装apk
adb install -r name.apk
以上成功安装后,我们就能看到桌面上出现了模拟器.
参数 | 解释 |
---|---|
-n android30 | |起名字 |
-noaudio | |不开启audio |
-no-boot-anim | |不要开机动画 |
四、noVNC搭建
如果没有用上述的docker镜像,首先要安装vnc,教程请自行搜索。
- 下载noVNC文件官方传送门.
- 解压后运行以下命令,然后用浏览器访问http://IP:6081 ,输入密码android,即可看到最终效果.
./utils/novnc_proxy --listen 6081 --vnc IP:5901
参数 | 解释 |
---|---|
listen 6081 | |访问的端口号 |
IP:5901 | |IP为启动模拟器机器的IP,5901是VNC运行时的端口号 |
五、踩坑记录
- 官方docker无法添加repo,网络不可达。 解决方案1:下载rpm离线包,命令行安装。
解决方案2:下载rpm离线包,nginx启动访问文件服务,更改docker-ce.repo后本地源安装。
-
安装docker依赖不全 解决方案:因为部署机的yum源有问题,更换源后update,即可安装所有依赖。
-
基础镜像安装完模拟器,commit后不可用vnc连接。 解决方案:基础镜像的android-sdk挂载到部署机,使用本地下载好的文件。
-
部署机防火墙限制,无法安装android-sdk。 解决方案:在自己的开发机启动同样的镜像,安装好sdk后把文件拷贝到部署机。
-
noVNC命令执行不成功 解决方案:第一次执行命令时会自动下载websockify失败,可以自己去官方传送门下载,放到utils下。
六、参考
今天的文章Linux命令行部署Android emulator + noVNC浏览器远程访问分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/19387.html