ADB是android sdk里的一個工具,用這個工具可以直接操作管理android模擬器或者真實(shí)的andriod設(shè)備。 ADB是一個客戶端-服務(wù)器端程序,其中客戶端是你用來操作的電腦,服務(wù)器端是android設(shè)備。
它的主要功能有:
運(yùn)行設(shè)備的shell(命令行)
管理模擬器或設(shè)備的端口映射
計(jì)算機(jī)和設(shè)備之間上傳/下載文件
將本地apk軟件安裝至模擬器或android設(shè)備
adb?其實(shí)就是 Android Debug Bridge, Android 調(diào)試橋的縮寫,adb 是一個?C/S?架構(gòu)的命令行工具,主要由 3 部分組成:
運(yùn)行在 PC 端的 Client : 可以通過它對 Android?應(yīng)用進(jìn)行安裝、卸載及調(diào)試
Eclipse 中的 ADT、SDK Tools 目錄下的 DDMS、Monitor 等工具,都是同樣地用到了 adb 的功能來與 Android 設(shè)備進(jìn)行交互。


adb服務(wù)使用的端口號:5037
PC 端的手機(jī)助手,如 360 手機(jī)助手、豌豆莢、應(yīng)用寶等,除了安裝第三方應(yīng)用方便,其他的功能,基本上都可以通過 adb
命令去完成,這里要注意的是自帶的 adb 程序可能會與 Android SDK 下的 adb 程序產(chǎn)生沖突,5037
端口被占用,導(dǎo)致使用?adb 命令時無法連接到設(shè)備。
運(yùn)行在 PC 端的 Service : 其管理客戶端到 Android 設(shè)備上 adb 后臺進(jìn)程的連接
adb
服務(wù)啟動后,Windows
可以在任務(wù)管理器中找到 adb.exe 這個進(jìn)程


adb進(jìn)程
運(yùn)行在 Android 設(shè)備上的 adb 后臺進(jìn)程,執(zhí)行 adb shell ps | grep adbd ,可以找到該后臺進(jìn)程,windows 下執(zhí)行adb shell ps |findstr adbd



adb 命令
在開發(fā)或者測試的過程中,我們可以通過 adb 來管理多臺設(shè)備,其一般的格式為:
adb [-e | -d | -s <設(shè)備序列號>]? <子命令>
在配好環(huán)境變量的前提下,在命令窗口當(dāng)中輸入 adb help 或者直接輸入 adb ,將會列出所有的選項(xiàng)說明及子命令。
adb devices , 獲取設(shè)備列表及設(shè)備狀態(tài)

adb get-state , 獲取設(shè)備的狀態(tài)
設(shè)備的狀態(tài)有 3 鐘,device , offline , unknown
device:設(shè)備正常連接
offline:連接出現(xiàn)異常,設(shè)備無響應(yīng)
unknown:沒有連接設(shè)備



adb logcat , 打印 Android 的系統(tǒng)日志

adb bugreport , 打印dumpsys、dumpstate、logcat的輸出,也是用于分析錯誤
輸出比較多,建議重定向到一個文件中
adb bugreport > d:\bugreport.log
adb install , 安裝應(yīng)用,覆蓋安裝是使用 -r 選項(xiàng)
windows 下如果需要安裝含有中文名的 apk ,可以直接對apk的包名進(jìn)行修改
1. cmd-進(jìn)入應(yīng)用所在目錄(C:\WDJDownload\Apps)

2. 執(zhí)行命令:adb install aiqiyi.apk(apk名稱)

3. 手機(jī)上會有提示是否同意安裝,點(diǎn)擊同意,進(jìn)行安裝


4 .手機(jī)上安裝成功,出現(xiàn)success表示安裝成功。

adb uninstall , 卸載應(yīng)用,
后面跟的參數(shù)是應(yīng)用的包名,請區(qū)別于 apk 文件名
adb pull , 將 Android 設(shè)備上的文件或者文件夾復(fù)制到本地
例如復(fù)制 init文件到 D 盤:adb?? pull??init?? d:\
如果需要重命名為 rename.txt:adb? pull
init? d:\rename.txt
注意權(quán)限,復(fù)制系統(tǒng)權(quán)限的目錄下的文件,需要 root


adb push , 推送本地文件至 Android 設(shè)備
例如推送 D 盤下的testrabbit.txt 至 /mnt:adb? push? d:\testrabbit.txt? /mnt/
D:\>adb push testrabbit.txt /mnt/
failed to copy 'testrabbit.txt' to
'/mnt//testrabbit.txt': Read-only file system

在shell命令行中輸入:adb root
切換到root用戶
然后執(zhí)行如下命令:(注意 /表示的是根目錄,因此這個不僅僅是對sdcard,其他文件也可以讀寫。rw表示讀寫權(quán)限,mount重掛載文件系統(tǒng))
adb shell mount -o remount rw / , 修改系統(tǒng)讀寫權(quán)限
root@generic:/ # adb shell mount -o remount rw /

adb root , adb remount,可以直接已這兩個命令獲取 root 權(quán)限,并掛載系統(tǒng)文件系統(tǒng)為可讀寫狀態(tài)

