|
PlayEmulator
操作 Android 虛擬機器
使用 Android 虛擬機器我們已經透過「Eclipse」開發環境,開啟了「ApiDemos」專案。本章將講解如何設定和操作 Android 虛擬機器。 設定 Android 虛擬機器現在我們還不忙著開始寫程式,先花點時間,來看看怎麼在開發環境中,透過「Android 虛擬機器」來執行應用程式吧。 由於在剛開始開發時,我們手邊並不一定已擁有 Android 設備。因此 Android 開發工具亦提供了相當強大的模擬器,能讓我們自由配置,模擬各種硬體規格的設備。在 Android 中一律把 Android 模擬器稱作「Android 虛擬機器」(Android Virtual Device),簡寫為「AVD」。 「Android 軟體開發套件」(SDK) 1.5 以上的版本提供了支援不同目標版本虛擬機器的功能,在使用虛擬機器之前,必須先建立一個虛擬機器後才可在 Eclipse 開發環境中使用。 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」 和「7」鍵,螢幕就會從預設的直式顯示改成橫式顯示,再按一次則切換回原來的直式顯示。 移除程式我們已經順利地啟動了虛擬機器,那麼,該怎麼移除安裝到虛擬機器上的程式哩? 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: 表示系統中已經不存在任何模擬器,我們真的已經將虛擬機器刪除了。 閱讀參考
< 開啟現有專案 | 回目錄 | 建立一個 Android 程式 > 對於本章,您還期望知道什麼樣的內容呢?請在下方提出建議! |
Sign in to add a comment
如何移除程式的附圖說明 http://www.mymobisoft.com/bbs/viewtopic.php?f=2&t=114
刚测试过,在PC上,XP系统,CTRL(左边的)+F11,CTRL+F12 切换
在移除程式那部份似乎有點問題 照著作都不行 指令碼有誤!?
跟keino一樣,在移除程式那部份也有問題。 敲./adb shell會return "error: device not found",但我模擬器已經開起來run了
device not found 表示沒抓到模擬器, 可以重開再試看看. 先下 adb devices 命令, 確定有機器/模擬器連著吧
1.5 r3 中已经不允许设 skin 了
C:\Documents and Settings\Dennis>android create avd -t 3 -n oPhone -s G1 Valid skins: HVGA (default), HVGA-L, QVGA-P, HVGA-P, QVGA-L Error: 'G1' is not a valid skin name or size (NNNxMMM)
dennis.lan: 看訊息是你沒有把 G1 檔案夾放到 skins 目錄里, 試試看用 HVGA-L 或 QVGA-P 應該就可以了
我在create avd時, 會出現以下的訊息Error: C:\Documents and Settings\xxxxx\.android\avd\cupcake.ini (系統找不到指定的路徑。), 而我有看到.android的資料夾, 但進不去, 也刪不掉, 請問我是那個步驟有做錯嗎?
關於切換螢幕 提到 "在 Windows 作業系統上按下 「Ctrl」和「F12」鍵" 如果能註明是 左ctrl鍵 或許會更好
(我試了很久的右ctrl鍵都沒反應...XD)
你好 網頁連結 http://www.mymobisoft.com/bbs/viewtopic.php?f=2&t=114 好像壞了。
我找不到data/app/ 目錄耶,好奇怪。
要有 root 權限, 例如先下 su 命令
我要執行 emulator -avd wawa 都跑不出模擬器 他會出現 emulator: ERROR: bad config: virtual device director emulator: could not find virtual device named 'wawa' 請問是甚麼原因?
我寫的文件裡應該沒教過這樣用吧? 新版要跑模擬器似乎得下比較多參數, 請參考 --help
抱歉,移除程式部分 adb devices 顯示有連結 可是adb shell還是有錯誤 另外android create avd --target 2 --name devphone –skin G1 這邊少了一個- 應為android create avd --target 2 --name devphone --skin G1 想問一下如何調整顯示出來的模擬器大小?謝謝
我點Run或著Debug時,都會跳出這段錯誤訊息"An instrumention test runner is not specified!" 然後模擬器也跑不出來,請問是甚麼原因?
我已經創造了模擬器 但卻叫不出來 錯誤訊息為 emulator:ERROR: bad config: virtual device directory lacks config.ini emulator: could not find virtual device named 'cupcake' 但我執行android list avd的確有出現Available Android Virtual Devices有我命名的cupcake的AVD 請問我可能哪執行錯了?
請問在創建虛擬機器時所下的指令 $ android create avd --target 1 --name eclair 為什麼此指令創出來的虛擬機器為"Android SDK 2.0 虛擬機器"??
我創出來的是 Android 1.1 is a basic Android platform 還有一個問題就是 之後創建出來的資訊 顯示 Created AVD 'cupcake' based on Android 2.0 但是你創的名字不是叫做 "eclair"?
內文修正了,SDK Tools r3 版之後 也已經提供 GUI 版的「AVD and SDK Manager」設定工具,就比較不容易搞混了
在"android list target"之後,可以看到"id: 4" 才是 "android-5" (Android SDK 2.0) 所以改用 "android create avd --target 4 --name eclair" 即可
debug出現這個錯誤訊息emulator: could not find virtual device named 'eclair' 可是我在執行android list avd 明明就有看到我建的虛擬機器@@