天天看點

Android系列教程(3):Android SDK中常用指令行工具

本文為《Android/OPhone 開發完全講義》的内容連載,如需轉載,請注明作者和出處,謝謝!

本文為新書《Android/OPhone 開發完全講義》的内容連載。《Android/OPhone開發完全講義》一書現已出版,敬請關注。

<a href="../../../../link.php?url=http://www.cnblogs.com%2Fnokiaguy%2Farchive%2F2010%2F07%2F05%2F1771134.html" target="_blank">《Android/OPhone 開發完全講義》目錄</a>

<a href="../../../../link.php?url=http://www.cnblogs.com%2Fnokiaguy%2Farchive%2F2010%2F07%2F01%2F1769079.html" target="_blank">源代碼下載下傳</a>

    經作者測試,模拟器在運作一段時間後,adb服務有可能(在Windows程序中可找到這個服務,該服務用來為模拟器或通過USB資料線 連接配接的真機服務)會出現異常。這時需要重新對adb服務關閉和重新開機。當 然,重新開機Eclipse可能會解決問題。但那比較麻煩。如果想手工關閉adb服務,可以使用下面的指令。

adb kill-server

在關閉adb服務後,要使用如下的指令啟動adb服務。

adb start-server

有時需要啟動多個模拟器執行個體,或啟動模拟器的同時通過USB資料線連接配接了真機。在這種情況下就需要使用如下的指令查詢目前有多少模拟器或真機線上。

adb devices

執行上面的指令後,會輸出如圖1 所示的資訊。

                         圖1

    其中第1列 的資訊(emulator-5554、HT9BYL904399)表示模拟器或真機的辨別。emulator-5554表示模拟器,其中5554表示adb服務為該模拟器執行個體服務的端口号。每啟動一個新的模 拟器執行個體,該端口号都不同。HT9BYL904399表示通過USB資料線連接配接的真機。如果在運作Android程式時有多個模拟器或真機線上,那麼會出現一個選擇對話框。如果選擇在真機運作,ADT會直接将程式安裝在手機上。輸出資訊的第2列都是device, 表示目前裝置都線上。如果該列的值是offline,表示該執行個體沒有被連 接到adb上,或執行個體沒有響應。

3.  安装、卸载和运行程序(adb install、adb uninstall和am)

    在Eclipse中運作Android程 序必須得有Android源碼工程。那如果隻有apk檔案(Android應用程式的發行包,相當于Windows中的exe檔案)該如何安裝和運作呢?答案就是adb指令。假設我們要安裝一個ebook.apk檔案,可以使用如下的指令。

adb install ebook.apk

    假設ebook.apk中的package是net.blogjava.mobile.ebook,可以使用如下的指令解除安裝這個應用程式。

adb uninstall net.blogjava.mobile.ebook

    關于package的概念在以後的學習中會逐漸體會 到。現在隻要知道package是Android應用程式的唯一辨別即可。如果在安裝程式之前,該程式已經在模拟器或真機上存在了,需要先使用上面 的指令解除安裝這個應用程式,然後再安裝。或使用下面的指令重新安裝。

adb install -r ebook.apk

    在解除安裝應用程式時可以加上-k指令行參數保留資料和緩沖目錄,隻解除安裝應用程式。指令如下所示。

adb uninstall -k net.blogjava.mobile.ebook

    如果機器上有多個模拟器或真機執行個體,需要使用-s指令行參數指定具體的模拟器或真機。例如,下面的指令分别在模拟器和真機上安裝、重新安裝和解除安裝應 用 程式。

在emulator-5554模拟器上安裝ebook.apk

adb -s emulator-5554 install ebook.apk

在 真機上安裝ebook.apk

adb -s HT9BYL904399 install ebook.apk

在emulator-5554模拟器上重新安裝ebook.apk

adb -s emulator-5554 install -r ebook.apk

在 真機上重新安裝ebook.apk

