android模擬器命令詳解

來源:互聯網
上載者:User
Android模擬器ndroid SDK內建一個行動裝置模擬器 — 它是一個可以運行在你電腦上的虛擬設備. Android模 擬器可以讓你不需使用物理裝置即可預覽、開發與測試Android應用程式.
Android模擬器能夠類比除了接聽和撥打到電話外的所有行動裝置上的典型功能和行為. 如右圖所示, Android模擬器提供了大量的導航和修飾鍵,你可以通過滑鼠或鍵盤點擊這些按鍵來為你的應用程式產生 事件. 同時它還有一個螢幕用於顯示Android內建應用程式和你自己的應用程式.
為了便於類比和測試應用程式, Android模擬器允許你你的應用程式通過Android平台服務調用其他程 序、訪問網路、播放音頻和視頻、儲存和**資料、通知使用者、渲染映像過渡和情境.
Android模擬器同樣具有強大的調試能力,例如能夠記錄核心輸出的控制台、類比程式中斷(比如接受 簡訊或打入電話)、類比資料通道中的延時效果和遺失。
下面的章節將提供關於模擬器的詳細資料,以及如何在開發應用程式中使用模擬器。

  下載 (130.48 KB)

2010-3-5 13:38

啟動和關閉模擬器

要啟動Android模擬器,首先進入SDK的tools/檔案夾,然後輸入 emulator 或 ./emulator。這個操作將初始化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 [val]] ... [-qemu args]
複製代碼下表總結了所有有效選項。

類型 選項 描述 注釋
協助 -help 以列表的形式列印模擬器的所有命令 
資料 -data 使用<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檔案作為音訊輸出 
-noa io 禁用Android的音頻支援 預設禁用
-radio <device> 將無線數據機介面重新導向到主機特徵裝置 
-usea io 啟用Android音頻支援 預設不啟用
網路 -netdelay <delay> 設定網路延遲類比的延遲時間為<delay>. 預設值是none。請參考網路延遲類比中表”支援的<delay>值”
-netfast -netspeed full -netdelay none的捷徑 
-netspeed <speed> 設定網速類比的加速值為<speed>. 預設值為full。請參考網速類比中表”支援的<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,比如5556、5558…… 等。你可以在啟動模擬器是使用-verbose選項來檢測該模擬器執行個體使用的連接埠號碼,在調試 輸出的找到以”emulator console running on port number“這一行。 另外, 你可 以在命令列中使用adb devices來查看模擬器執行個體和他們的連接埠列表。最多可以有16個類比 器執行個體同時運行控制台。

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

連接埠重新導向

你可以在模擬器運行期間添加和刪除連接埠重新導向。串連上控制台後,你可以通過下面的方法管理連接埠 重新導向: redir <list|add|del>redir
複製代碼支援下表列出的子命令:

子命令 描述 注釋
list 列出當前的連接埠重新導向 (min 150, max 550)
add <protocol>:<host-port>:<gst-port> 添加新的連接埠重新導向 <protocol> 必須是”tcp” 或 “ p”<host-port> 是主機上開啟的連接埠號碼<gst-port> 是向模擬器/裝置發送資料的連接埠號碼
del <protocol>:<host-port> 刪除連接埠重新導向 <protocol> and <host-port>的含義同上

網路狀況

你可以利用控制台檢測網路狀況和當前延遲、加速特性。要想檢測網路狀態需要串連到控制台,使用 netstatus 命令。下面是命令和輸出的例子。 network status
複製代碼網路延遲類比

模擬器允許你類比多種網路延遲等級, 因此你可以在更接近真實情況的環境下測試你的應用程式。你 可以在模擬器啟動時設定延遲等級或範圍,也可以在模擬器運行期間通過控制台動態修改延遲。

要想在類比啟動時設定延遲,使用-netdelay選項,後面跟一個合法的 <delay>值。這裡給出一些例子: 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卡的插入/彈出
不支援藍芽

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.