Android 模拟器的控制台命令
在前一小节中,我们学习了如何创建模拟器。本节课程我们学习如何使用模拟器的控制台。
每个正在运行的虚拟设备都提供了一个控制台,可查询和控制模拟设备的环境。例如,当我们的应用在模拟器上运行时,我们可以使用控制台来管理端口重定向、网络特性和电话事件等。
1. 启动和停止控制台会话
要访问模拟器控制台并输入命令,需要从计算机终端窗口中使用 telnet 连接到控制台端口,并提供模拟器的身份验证令牌。每当控制台显示 OK 时,表明它已准备好接受命令。
要连接到正在运行的虚拟设备的控制台,请执行以下操作:
第一步: 打开终端窗口并输入以下命令:
telnet localhost console-port
上图中的 console-port 是5554,那如何确定自己模拟器的 console-port 是多少呢?
模拟器设置窗口的标题列出了控制台端口号,型如:Pixel_2_API_29:5554
第二步: 控制台显示 OK 后,输入 auth auth_token 命令:
auth auth_token
-
auth_token 是从哪里获得呢?在第 1 步进行 telnet 连接时,命令行输出中已经告诉了我们 auto_token 就在 .emulator_console_auth_token 文件中。
-
.emulator_console_auth_token 文件内容如下:
-
输入 auth 命令:
Tips:此时我们已经连上模拟器控制台并完成身份验证。
第三步: 连接到控制台后,输入控制台命令:
-
模拟器控制台要求先进行身份验证,然后才能输入控制台命令,第2步我们已经完成了身份验证;
-
输入 help 可查看控制台命令的列表并了解特定的命令;
第四步: 要退出控制台会话,请输入 quit 或 exit;
第五步: 下面是一个会话示例:
pt@Win10-Panda:~$ telnet localhost 5554
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
'C:\Users\panda\.emulator_console_auth_token'
OK
auth KeGgPVHDN7YifXfZ
Android Console: type 'help' for a list of commands
OK
help
Android console commands:
help|h|?
help-verbose
ping
automation
event
geo
gsm
cdma
crash
crash-on-exit
kill
restart
network
grpc
power
quit|exit
redir
sms
avd
qemu
sensor
physics
finger
debug
rotate
screenrecord
fold
unfold
multidisplay
icebox
Try 'help-verbose' for more description
Try 'help <command>' for command-specific help
OK
exit
Connection closed by foreign host.
pt@Win10-Panda:~$
2. 模拟器控制台命令参考
下面整合和介绍了模拟器控制台常用命令及其参数的含义。
2.1 常规命令
命令 | 说明 |
---|---|
avd {stop\start\status\name} | 查询、控制和管理虚拟设备。 |
avd snapshot {list\save name\load name\delete name} | 利用快照保存和恢复设备状态。 |
fold | 折叠设备以显示其较小的屏幕配置(如果设备可折叠且当前处于展开状态)。 |
unfold | 展开设备以显示其较大的屏幕配置(如果设备可折叠且当前处于折叠状态)。 |
kill | 终止虚拟设备。 |
ping | 检查虚拟设备是否正在运行。 |
rotate | 以 45 度的增量逆时针旋转 AVD。 |
2.2 地理位置命令
命令 | 说明 |
---|---|
geo fix longitude latitude satellites [altitude] | 向模拟器发送简单的 GPS 定位。以十进制度为单位指定 longitude 和 latitude。使用 1 到 12 之间的数字指定用于确定位置的 satellites 数量,并以米为单位指定 altitude。 |
geo nmea sentence | 向模拟设备发送 NMEA 0183 语句,就像是从模拟的 GPS 调制解调器发送的一样。让 sentence 以“KaTeX parse error: Expected 'EOF', got '”' at position 3: GP”̲开头。目前仅支持“GPGGA”和“$GPRCM”语句。以下示例是一个 GPGGA(全球定位系统定位数据)语句,它描述了 GPS 接收器接收的时间、位置和定位数据: |
2.3 电源状态命令
命令 | 说明 |
---|---|
power display | 显示电池和充电器状态。 |
power ac {on\off} | 将交流电充电状态设为 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 之间的百分比。 |
2.4 网络连接状态命令
命令 | 说明 |
---|---|
network status | 检查网络状态以及当前的延迟和速度特性。 |
network delay latency | 更改模拟网络延迟。 |
network speed speed | 更改网络传输速率。 |
2.5 电话模拟命令
命令 | 说明 |
---|---|
gsm {call\accept\cancel\busy} phonenumber | 模拟电话的呼入、接听、挂断、繁忙。 |
gsm {data\voice} state | data state 命令用于更改 GPRS 数据连接的状态,data voice state 则用于更改 GPRS 语音连接的状态。 |
gsm hold | 将通话状态更改为 hold。只有在当前状态为 active 或 waiting 时,才能将通话状态更改为 hold。 |
gsm list | 列出所有呼入电话和外拨电话及其通话状态。 |
gsm status | 报告当前的 GSM 语音/数据连接状态。相关的值就是前述 voice 和 data 命令的值。 |
2.6 短信模拟命令
命令 | 说明 |
---|---|
sms send sender-phone-number textmessage | 生成收到的模拟短信。 |
3. 控制台命令实操
3.1 模拟电话
- 模拟10086来电;
gsm call 10086
- 模拟接听来电;
gsm accept 10086
- 模拟挂断来电;
gsm cancel 10086
- 下面是完整会话示例。
pt@Win10-Panda:~$ telnet localhost 5554
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
'C:\Users\panda\.emulator_console_auth_token'
OK
auth KeGgPVHDN7YifXfZ
Android Console: type 'help' for a list of commands
OK
gsm call 10086
OK
gsm accept 10086
OK
gsm cancel 10086
OK
3.2 模拟短信
模拟10086来短信:
sms send This is a test text message
- 下面是完整会话示例。
pt@Win10-Panda:~$ telnet localhost 5554
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
'C:\Users\panda\.emulator_console_auth_token'
OK
auth KeGgPVHDN7YifXfZ
Android Console: type 'help' for a list of commands
OK
sms send This is a test text message
OK
4. 小结
本节课程我们主要学习了 Android 模拟器控制台的使用方法。本节课程的重点如下:
- 模拟器控制台的连接及身份验证;
- 常用控制台命令的实际操作。