本文為新書《Android/OPhone
開發完全講義》
的内容連載。
《Android/OPhone開發完全講義》一
書現已出版,敬請關注。
購
<a href="http://www.cnblogs.com/nokiaguy/archive/2010/07/05/1771134.html" target="_blank">(china- pub) 《Android/OPhone 開發完全講義》目錄</a>
<a href="http://www.cnblogs.com/nokiaguy/archive/2010/07/01/1769079.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檔案,可以使用如下的指令。
ebook.apk
假設
ebook.apk中的
package是
net.blogjava.mobile.ebook,可以使用如下的指令解除安裝這個應用程式。
adb
uninstall net.blogjava.mobile.ebook
關于
package的概念在以後的學習中會逐漸體會
到。現在隻要知道
Android應用程式的唯一辨別即可。如果在安裝程式之前,該程式已經在模拟器或真機上存在了,需要先使用上面
的指令解除安裝這個應用程式,然後再安裝。或使用下面的指令重新安裝。
adb install -r ebook.apk
在解除安裝應用程式時可以加上
-k指令行參數保留資料和緩沖目錄,隻解除安裝應用程式。指令如下所示。
uninstall -k net.blogjava.mobile.ebook
如果機器上有多個模拟器或真機執行個體,需要使用
-s指令行參數指定具體的模拟器或真機。例如,下面的指令分别在模拟器和真機上安裝、重新安裝和解除安裝應用
程式。
在
emulator-5554
模拟器上安裝
adb -s
emulator-5554 install ebook.apk
在真機上安裝
HT9BYL904399 install ebook.apk
模拟器上重新安裝
-s emulator-5554 install -r ebook.apk
在真機上重新安裝
adb -s HT9BYL904399 install -r ebook.apk
模拟器上解除安裝
(不保留資料和緩沖目錄)
emulator-5554 uninstall net.blogjava.mobile.ebook
在真機上
解除安裝
(保留資料和
緩沖目錄)
adb -s HT9BYL904399 uninstall -k
net.blogjava.mobile.ebook
如
果在模拟器和真機上成功安裝
ebook.apk,将會分别輸出如圖2
和圖
3所示的信
息。
圖2
圖 3
如果想在模拟器或真機上運作已安裝的應用程式,除了直接在模拟器或真機上操作外,還可以使用如下的指令直接運作程式。
模拟器上運作
-s emulator-5554 shell am start -n
net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main
運作
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指令将在後成的部分
詳細介紹。