天天看點

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

daniel fowler

3.3.1 問題

成功的應用程式必須運作于各種不同的android裝置及其版本上,是以必須在一系列裝置上進行測試。

3.3.2 解決方案

使用android sdk的裝置模拟工具包配置裝置和作業系統的組合,通過在各種組合上的測試能夠減少與裝置硬體差異相關的問題。

3.3.3 讨論

android裝置從廉價到“高規格/高價值”,覆寫了廣泛市場,出現在市場上也已經有數年之久。是以,市面上使用的裝置有着廣泛的硬體選擇和作業系統版本。成功的應用程式就應該能夠在這麼廣泛的裝置上運作,而應用開發人員隻能針對很小範圍内的實際裝置運作程式。幸運的是,開發人員可以使用android虛拟裝置(avd)來提高對應用程式的信心。

編譯後的應用程式可以在實體裝置或者虛拟裝置上測試。avd是android平台在主機(通常是開發機器)上的模拟。

采用avd對測試進行了簡化,這基于如下原因:

可以建立多種avd配置,在不同版本的android上測試應用程式。

可以使用不同的(模拟)硬體配置,例如gps或者無gps。

在eclipse中單擊run按鈕時,可自動啟動avd并安裝編譯後的應用程式。

avd具有比實體裝置更多的android版本和硬體版本組合,可在這種組合環境上測試應用。

在avd上測試大大地減少了在實體上進行的測試。

avd可以和實體裝置一同使用。

不必為了導緻錯誤情況而對實體裝置進行限制——例如,如果你打算在沒有安全數位卡(secure digital,sd)的裝置上測試,隻需建立一個沒有sd卡的avd就行了。

avd可以模拟網絡事件,而不需要花費使用實體裝置的相關成本;例如,可以模拟電話呼叫或者在兩個avd之間發送sms。

可以在不移動桌面的情況下,模拟來自不同實體位置的gps資料。

當應用程式使用者報告缺陷時,可以嘗試用avd模拟他們的硬體配置。

請注意,在舊的開發機器上以及模拟較大的android裝置時,avd的性能将低于實體裝置。

可以用sdk manager程式配置avd(直接從檔案系統或者eclipse中打開),也可以從指令行上建立avd。

為了用sdk manager建立avd,必須首先加載該程式。從eclipse中選擇菜單欄上的window(視窗),然後選擇android sdk and avd manager,如圖3-1所示。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

也可以從檔案系統中直接啟動程式。例如,在windows中,打開c:program filesandroidandroid-sdksdk manager.exe。如果直接從檔案系統啟動程式,sdk manager将會檢查sdk更新,這時選擇cancel(取消)進入主視窗,視窗标題為android sdk and avd manager(見圖3-2)。如果從eclipse打開程式,主視窗将會顯示,而不會檢查sdk更新。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

主視窗的左側列出了“virtual devices”(虛拟裝置)、“installed packages”(已安裝程式包)和“available packages”(可用程式包)。“virtual devices”應該已經被選中;否則,選中它,可以在右邊的表格中列出所有現有的avd。剛剛安裝android sdk時不會列出任何avd。

選擇new按鈕建立avd,将加載“create new android virtual device (avd)”(建立新的android虛拟裝置)視窗(見圖3-3)。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

如下字段用于定義avd:

name

為新的模拟android裝置取一個名稱。使用描述性的名稱,例如,如果你要模拟一個使用2.1版作業系統和中分辨率螢幕(hvga)的裝置,取名為android-v2.1- hvga要好于androiddevice。

target

這是運作于模拟裝置上的android作業系統版本。對于運作版本2.1的裝置,這個字段可以設定為“android 2.1-update1 - api level 7”。

sd card

這個字段指定裝置模拟的sd卡大小,或者選擇現有的sd卡映像(可以在不同的avd模拟之間共享sd卡資料)。輸入以兆位元組(mb)為機關的卡容量,指定新的sd卡。記住,輸入的數字越大,在主計算機系統上建立的模拟sd卡的檔案就越大。作為替代,可以選擇file選項并浏覽現有的sd卡映像(在windows機器上,sdcard.img檔案可以在登入使用者檔案夾中的.android目錄下的avd子目錄中找到)。

