模拟器怎么连接云主机上?

HCRM技术_小炮 云主机 2026-03-17 74 0

在云主机上运行模拟器本地连接远程模拟器,以下是详细方案:

一、在云主机上安装和运行模拟器

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隧道
ssh -L 5555:localhost:5555 user@云主机IP
本地连接
adb connect localhost:5555

**VNC/RDP远程桌面

云主机安装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'
            }
        }
    }
}

场景2:团队共享测试环境

使用 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

评论