Linux命令行部署Android emulator + noVNC浏览器远程访问

Linux命令行部署Android emulator + noVNC浏览器远程访问此篇难度中级,需提前了解以下知识 安卓模拟器,x86和arm的区别 Linux基本操作,更改环境变量 Docker基本操作 VNC和noVNC 环境准备 支持kvm的Linux系统(x86模拟器必须k

我的部署机CentOS7没有安装图形桌面,运行模拟器时报QT,xcb之类的错误(欢迎遇到同样问题的同学一起探讨),因此在Docker里安装的模拟器。以下为搭建流程。

此篇难度中级,需提前了解以下知识

  • 安卓模拟器,x86和arm的区别
  • Linux基本操作,更改环境变量
  • Docker基本操作
  • VNC和noVNC

环境准备

  • 支持kvm的Linux系统(x86模拟器必须kvm支持,arm不用)
  • Docker(本机环境支持的同学可省略)
  • 科学上网

一、安装模拟器命令行工具

  1. 模拟器依赖Java环境,首先安装JDK8. 官方传送门

jdk8.jpg 或者使用命令行安装:

sudo apt-get update
sudo apt-get install openjdk-8-jdk

# centos
yum install -y java-1.8.0-openjdk-devel.x86_64
  1. 下载安卓模拟器tools.官方传送门

emulator.jpg 3. 添加JAVA和ANDROID_HOME环境变量.

二、运行Docker镜像

  1. 安装Docker,跟随官方传送门一路安装即可.离线安装可参考后面踩坑记录.
  2. 拉取镜像
docker pull thyrlian/android-sdk-vnc
  1. 启动容器
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 |使用部署机的网络
  1. 本机使用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,教程请自行搜索。

  1. 下载noVNC文件官方传送门.
  2. 解压后运行以下命令,然后用浏览器访问http://IP:6081 ,输入密码android,即可看到最终效果.
./utils/novnc_proxy --listen 6081 --vnc IP:5901
参数 解释
listen 6081 |访问的端口号
IP:5901 |IP为启动模拟器机器的IP,5901是VNC运行时的端口号

五、踩坑记录

  1. 官方docker无法添加repo,网络不可达。 解决方案1:下载rpm离线包,命令行安装。

解决方案2:下载rpm离线包,nginx启动访问文件服务,更改docker-ce.repo后本地源安装。

  1. 安装docker依赖不全 解决方案:因为部署机的yum源有问题,更换源后update,即可安装所有依赖。

  2. 基础镜像安装完模拟器,commit后不可用vnc连接。 解决方案:基础镜像的android-sdk挂载到部署机,使用本地下载好的文件。

  3. 部署机防火墙限制,无法安装android-sdk。 解决方案:在自己的开发机启动同样的镜像,安装好sdk后把文件拷贝到部署机。

  4. noVNC命令执行不成功 解决方案:第一次执行命令时会自动下载websockify失败,可以自己去官方传送门下载,放到utils下。

六、参考

  1. andresand.medium.com/android-emu…
  2. developer.android.com/studio/run/…
  3. developer.android.com/studio/comm…
  4. www.cnblogs.com/yuezhimi/p/…
  5. www.jianshu.com/p/9d81dd37f…

今天的文章Linux命令行部署Android emulator + noVNC浏览器远程访问分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/19387.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注