亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

全部開發者教程

Android 模擬器的控制臺命令

在前一小節中,我們學習了如何創建模擬器。本節課程我們學習如何使用模擬器的控制臺。

每個正在運行的虛擬設備都提供了一個控制臺,可查詢和控制模擬設備的環境。例如,當我們的應用在模擬器上運行時,我們可以使用控制臺來管理端口重定向、網絡特性和電話事件等。

1. 啟動和停止控制臺會話

要訪問模擬器控制臺并輸入命令,需要從計算機終端窗口中使用 telnet 連接到控制臺端口,并提供模擬器的身份驗證令牌。每當控制臺顯示 OK 時,表明它已準備好接受命令。

要連接到正在運行的虛擬設備的控制臺,請執行以下操作:

第一步: 打開終端窗口并輸入以下命令:

telnet localhost console-port

圖片描述
上圖中的 console-port5554,那如何確定自己模擬器的 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 可查看控制臺命令的列表并了解特定的命令;
    圖片描述

第四步: 要退出控制臺會話,請輸入 quitexit

第五步: 下面是一個會話示例:

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 模擬電話

  1. 模擬10086來電;
gsm call 10086

圖片描述

  1. 模擬接聽來電;
gsm accept 10086

圖片描述

  1. 模擬掛斷來電;
gsm cancel 10086

圖片描述

  1. 下面是完整會話示例。
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 模擬器控制臺的使用方法。本節課程的重點如下:

  • 模擬器控制臺的連接及身份驗證;
  • 常用控制臺命令的實際操作。