1. 程式人生 > >ADB工具命令及用法

ADB工具命令及用法

轉自:http://www.testwo.com/blog/1221

Android Debug Bridge, android sdk裡的一個工具用這個工具可以直接操作管理android模擬器或者真實的andriod裝置。

主要可以進行的操作有:

1、快速更新裝置或手機模擬器中的系統和應用。

2、執行shell命令;

3、管理裝置或模擬器上的預定埠;

4、在裝置或模擬器上覆制,貼上檔案;

一.ADB環境的搭建。

我們現在用的都是虛擬機器,在安裝SDK的時候就已經安裝好了ADB,FTP上也有下載,是SDKtools資料夾裡自帶的一個工具。

在執行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可以執行自動化測試程式碼(單元測試使用)。