http://code.google.com/p/androidbmi/wiki/PlayEmulator
使用 Android 虛擬機器
我們已經透過「Eclipse」開發環境,開啟了「ApiDemos」專案。本章將講解如何設定和操作 Android 虛擬機器。
設定 Android 虛擬機器
現在我們還不忙著開始寫程式,先花點時間,來看看怎麼在開發環境中,透過「Android 虛擬機器」來執行應用程式吧。
由於在剛開始開發時,我們手邊並不一定已擁有 Android 設備。因此 Android 開發工具亦提供了相當強大的模擬器,能讓我們自由配置,模擬各種硬體規格的設備。在 Android 中一律把 Android 模擬器稱作「Android 虛擬機器」(Android Virtual Device),簡寫為「AVD」。
「Android 軟體開發套件」(SDK) 1.5 以上的版本提供了支援不同目標版本虛擬機器的功能,在使用虛擬機器之前,必須先建立一個虛擬機器後才可在 Eclipse 開發環境中使用。
在1.6版之後可以直接在AVD管理工具中建立虛擬機器。在Eclipse中選擇「Window->Android SDK and AVD Manager」來開啟AVD管理工具,AVD管理工具的使用方式在管理 SDK一章有提及,不在此詳述。
SDK 中也提供了一個「android」命令行工具(在 android-sdk/tools 中),可以用來建立新專案或是管理虛擬機器。在此我們使用「android」命令行工具來新建立一個虛擬機器。
列出虛擬機器類型
首先,把「android-sdk/tools 」目錄加入系統路徑,我們以後就可以在任何地方使用「android-sdk/tools 」目錄下的各種命令。
在 Windows 2000、XP、2003、Windows 7 這些作業系統裡,點選「控制台 > 系統 > 進階 > 環境變數」。在「系統變數(S)」欄中,選取「PATH」變數名稱後,再點選「編輯(I)」按鈕。
再此假設您安裝 Android SDK 的路徑是「C:\android-sdk\tools」,接著在彈出的視窗中將「;C:\android-sdk\tools」(注意要以分號隔開)這字串添在原本的字串之後,按下確定後重新啟動作業系統。
重開系統後選擇「開始 > 執行」,在彈出的輸入框中輸入「cmd」,即可開啟命令行工具並繼續以下的動作。
或是您也可以直接打開命令行,進入「android-sdk/tools 」目錄,輸入以下命令:
$ android list targets
在沒有將 Android SDK 加入路徑的情況下,在 Linux 或 Mac 環境中要輸入
$ ./android list targets
螢幕上會列出所有支援的虛擬機器類型
$ android list targets Available Android targets: id: 1 or "android-5" Name: Android 2.0 Type: Platform API level: 5 Revision: 1 Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854 id: 2 or "Google Inc.:Google APIs:5" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 1 Description: Android + Google APIs Based on Android 2.0 (API level 5) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: WVGA854, WQVGA400, HVGA (default), WQVGA432, WVGA800, QVGA
在這邊列出了三種虛擬機器類型。分別是編號(id)為 1 的 Android 2.0 虛擬機器,與編號(id)為 2 的「Google APIs」,Google 把自己提供的應用程式(如 Google Map)放在「Google APIs」這個虛擬機器類型中,因此要開發 Google Map 等 Google 專屬應用程式時,就必須先建立「Google APIs」這類型的虛擬機器,稍後才能在適當的虛擬機器上作驗證。
建立虛擬機器
我們現在來建立一個基本的 Android SDK 2.0 虛擬機器。
在命令行中輸入以下命令:
$ android create avd --target 1 --name eclair
這段命令的意思是:使用「android create avd」命令來建立一個新的虛擬機器,「 --target 1」參數的意思是這個虛擬機器使用 id 為 1 的 SDK 套件(Android 1.5),「--name eclair」參數的意思是將這個建立的虛擬機器命名為「eclair」。
產生的結果如下
$ android create avd --target 1 --name eclair Android 2.0 is a basic Android platform. Do you wish to create a custom hardware profile [no] Created AVD 'eclair' based on Android 2.0
列出已建立的虛擬機器
我們可以使用 「Android」命令行工具提供的「list avd」命令,來列出所有我們已經建立的模擬器。
在命令行中輸入以下命令:
$ android list avd
產生的結果如下:
$ android list avd Available Android Virtual Devices: Name: eclair Path: /Users/mac/.android/avd/cupcake.avd Target: Android 2.0 (API level 5) Skin: HVGA
使用「 android list avd」命令看到有輸出,即表示已成功建立虛擬機器,可以回到 Eclipse 環境來,設定執行應用程式專案所需的環境參數了。
設定環境參數
要執行 ApiDemos 程式前,我們得在開發環境中,事先設定好一些用來執行 ApiDemos 程式的環境參數。 以後使用其他程式專案時,我們也能用同樣的方式,讓這些程式在我們的開發環境中運行。
首先,我們透過選單列上的「Run」(執行)選單,選擇「開啟執行參數設定」(Run-> Debug Configurations...) 進入運行環境參數設定畫面。
進入設定畫面後,在視窗左側會有一整排 Eclipse 支援的運行設定,我們從中找到 "Android Application"(Android 應用程式)項目,按下滑鼠右鍵,點選 "New"(新增)選項。
選擇 「New」 選項後,在「Android Application」項目下方會多出一筆執行項目。
我們可以在 Name 欄位上輸入一個代表這個環境參數的名稱,在此我們輸入與專案名稱相同的「ApiDemos」。
在「Project」欄位右方,點選「Browse...」按鈕,開啟「專案選擇」(Project Selection)視窗,選擇「ApiDemos」專案並點選「OK」按鈕,以選擇要執行的專案。
在 「Launch Action」 選單中,確認預設選擇的是「Launch Default Activity」。
至此我們就完成了模擬器環境參數的設定。 點選右下角的「Debug」按鈕,Eclipse 就會啟動 Android 虛擬機器。
小技巧:
在選單列中,也可以選擇設定「Run Configuration...」選項。這時我們得到的是一個幾乎完全相同的環境參數設定畫面,只是右下角的「Debug」按鈕變成了「Run」按鈕。「Debug」與「Run」模式的環境參數設定可以共用,差別在於「Debug」模式下可以使用在之後章節中會介紹的 logd,來顯示一些開發時所需的額外訊息。
再次啟動 Android 虛擬機器
當我們設定好之後,以後碰到要再次啟動虛擬機器的情況時,只要在螢幕左上角的「Debug」或「Run」圖示右側小箭頭上按一下,從彈出的選單中選擇剛剛設定的環境參數名稱,虛擬機器即開始執行,並安裝好我們所指定的專案應用程式。
操作虛擬機器
改變虛擬機器外觀
在建立虛擬機器的時候,我們可以透過「skin」欄位來選擇預設的虛擬機器外觀。「skin」欄位中會列出目標(Target)版本支援的所有外觀。「HVGA」(解析度 480x320)、「QVGA」(解析度 320x240)等分別代表著各種不同畫面的解析度
在命令列上執行「android list targets」命令後,我們可以看到螢幕上列出所有支援的模擬器類型。舉我們剛才建立過的(id 1)虛擬機器為例,列出訊息如下:
id: 1 Name: Android 2.0 Type: Platform API level: 5 Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
其中 Skins 欄位中會列出所有支援的模擬器佈景,預設有多種畫面配置選項可選擇。
要建立「QVGA」模式的模擬器,則在前一節「android create avd」命令後,附加上「--skin QVGA」選項即可。要將預設的「HVGA 直式」顯示改為橫式,則可以透過使用快速鍵,直接切換螢幕來達成。
切換螢幕方向
在 Windows 作業系統上按下 「Ctrl」和「F12」鍵 ,或是在 Mac OS X 作業系統上同時按下「fn」 、「Control」和「F12」鍵,螢幕就會從預設的直式顯示改成橫式顯示,再按一次則切換回原來的直式顯示。
移除程式
我們已經順利地啟動了虛擬機器,那麼,該怎麼移除安裝到虛擬機器上的程式哩?
Android SDK 中提供一個 adb (Android Debugger) 命令行工具 (在 android-sdk/tools 中),我們可以用裡面的 shell 工具連上虛擬機器來移除應用程式。在某些平台上,這些動作可能需要擁有 root 權限才能執行。
首先打開命令列,啟動 adb shell
$ adb shell
接著切換到 data/app 目錄中
$ cd data/app/
使用 ls 命令(等同 windows 上命令行的 dir 命令)來檢視檔案列表
# ls com.example.android.apis.apk
接著使用 rm 命令來刪除 ApiDemos 應用程式
# rm com.example.android.apis.apk # ls
移除虛擬機器
我們可以使用「android list avd」命令來列出所有的虛擬機器
$ android list avd Available Android Virtual Devices: Name: eclair Path: /Users/mac/.android/avd/cupcake.avd Target: Android 2.0 (API level 5) Skin: HVGA
表示現在系統中有一個名為 eclair 的虛擬機器。 我們可以使用「android delete avd --name eclair」命令來刪除名稱為「eclair」的虛擬機器。
$ android delete avd --name eclair AVD 'eclair' deleted.
刪除後再次執行「android list avd」命令,得到的結果為
$ android list avd Available Android Virtual Devices:
表示系統中已經不存在任何模擬器,我們真的已經將虛擬機器刪除了。
閱讀參考
- 虛擬機器操作細節 http://developer.android.com/guide/developing/tools/emulator.html
- 虛擬機器外觀下載 http://www.android.encke.net/