史上最強勁的android模擬器命令詳解

史上最強勁的android模擬器命令詳解

http://www.eoeandroid.com/thread-23281-1-1.html html

Android模擬器ndroid SDK自帶一個移動設備模擬器 — 它是一個能夠運行在你電腦上的虛擬設備. Android模 擬器可讓你不需使用物理設備便可預覽、開發和測試Android應用程序.
Android模擬器可以模擬除了接聽和撥打電話外的全部移動設備上的典型功能和行爲. 如右圖所示, Android模擬器提供了大量的導航和控制鍵,你能夠經過鼠標或鍵盤點擊這些按鍵來爲你的應用程序產生 事件. 同時它還有一個屏幕用於顯示Android自帶應用程序和你本身的應用程序.
爲了便於模擬和測試應用程序, Android模擬器容許你你的應用程序經過Android平臺服務調用其餘程 序、訪問網絡播放音頻和視頻、保存和**數據、通知用戶、渲染圖像過渡和場景.
Android模擬器一樣具備強大的調試能力,例如可以記錄內核輸出的控制檯、模擬程序中斷(好比接受 短信或打入電話)、模擬數據通道中的延時效果和遺失。
下面的章節將提供關於模擬器的詳細信息,以及如何在開發應用程序中使用模擬器。


啓動和關閉模擬器

要啓動Android模擬器,首先進入SDKtools/文件夾,而後輸入 emulator 或 ./emulator。這個操做將初始化Android系統,你將會在屏幕 上看到模擬器窗口。
要關閉模擬器,只須要關閉模擬器窗口便可。

操做模擬器


你能夠經過模擬器的啓動選項和控制檯命令來控制模擬環境的行爲和特性。一旦模擬器啓動,你就能夠經過鍵盤和鼠標來」按」 模擬器的按鍵,從而操做模擬器。
下面的表格總結了模擬器按鍵可鍵盤按鍵之間的映射關係。 android

模擬器按鍵 鍵盤按鍵
後退 ESC
菜單 F1  PgUp
開始 F2  PgDn
呼叫 F3
掛斷 F4
F5, F6 未分配
電源按鍵 F7
禁用/啓用全部網絡 F8
開始跟蹤 F9 (當且僅當有-trace標記時有效)
中止跟蹤 F10 (當且僅當有-trace標記時有效)
主頁 HOME
方向鍵 左/上/右/下 小鍵盤 4/8/6/2
方向鍵 中心建 小鍵盤 5
調低音量 小鍵盤 負號(-)
調高音量 小鍵盤 加號(+)


模擬器啓動選項

Android模擬器提供了不少啓動選項,你能夠在啓動模擬器時指定,來控制其外觀和行爲。下面是用命 令行的方式啓動模擬器並指定參數的語法: 網絡

  • emulator [-option [value]] ... [-qemu args]



下表總結了全部有效的選項。
tcp

