Android 模擬器的控制臺(tái)命令
在前一小節(jié)中,我們學(xué)習(xí)了如何創(chuàng)建模擬器。本節(jié)課程我們學(xué)習(xí)如何使用模擬器的控制臺(tái)。
每個(gè)正在運(yùn)行的虛擬設(shè)備都提供了一個(gè)控制臺(tái),可查詢和控制模擬設(shè)備的環(huán)境。例如,當(dāng)我們的應(yīng)用在模擬器上運(yùn)行時(shí),我們可以使用控制臺(tái)來管理端口重定向、網(wǎng)絡(luò)特性和電話事件等。
1. 啟動(dòng)和停止控制臺(tái)會(huì)話
要訪問模擬器控制臺(tái)并輸入命令,需要從計(jì)算機(jī)終端窗口中使用 telnet 連接到控制臺(tái)端口,并提供模擬器的身份驗(yàn)證令牌。每當(dāng)控制臺(tái)顯示 OK 時(shí),表明它已準(zhǔn)備好接受命令。
要連接到正在運(yùn)行的虛擬設(shè)備的控制臺(tái),請(qǐng)執(zhí)行以下操作:
第一步: 打開終端窗口并輸入以下命令:
telnet localhost console-port
上圖中的 console-port 是5554,那如何確定自己模擬器的 console-port 是多少呢?
模擬器設(shè)置窗口的標(biāo)題列出了控制臺(tái)端口號(hào),型如:Pixel_2_API_29:5554
第二步: 控制臺(tái)顯示 OK 后,輸入 auth auth_token 命令:
auth auth_token
-
auth_token 是從哪里獲得呢?在第 1 步進(jìn)行 telnet 連接時(shí),命令行輸出中已經(jīng)告訴了我們 auto_token 就在 .emulator_console_auth_token 文件中。
-
.emulator_console_auth_token 文件內(nèi)容如下:
-
輸入 auth 命令:
Tips:此時(shí)我們已經(jīng)連上模擬器控制臺(tái)并完成身份驗(yàn)證。
第三步: 連接到控制臺(tái)后,輸入控制臺(tái)命令:
-
模擬器控制臺(tái)要求先進(jìn)行身份驗(yàn)證,然后才能輸入控制臺(tái)命令,第2步我們已經(jīng)完成了身份驗(yàn)證;
-
輸入 help 可查看控制臺(tái)命令的列表并了解特定的命令;
第四步: 要退出控制臺(tái)會(huì)話,請(qǐng)輸入 quit 或 exit;
第五步: 下面是一個(gè)會(huì)話示例:
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. 模擬器控制臺(tái)命令參考
下面整合和介紹了模擬器控制臺(tái)常用命令及其參數(shù)的含義。
2.1 常規(guī)命令
命令 | 說明 |
---|---|
avd {stop\start\status\name} | 查詢、控制和管理虛擬設(shè)備。 |
avd snapshot {list\save name\load name\delete name} | 利用快照保存和恢復(fù)設(shè)備狀態(tài)。 |
fold | 折疊設(shè)備以顯示其較小的屏幕配置(如果設(shè)備可折疊且當(dāng)前處于展開狀態(tài))。 |
unfold | 展開設(shè)備以顯示其較大的屏幕配置(如果設(shè)備可折疊且當(dāng)前處于折疊狀態(tài))。 |
kill | 終止虛擬設(shè)備。 |
ping | 檢查虛擬設(shè)備是否正在運(yùn)行。 |
rotate | 以 45 度的增量逆時(shí)針旋轉(zhuǎn) AVD。 |
2.2 地理位置命令
命令 | 說明 |
---|---|
geo fix longitude latitude satellites [altitude] | 向模擬器發(fā)送簡(jiǎn)單的 GPS 定位。以十進(jìn)制度為單位指定 longitude 和 latitude。使用 1 到 12 之間的數(shù)字指定用于確定位置的 satellites 數(shù)量,并以米為單位指定 altitude。 |
geo nmea sentence | 向模擬設(shè)備發(fā)送 NMEA 0183 語句,就像是從模擬的 GPS 調(diào)制解調(diào)器發(fā)送的一樣。讓 sentence 以“KaTeX parse error: Expected 'EOF', got '”' at position 3: GP”?開頭。目前僅支持“GPGGA”和“$GPRCM”語句。以下示例是一個(gè) GPGGA(全球定位系統(tǒng)定位數(shù)據(jù))語句,它描述了 GPS 接收器接收的時(shí)間、位置和定位數(shù)據(jù): |
2.3 電源狀態(tài)命令
命令 | 說明 |
---|---|
power display | 顯示電池和充電器狀態(tài)。 |
power ac {on\off} | 將交流電充電狀態(tài)設(shè)為 on 或 off。 |
power status {unknown\charging\discharging\not-charging\full} | 按照說明更改電池狀態(tài)。 |
power present {true\false} | 設(shè)置電池存在狀態(tài)。 |
power health {unknown\good\overheat\dead\overvoltage\failure} | 設(shè)置電池運(yùn)行狀況。 |
power capacity percent | 將電池剩余電量狀態(tài)設(shè)為 0 到 100 之間的百分比。 |
2.4 網(wǎng)絡(luò)連接狀態(tài)命令
命令 | 說明 |
---|---|
network status | 檢查網(wǎng)絡(luò)狀態(tài)以及當(dāng)前的延遲和速度特性。 |
network delay latency | 更改模擬網(wǎng)絡(luò)延遲。 |
network speed speed | 更改網(wǎng)絡(luò)傳輸速率。 |
2.5 電話模擬命令
命令 | 說明 |
---|---|
gsm {call\accept\cancel\busy} phonenumber | 模擬電話的呼入、接聽、掛斷、繁忙。 |
gsm {data\voice} state | data state 命令用于更改 GPRS 數(shù)據(jù)連接的狀態(tài),data voice state 則用于更改 GPRS 語音連接的狀態(tài)。 |
gsm hold | 將通話狀態(tài)更改為 hold。只有在當(dāng)前狀態(tài)為 active 或 waiting 時(shí),才能將通話狀態(tài)更改為 hold。 |
gsm list | 列出所有呼入電話和外撥電話及其通話狀態(tài)。 |
gsm status | 報(bào)告當(dāng)前的 GSM 語音/數(shù)據(jù)連接狀態(tài)。相關(guān)的值就是前述 voice 和 data 命令的值。 |
2.6 短信模擬命令
命令 | 說明 |
---|---|
sms send sender-phone-number textmessage | 生成收到的模擬短信。 |
3. 控制臺(tái)命令實(shí)操
3.1 模擬電話
- 模擬10086來電;
gsm call 10086
- 模擬接聽來電;
gsm accept 10086
- 模擬掛斷來電;
gsm cancel 10086
- 下面是完整會(huì)話示例。
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
- 下面是完整會(huì)話示例。
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. 小結(jié)
本節(jié)課程我們主要學(xué)習(xí)了 Android 模擬器控制臺(tái)的使用方法。本節(jié)課程的重點(diǎn)如下:
- 模擬器控制臺(tái)的連接及身份驗(yàn)證;
- 常用控制臺(tái)命令的實(shí)際操作。