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 模擬器控制臺的使用方法。本節課程的重點如下:
- 模擬器控制臺的連接及身份驗證;
- 常用控制臺命令的實際操作。