類型 選項 描述 註釋
幫助 -help 以列表的形式打印模擬器的全部命令
數據 -data [file] 使用<file>看成用戶數據的磁盤鏡像 若是沒有-data,模擬器會在~/.android (Linux/Mac) 或C:\Documents and Settings\<user>\Local Settings\Android (Windows)中查找文件名爲」userdata.img」的文件。 
若是使用了-data <file>但<file>不存在,模擬器會在那個位置建立一個文件
-ramdisk <file> 使用<file>做爲RAM鏡像 默認值爲<system>/ramdisk.img
-sdcard <file> 使用<file> 做爲SD卡鏡像 默認值爲<system>/sdcard.img
-wipe-data 啓動前清除用戶磁盤鏡像中的全部數據(參考-data)
調試 -console 容許當前中斷使用控制檯Shell
-debug-kernel 將內核輸出發送到控制檯
-logcat <logtags> 容許根據給定的標籤爲輸出分類 若是定義了環境變量ANDROID_LOG_TAGS而且不爲空,
它的值將被做爲logcat的默認值。
-trace <name> 容許代碼剖析(按F9鍵開始)
-verbose 容許詳細信息輸出
-verbosekeys 容許詳細輸出按鍵信息
媒體 -mic <device or file> 使用設備或者WAV文件做爲音頻輸出
-noaudio 禁用Android的音頻支持 默認禁用
-radio <device> 將無線調制解調器接口重定向到主機特徵設備
-useaudio 啓用Android音頻支持 默認不啓用
網絡 -netdelay <delay> 設置網絡延遲模擬的延遲時間爲<delay>. 默認值是none。請參考[url=http:/#.E7.BD.91.E9.80.9F.E6.A8.A1.E6.8B.9F]網絡延遲模擬[/url]中表」支持的<delay>值」
-netfast -netspeed full -netdelay none的快捷方式
-netspeed <speed> 設置網速模擬的加速值爲<speed>. 默認值爲full。請參考[url=http:/#.E7.BD.91.E9.80.9F.E6.A8.A1.E6.8B.9F]網速模擬[/url]中表」支持的<speed>值」
系統 -image <file> 使用<file>做爲系統鏡像 默認值爲<system>/system.img
-kernel <file> 使用<file> 做爲模擬器內核
-nojni  
-qemu 傳遞qemu參數
-qemu -h 顯示qemu幫助信息
-system <dir> 在<dir>目錄下查找系統、RAM和用戶數據鏡像
UI -flashkeys 在設備皮膚上閃爍按下的鍵
-noskin 不使用任何模擬器皮膚
-onion <image> 在屏幕上使用覆蓋圖 不支持JPEG格式圖片,僅支持PNG格式圖片
-onion-alpha <percent> 指定onion皮膚的半透明值(單位%). 默認值爲50
-skin <skinID> 用指定皮膚啓動模擬器 SDK提供了4個可選皮膚: 
QVGA-L (320×240, 風景) (默認)QVGA-P (240×320, 肖像)HVGA-L (480×320, 風景)HVGA-P (320×480, 肖像)
-skindir <dir> 在<dir>目錄下查找皮膚


使用模擬器控制檯


每個運行中的模擬器實例都包括一個控制檯,你能夠利用控制檯動態的查詢和控制模擬設備的環境 。例如,你能夠利用控制檯動態的管理端口映射和網絡特性,還能夠模擬電話時間。要想進入控制檯輸入 命令,你須要使用telnet鏈接到控制檯的端口號。

你可使用下面的命令隨時隨地鏈接到任何一個運行中的模擬器實例: 工具

  • telnet localhost <port>



假設第一個模擬器實例的控制檯使用5554端口,下一個實例使用的端口號會加2,好比555六、5558…… 等。你能夠在啓動模擬器是使用-verbose選項來檢測該模擬器實例使用的端口號,在調試 輸出的找到以」emulator console running on port number「這一行。 另外, 你可 以在命令行中使用adb devices來查看模擬器實例和他們的端口列表。最多能夠有16個模擬 器實例同時運行控制檯。

注意:模擬器**端口5554-5587的來自任何電腦的鏈接。未來發布的版本將只接受本 機的鏈接,但目前,你須要用防火牆阻斷外部對你開發設備的5554-5587這些端口的鏈接。
一旦鏈接上控制檯, 你能夠輸入help [command]來查看命令列表和指定命令的教程
要離開控制檯會話, 使用quit 或 exit 命令。
下面的章節將介紹控制檯的主要功能區域。

端口重定向

你能夠在模擬器運行期間添加和刪除端口重定向。鏈接上控制檯後,你能夠經過下面的方法管理端口 重定向: 測試

  • redir <list|add|del>redir



支持下表列出的子命令:
ui

子命令 描述 註釋
list 列出當前的端口重定向 (min 150, max 550)
add <protocol>:<host-port>:<guest-port> 添加新的端口重定向 <protocol> 必須是」tcp」 或 「udp」<host-port> 是主機上開啓的端口號<guest-port> 是向模擬器/設備發送數據的端口號
del <protocol>:<host-port> 刪除端口重定向 <protocol> and <host-port>的含義同上



網絡情況

你能夠利用控制檯檢測網絡情況和當前延遲、加速特性。要想檢測網絡狀態須要鏈接到控制檯,使用 netstatus 命令。下面是命令和輸出的例子url

  • network status



網絡延遲模擬

模擬器容許你模擬多種網絡延遲等級, 所以你能夠在更接近真實狀況的環境下測試你的應用程序。你 能夠在模擬器啓動時設置延遲等級或範圍,也能夠在模擬器運行期間經過控制檯動態修改延遲。

要想在模擬啓動時設置延遲,使用-netdelay選項,後面跟一個合法的 <delay>值。這裏給出一些例子: spa

  • emulator -netdelay gprs
  • emulator -netdelay 40 100



要想在模擬器運行期間動態修改網絡延遲,須要鏈接上控制檯使用netdelay命令,後面 跟合法的 <delay>值。下表中列出了合法的<delay>操作系統

  • network delay gprs<delay>


值的格式爲下面的一種(單位爲毫秒):

描述 註釋
gprs GPRS (min 150, max 550)
edge EDGE/EGPRS (min 80, max 400)
umts UMTS/3G (min 35, max 200)
none 沒有延遲 (min 0, max 0)
<num> 模擬一個準確的延遲(毫秒)
<min>:<max> 模擬一個指定的延遲範圍(min, max 毫秒)



網速模擬

模擬器一樣容許你模擬多種網絡傳輸速度。你能夠在模擬器啓動時指定傳輸速度或範圍,也能夠在模 擬器啓動後經過控制檯動態修改傳輸速度。
要想在模擬器啓動時設置網絡傳輸速度,使用-netspeed選項,後面跟合法的 <speed>值。下面是一些例子:

  • emulator -netspeed gsm
  • emulator -netspeed 14.4 80



要想在模擬器運行中動態改變網絡傳輸速度,須要鏈接上控制檯使用netspeed命令,後 面跟合法的<speed>值。下表中列出了合法的<speed>

  • network speed 14.4 80



<speed>值的格式爲下面的一種(單位爲kb/s):

描述 註釋
gsm GSM/CSD (Up: 14.4, down: 14.4)
hscsd HSCSD (Up: 14.4, down: 43.2)
gprs GPRS (Up: 40.0, down: 80.0)
edge EDGE/EGPRS (Up: 118.4, down: 236.8)
umts UMTS/3G (Up: 128.0, down: 1920.0)
hsdpa HSDPA (Up: 348.0, down: 14400.0)
full 無限制 (Up: 0.0, down: 0.0)
<num> 設置一個上行和下行公用的準確速度
<up>:<down> 分別爲上行和下行設置準確的速度



電話功能模擬

Android模擬器擁有本身的GSM模塊容許你在模擬器上模擬電話功能。例如,你能夠模擬打入電話和建 立/終止數據鏈接。Android系統模擬電話呼叫跟真實狀況同樣。這個版本暫不支持電話錄音。
你能夠經過控制檯訪問模擬器的電話功能。鏈接上控制檯後,你可使用

  • gsm <call|data|voice>



來調用電話功能。
gsm命令支持下表列出的子命令。

子命令 描述 註釋
call <phonenumber> 模擬來自電話號碼爲<phonenumber>的呼叫
voice <state> 修改GPRS語音鏈接的狀態爲<state> 合法的<state>值爲: 
unregistered — 無可用網絡home — 處於本地網,無漫遊roaming — 處於漫遊網searching — 查找網絡denied — 僅能用緊急呼叫off — 同’unregistered’on — 同’home’
data <state> 修改GPRS數據鏈接的狀態爲<state>. 合法的<state>值爲: 
unregistered — 無可用網絡home — 處於本地網,無漫遊roaming — 處於漫遊網searching — 查找網絡denied — 僅能用緊急呼叫off — 同’unregistered’on — 同’home’


使用模擬器皮膚

你可讓模擬器使用下表介紹的4種皮膚之一。要想指定皮膚,在啓動模擬器是使用-skin <skinID>選項。
例如:

  • emulator -skin HVGA-L



注意:<skinID> 必須用大寫(若是你的開發設備大小敏感)。

皮膚ID 描述
QVGA-L 320×240, 橫屏 (默認)
QVGA-P 240×320, 豎屏
HVGA-L 480×320, 橫屏
HVGA-P 320×480, 豎屏

 

運行多個模擬器實例

若是必要的話,你能夠同時運行多個模擬器實例。每一個模擬器實例使用獨立的用戶數據內存和不一樣的 控制檯端口。這令你能夠獨立的管理每個模擬器實例。
然而,若是你要運行多個模擬器實例,請注意每一個實例存儲跨會話的持久用戶數據的能力—用戶 設置和安裝的應用程序—會受限制。具體以下:

  • 只有第一個模擬器實例能根據會話保存用戶數據。默認狀況下它把用戶數據保存在開發設備 的~/.android/userdata.img (on Linux and Mac) 或C:\Documents and Settings\<user>\Local Settings\Android\userdata.img (on Windows)文件裏。你能夠 在啓動模擬器時使用-data選項來控制用戶數據的存儲(和加載)位置(請參考啓動選項)。
  • 在第一個實例後啓動的模擬器實例(並行的)在會話過程當中也保存用戶數據;但它們but they 不 爲下一個會話保存它。這些實例將數據保存在臨時文件中,當實例退出時,相應的臨時文件會被刪 除。



在模擬器上安裝應用程序

要想在模擬器上安裝應用程序安裝,要用到adb工具。
注意:模擬器經過重啓保存用戶設置和安裝的程序。默認狀況下,模擬器將數據保存在開發設備的一 個文件裏。在Linux和Mac操做系統下,模擬器將用戶數據報訊在~/.android/userdata.img 。在Windows下,模擬器將數據保存在C:\Documents and Settings\<user>\Local Settings\Android\userdata.img。模擬器用userdata.img文件的內容做爲data/的 目錄。

SD卡模擬

你能夠建立磁盤鏡像並在模擬器啓動時加載它,來模擬設備中用戶的SD卡。下面的章節將介紹如何創 建磁盤鏡像、如何向磁盤鏡像像拷貝文件和如何在模擬器啓動時加載鏡。
注意:只能在模擬器啓動是加載磁盤鏡像。同理,模擬器運行時不能移除SD卡。然而,你能夠經過adb 或模擬器瀏覽、發送、拷貝和刪除模擬SD卡上的文件。
同時還要注意,模擬SD卡的大小不能超過2GB。

建立磁盤鏡像

你能夠用SDK中的mksdcard工具來建立能夠在模擬器啓動時加載的FAT32磁盤鏡像。你能夠在SDK的 tools/目錄下找到mksdcard,用下面的命令船檢磁盤鏡像:

  • mksdcard <size> <file>
  • 例句:
  •    mksdcard 512M SD.IMG  //這樣就會在tools目錄下生成一個512M的sd.img文件
  • 啓動一個帶有SD卡的模擬器:
  •    emulator -avd g2 -sdcard sd.img  //g2是先前設置好的AVD名稱





拷貝文件到磁盤鏡像

一旦你建立了一個磁盤鏡像,你就能夠在模擬器加載它以前拷貝文件到鏡像中。要拷貝文件,你能夠 將鏡像加載爲循環設備而後向裏面拷貝文件,或者你可使用mtools工具包中的mcopy直接將文件拷貝到 鏡像中。mtools包在Linux、Mac和Windows下都可用。


在模擬器啓動時加載磁盤鏡像

要想在模擬器中加載FAT32格式的磁盤,啓動模擬器時帶上-sdcard標記並指定鏡像的名 稱和路徑(相對於當前工做目錄):

  • emulator -sdcard <filepath>




故障排除

adb工具把模擬器當成是一個真實的物理設備。所以,你須要在使用adb命令–例如 install–時加上-d標記。-d 標記容許你在衆多鏈接設備中指定使用哪個設備做爲命令 的目標。若是不指定-d,模擬器會選擇列表中的第一個設備。向瞭解更多關於adb的信息,請參考 Android Debug Bridge。
對於運行在Mac OS X上的模擬器,若是你在啓動模擬器時遇到」Warning: No DNS servers found」錯誤,請查/etc/resolv.conf文件是否存在。若是不存在,請在命令窗口中運行下面的命令 :

  • ln -s /private/var/run/resolv.conf /etc/resolv.conf




模擬器的限制

這一版的模擬器存在以下限制:

  • 不支持呼叫和接聽實際來電;但能夠經過控制檯模擬電話呼叫(呼入和呼出)
  • 不支持USB鏈接
  • 不支持相機/視頻捕捉
  • 不支持音頻輸入(捕捉);但支持輸出(重放)
  • 不支持擴展耳機
  • 不能肯定鏈接狀態
  • 不能肯定電池電量水平和交流充電狀態
  • 不能肯定SD卡的插入/彈出
  • 不支持藍牙
相關文章
相關標籤/搜索