snapshot

如果你希望模拟裝置的運作時狀态在會話之間持續儲存,選中enabled複選框,當你在執行長時間運作的一系列測試,而關閉avd你又不希望從頭開始測試時,這個選項很有用。這個選項還加速了avd的啟動。

skin

選擇裝置的螢幕尺寸;顯示一個常見螢幕尺寸的清單(例如hvga、qvga等)。該清單根據作業系統版本而有所不同。你也可以輸入自定義的分辨率。

hardware

hardware(硬體)選項下的表格用于配置avd具備或者不具備某些硬體特性。首先用new按鈕将硬體特性添加到表格中(有幾個硬體特性将添加到表格中,并根據target選項的選擇自動成為預設),這時将會打開一個對話框,用于選擇硬體屬性(見圖3-4)。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

例如,選擇“gps support”(gps支援),然後選擇“ok”。選擇“gps support in the table”旁邊的“yes”,将其修改為“no”,這樣avd将不支援gps(見圖3-5)。

表3-1列出了avd支援的屬性。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)
《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

定義了必要的字段之後,單擊create avd按鈕生成avd。現在,avd出現在android sdk and avd manager視窗中(見圖3-6)。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

現在可以使用start按鈕啟動這個avd,也可以在項目配置中選擇它,在開發中測試應用程式。選擇start按鈕時,顯示 launch options(啟動選項)視窗(見圖3-7)。

啟動選項如下:

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

将顯示縮放為實際尺寸(scale the display to real size)

在較大的計算機顯示器上,通常不需要修改avd比例。android螢幕的dpi值高于計算機顯示器的dpi值,是以,avd螢幕顯得比實體裝置大。如果有必要,可以降低比例以節約螢幕空間。使用這個選項可以使avd在計算機顯示器上以接近真實的螢幕顯示。選項中的值必須設定,以免avd螢幕和鍵盤尺寸過小而無法使用。

清除使用者資料(wipe user data)

當avd啟動時,使用者資料檔案被重置,前一次運作avd時生成的使用者資料将會丢失。

從快照啟動(launch from snapshot)

如果avd啟用了snapshot選項,第一次啟動之後,後續的啟動将會更快。avd從一個快照中加載,不需要再次啟動android作業系統。但是當avd關閉時,因為必須将快照寫到硬碟,關機過程将會較長。

儲存到快照(save to snapshot)

avd關閉時,目前狀态将被儲存,以加快下一次的啟動;但是因為快照要寫回磁盤,關閉的時間較長。如果你已經有了快照,可以清除該選項的選擇,這樣關閉avd時也同樣很快,但是從上一個快照以來的修改将會丢失。

使用launch按鈕啟動avd。一旦加載,avd就可以像其他android裝置一樣使用,由主計算機的鍵盤和滑鼠驅動,見圖3-8。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

在windows上啟動時的錯誤消息(error message on windows when launching)

試圖從windows安裝中啟動avd時,可能出現一個以“invalid command-line parameter”(無效指令行參數)開始的錯誤(見圖3-9)。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

為了修複這個問題,将路徑改為android sdk目錄,不包含任何空格。預設的sdk安裝路徑為c:program filesandroid。program files中的空格必須删除。為了維護有效的目錄名稱,program files應該轉換為microsoft dos格式(亦稱8.3格式)。這通常是前6個字母大寫加上~符号和數字1,即progra~1。如果有其他目錄名以program(後面有空格)開始,數字需要遞增。要檢視program files的dos格式,可以在你的機器上打開指令提示符界面(開始→所有程式→附件→指令提示符),轉到根目錄(即輸入cd并按回車)并運作dir/x指令,則會看到dos格式的目錄名稱将顯示在其全名旁邊(見圖3-10)。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

在eclipse中,使用windows(菜單)→preferences(首選項)菜單并選擇android;在sdk location字段中将program files改為dos版本(見圖3-11)。

《Android應用開發攻略》——3.3 為應用測試設定Android虛拟裝置(AVD)

繼續閱讀