adb -s HT9BYL904399 install -r ebook.apk

在emulator-5554模拟器上解除安裝ebook.apk(不保留資料和緩沖目錄)

adb -s emulator-5554 uninstall net.blogjava.mobile.ebook 

在 真機上 解除安裝ebook.apk(保留資料和 緩沖目錄)

adb -s HT9BYL904399 uninstall -k net.blogjava.mobile.ebook

如 果在模拟器和真機上成功安裝ebook.apk,将會分别輸出如圖2和圖3所示的信 息。

                             圖2

                                  圖 3

    如果想在模拟器或真機上運作已安裝的應用程式,除了直接在模拟器或真機上操作外,還可以使用如下的指令直接運作程式。

在emulator-5554模拟器上運作ebook.apk

adb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main

在 真機上 運作ebook.apk

adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main

其中Main是ebook.apk的 主Activity。相當于Windows應用程式的主窗體或Web應用程式的首頁面。am是shell指令。關于shell指令将在後成的部分詳細介紹。

在開發階段或其他原因,經常需要将PC上的檔案複制到模拟器或真機上,或将模 拟機和真機上的檔案複制到PC上。使用adb pull和adb push指令可以很容易完成這個工作。例如,下面的指令将真機的SD卡根目錄下的camera.jpg檔案複制到PC的目前目錄,取名為picture.jpg。又把picture.jpg檔案複制到真機的SD卡根目錄,取名為abc.jpg。

從真機上複制檔案到PC

adb -s HT9BYL904399 pull /sdcard/camera.jpg picture.jpg

從PC複制到檔案到真機

adb -s HT9BYL904399 push picture.jpg /sdcard/abc.jpg

如果讀者安裝了ADT,可以通過DDMS透視圖的【File Explorer】視圖右上方的 幾個按鈕友善地從模拟器或真機上導入、導出和删除檔案。

由于Android是基于Linux核心的作業系統。是以,在Android上可以執行Shell指令。雖然在手機上提供了可以輸 入指令的Shell程 序,但在手機上輸入程式實在是不友善。為了更友善地在模拟器或手機上執行Shell指令。可以使用如下的指令在PC上進入Shell控制台。

adb -s HT9BYL904399 shell

Shell控制台的提示符是一個井号(#)。進入Shell後,輸入cd system/bin指令,再輸入ls指令,可以看到目前Android系統支援的指令檔案,如圖4所示。讀者可以根據實際情況使用相應的指令。

Android系列教程(3):Android SDK中常用指令行工具

                                                              圖4 

在這裡将介紹直接使用android指令來建立和删除AVD裝置。建立AVD裝置的指令如下:

android create avd -n myandroid1.5 -t 2

其中myandroid1.5表示AVD裝置的名稱,該名稱可以任意設定,但 不能和其他AVD設 備沖突。-t 2中的2指建立Android 1.5的AVD裝置。1表示Android 1.1的AVD裝置。以此類推。目前最新的Android 2.1應使用-t 6來建立AVD裝置。在執行完上面的指令後,會輸出如 下的資訊來詢問是否繼續定制AVD裝置。

Android 1.5 is a basic Android platform.

Do you wish to create a custom hardware profile [no]

如果讀者不想繼續定制AVD裝置,直接按回車即可。如果想定制AVD裝置,輸入y,然後按回車。系統會按步提示該如何設 置。中括号内是預設值,如果某個設定項需要保留預設值,直接按回車即可。如果讀者使用的是Windows XP,預設情況下AVD裝置檔案放在如下的目錄。

C:/Documents and Settings/Administrator/.android/avd

如果想改變AVD裝置檔案的預設存儲路徑,可以使用-p指令行參數,指令如下:

android create avd -n myandroid1.5 -t 2 -p d:/my/avd

删除AVD裝置可以使用如下的指令。

android delete avd -n myandroid1.5

通過下面的指令可以列出所有的AVD裝置。

android list avds

繼續閱讀