openvela之模拟器控制台操作

在移动应用开发和测试过程中,模拟器是不可或缺的工具。而掌握模拟器控制台命令,能让你更灵活地控制虚拟设备环境,提升开发和测试效率。本文将详细介绍如何启动、使用模拟器控制台,并带你深入了解各类常用命令。

一、控制台会话的启动与停止

每个运行中的虚拟设备都提供了控制台接口,通过它可以发送命令来查询和控制设备状态。想要使用控制台,首先需要建立连接并完成身份验证。

1. 连接控制台

打开终端窗口,输入以下命令连接到指定端口的模拟器:

telnet localhost console-port

其中,模拟器监听的端口范围是 5554 到 5585,且仅接受来自本地主机(localhost)的连接。你可以通过adb devices命令查看当前运行的虚拟设备及其对应的控制台端口号。

2. 身份验证

连接成功后,控制台会提示需要身份验证。此时需输入:

auth auth_token

这里的auth_token可在用户 HOME 目录下的.emulator_console_auth_token文件中找到。该文件的特性如下:

  • 若文件不存在,执行telnet localhost console-port命令时会自动创建,且包含随机生成的令牌
  • 若要停用身份验证,可删除文件中的令牌,或创建一个空文件(若文件原本不存在)

3. 会话操作

  • 查看命令列表:输入help(基础列表)、help command(特定命令详情)或help-verbose(带描述的命令列表)
  • 退出会话:输入quit或exit
$ telnet localhost 5554
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/Users/me/.emulator_console_auth_token'
OK
auth 123456789ABCdefZ
Android Console: type 'help' for a list of commands
OK
help-verbose
# 此处省略命令列表输出
exit
Connection closed by foreign host.

二、常用模拟器控制台命令详解

掌握各类控制台命令,能让你轻松模拟设备状态、硬件事件等,满足不同的测试需求。

1. 常规命令

用于管理虚拟设备的基本运行状态:

  • avd {stop|start|status|name}:管理虚拟设备执行,包括停止(stop)、启动(start)、查询状态(status,返回 running 或 stopped)、查询名称(name)
  • kill:直接终止虚拟设备实例
  • ping:检查模拟器是否正常运行
  • rotate:将屏幕以 45 度为增量逆时针旋转

2. 端口重定向命令

用于管理主机与模拟器之间的端口映射:

  • redir list:列出当前所有端口重定向配置
  • redir add protocol:host-port:guest-port:添加新的端口重定向,其中protocol只能是 tcp 或 udp,- host-port是主机上的端口,guest-port是模拟器接收数据的端口
  • redir del protocol:host-port:删除指定的端口重定向配置

3. 地理位置命令

模拟设备的 GPS 定位信息,适用于测试依赖位置的应用:

  • geo fix longitude latitude [altitude] [satellites] [velocity]:发送简单 GPS 定位。参数说明:

    • longitude和latitude:以十进制度为单位的经纬度
    • satellites:用于定位的卫星数量(1-12 之间)
    • altitude:海拔高度(单位:米)
    • velocity:速度(单位:节)
  • geo nmea sentence:发送 NMEA 0183 语句(需要以GP开头),目前支持GPGGA、GPRCM类型

geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx

该语句可模拟 GPS 接收器接收的时间、位置和定位数据。

4. 虚假硬件事件命令

模拟各类硬件事件,用于测试设备对物理操作的响应:

  • event types:列出所有可模拟的硬件事件类型(如 EV_KEY、EV_REL 等)
  • event codes type:列出指定事件类型的具体事件代码
  • event send type[:code]:[value] [...]:发送一个或多个虚假事件,可指定事件类型、代码和值
  • event text message:发送字符串模拟按键输入(消息需为 UTF-8 格式,不支持的字符会被自动舍弃)

5. 电源状态控制命令

模拟设备的电池和充电状态:

  • power display:显示当前电池和充电器状态
  • power ac {on|off}:设置交流电充电状态(开启或关闭)
  • power status {unknown|charging|discharging|not-charging|full}:更改电池状态
  • power present {true|false}:设置电池是否存在
  • power health {unknown|good|overheat|dead|overvoltage|failure}:设置电池健康状况
  • power capacity percent:设置电池剩余电量(0-100 之间的百分比)

6. 传感器管理命令

控制模拟器中的各类传感器,测试应用对传感器数据的处理:

  • sensor status:列出所有传感器及其启用状态(如加速度传感器、陀螺仪等)
  • sensor get sensor-name:获取指定传感器的当前值(以 x:y:z 坐标形式返回,如加速度传感器的三维数值)
  • sensor set sensor-name value-x:value-y:value-z:设置指定传感器的数值

三、总结

模拟器控制台命令为开发者提供了强大的设备控制能力,从基本的设备启停、端口配置,到复杂的地理位置模拟、传感器数据设置,覆盖了测试过程中的多种场景。通过本文的介绍,相信你已经掌握了控制台的连接方法和核心命令的使用。在实际开发中,灵活运用这些命令,能有效提升测试效率,确保应用在不同设备状态下的稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值