在云主机上运行模拟器或本地连接远程模拟器,以下是详细方案:
一、在云主机上安装和运行模拟器
1.Android模拟器(云主机运行)
方案A:使用 Android SDK 模拟器
1. 安装必要依赖 sudo apt update sudo apt install openjdk-11-jdk unzip qemu-kvm libvirt-daemon-system 2. 下载 Android SDK 命令行工具 wget https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip unzip commandlinetools-linux-*.zip 3. 配置环境变量 export ANDROID_HOME=$HOME/android-sdk export PATH=$PATH:$ANDROID_HOME/cmdline-tools/bin:$ANDROID_HOME/emulator 4. 安装组件 sdkmanager --install "platform-tools" "platforms;android-30" "emulator" sdkmanager --install "system-images;android-30;google_apis;x86_64" 5. 创建 AVD(无图形界面模式) avdmanager create avd -n test_avd -k "system-images;android-30;google_apis;x86_64" -d pixel 6. 启动模拟器(无头模式) emulator -avd test_avd -no-window -no-audio -no-snapshot -gpu off &
方案B:使用 Docker Android
使用现成的 Android 模拟器镜像 docker run -d \ --privileged \ -p 5555:5555 \ -p 5554:5554 \ --device /dev/kvm \ --name android-emu \ budtmo/docker-android-x86-9.0
2.iOS模拟器(仅限macOS云主机)
- 需要 macOS 云服务器(如 MacStadium、AWS EC2 Mac实例)
- 通过 SSH + VNC 远程访问
二、本地连接远程模拟器的几种方法
1.ADB远程连接(Android)
在云主机上启动adb服务并设置监听所有网络 adb kill-server adb -a -P 5037 nodaemon server & 或者指定端口 adb tcpip 5555 本地机器连接 adb connect <云主机IP>:5555 adb devices # 验证连接
建立SSH隧道 ssh -L 5555:localhost:5555 user@云主机IP 本地连接 adb connect localhost:5555
云主机安装VNC服务器 sudo apt install tightvncserver vncserver :1 -geometry 1280x720 -depth 24 本地通过SSH隧道访问 ssh -L 5901:localhost:5901 user@云主机IP 本地VNC客户端连接 localhost:5901
4.使用NoMachine/NX远程桌面
- 提供更好的图形性能
- 适合长时间运行的模拟器会话
三、具体场景配置示例
场景1:Jenkins CI/CD中的云模拟器
Jenkins Pipeline 示例
pipeline {
agent any
stages {
stage('启动模拟器') {
steps {
sh '''
# 启动模拟器
emulator -avd test_avd -no-window -no-boot-anim &
# 等待启动完成
adb wait-for-device
# 解锁屏幕
adb shell input keyevent 82
'''
}
}
stage('运行测试') {
steps {
sh './gradlew connectedAndroidTest'
}
}
}
}
使用 Docker Compose 部署
version: '3'
services:
android-emulator:
image: budtmo/docker-android-x86-9.0
privileged: true
devices:
- /dev/kvm
ports:
- "5555:5555"
- "6080:6080" # noVNC web界面
environment:
- DEVICE=Nexus 5
- APPIUM=true四、性能优化建议
1、启用KVM加速(必须)
检查KVM支持 sudo apt install cpu-checker kvm-ok 添加到用户组 sudo adduser $USER kvm
2、使用GPU虚拟化(如云服务商支持)
启动时启用GPU emulator -avd test_avd -gpu host
3、内存和磁盘优化
增加内存 emulator -avd test_avd -memory 4096 使用缓存 emulator -avd test_avd -cache-size 1024
五、注意事项
1、网络延迟:云模拟器不适合需要低延迟的交互测试
2、成本:GPU加速的云实例费用较高
3、许可证:某些服务可能需要额外许可证
4、安全性:开放ADB端口需配置防火墙规则
推荐工具和服务
1、开源方案:Docker-Android、Android SDK模拟器
2、云服务:
- AWS Device Farm
- Firebase Test Lab
- BrowserStack
- Sauce Labs
3、自托管:Appium Grid + Docker模拟器集群
根据具体需求选择方案,如果只是个人开发测试,推荐使用本地SSH隧道连接;如果是团队CI/CD,建议使用Docker化部署。
文章摘自:https://idc.huochengrm.cn/zj/24166.html
评论