ADB工具命令及用法
轉自:http://www.testwo.com/blog/1221
Android Debug Bridge, 是android sdk裡的一個工具, 用這個工具可以直接操作管理android模擬器或者真實的andriod裝置。
主要可以進行的操作有:
1、快速更新裝置或手機模擬器中的系統和應用。
2、執行shell命令;
3、管理裝置或模擬器上的預定埠;
4、在裝置或模擬器上覆制,貼上檔案;
一.ADB環境的搭建。
我們現在用的都是虛擬機器,在安裝SDK的時候就已經安裝好了ADB,FTP上也有下載,是SDK的tools資料夾裡自帶的一個工具。
在執行ADB之前,一定要先啟動你的虛擬機器。如果使用手機請正確安裝驅動讓電腦能夠識別(附件裡有驅動)。
二.進入ADB的執行環境。
點選開始—執行—輸入cmd—回車。
在dos環境下進入tools資料夾:輸入cd /d <你的tools資料夾的絕對路徑>。以我的為例:cd /d E:\android\android-sdk-windows\tools。
在這個資料夾中就可以對ADB進行命令的輸入了。
三.ADB的一些常用命令介紹。
我個人覺得在ADB裡面的命令可以分成兩種,一是ADB下的命令,二是adb shell中的命令,這個裡面的命令和linux裡面的命令是一樣的,作用也是一樣。
下面對ADB下的命令做下逐一介紹。這些命令在輸入adb help之後都可以看見。
adb -d僅通過USB介面來管理abd.如果不只是用USB介面來管理則返回錯誤。
-e僅僅通過模擬器例項來管理adb.如果不是僅僅通過模擬器例項管理則返回錯誤。
-s <serialNumber>通過模擬器/裝置的允許的命令號碼來發送命令來管理adb (比如: "emulator-5556").如果沒有指定號碼,則會報錯。
devices檢視所有連線模擬器/裝置的設施的清單。
help檢視adb 所支援的所有命令。
version檢視adb的版本序列號。
logcat [<option>][<filter-specs>]將日誌資料輸出到螢幕上。
bugreport檢視bug的報告,如dumpsys , dumpstate ,和logcat 資訊
jdwp檢視指定的設施的可用的JDWP資訊。可以用 forward jdwp:<pid> 埠對映資訊來連線指定的JDWP程序.例如:
adb forward tcp:8000 jdwp:472
jdb –attach
localhost:8000
install <path-to-apk>安裝Android為(可以模擬器/設施的資料檔案。apk指定完整的路徑)。這個命令要注意,adb只提供了,安裝命令,如果要解除安裝,只有在adb shell中使用rm命令刪除,裝好的apk包都會在/dadt/app資料夾下。
pull <remote> <local>將指定的檔案從模擬器/設施的拷貝到電腦上。
push <local> <remote>將指定的檔案從電腦上拷貝到模擬器/裝置中。
forward <local> <remote>用本地指定的埠通過socket方法遠端連線模擬器/設施。
埠需要描述下列資訊:
• tcp:<portnum>
• local:<UNIX domain socket name>
• dev:<character device name>
• jdwp:<pid>
ppp <tty> [parm]...通過USB執行ppp:
• <tty> — the tty for PPP stream.For example dev:/dev/omap_csmi_ttyl 。
• [parm]... &mdash zero or more PPP/PPPD options, such as defaultroute , local , notty , etc。
get-serialno檢視adb例項的序列號。
get-state檢視模擬器/設施的當前狀態。
wait-for-device如 果裝置不聯機就不讓執行,也就是例項狀態是 device 時。
你可以提前把命令轉載在adb的命令器中,在命令器中的命令在模擬器/裝置連線之前是不會執行其它命令的. 示例如下:
adb wait-for-device shell getprop
需要注意的是這些命令在所有的系統啟動啟動起來之前是不會啟動adb的 所以在所有的系統啟動起來之前你也不能執行其它的命令。比如:運用install 的時候就需要Android包,這些包只有系統完全啟動。例如:
adb wait-for-device install <app>.apk
上面的命令只有連線上了模擬器/裝置連線上了adb服務才會被執行,而在Android系統完全啟動前執行就會有錯誤發生。
start-server選擇服務是否啟動adb服務程序。
kill-server終止adb服務程序。
這些都是介紹了一些常用的命令,本來ADB支援的命令並不是很多,所有的命令輸入adb help之後都可以看見,且後面帶有說明。
四.adb shell命令介紹
通過adb shell命令,就可以進入裝置或模擬器的shell環境中,在這個Linux Shell中,你可以執行各種Linux 的命令,如果只想執行一條命令,而不進入shell可以輸入adb shell cmd(命令名)。
在進入shell狀態後,會出現大家熟悉的#符號,這時就可以輸入linux命令了。
一些基本的命令在adb shell裡都是支援的,需要注意的是比如,rm命令,rom自帶的一些軟體和功能直接刪是刪不掉的,這時退出shell 輸入 adb remount 把系統分割槽重新掛載為可寫,然後進入shell就可以刪檔案了。
在adb shell中可以使用的命令,可以在進入adb shell 後輸入:#cd /system/bin #ls
然後就會出現在adb shell 中所有可以使用的shell命令。在linux環境下大家都很熟悉這些命令,就不多介紹了。
這裡介紹一些android特有的。
etprop 返回Android的所有系統屬性。
getevent 列印所有的鍵盤和觸控事件。
logcat 輸出日誌。(SVN裡有專門介紹logcat功能的檔案,這裡不多做介紹)
printenv 系統環境變數。
am 執行start/broadcast/instrument可以執行自動化測試程式碼(單元測試使用)。