###1 adb的概念
adb的全稱爲Android Debug Bridge(調試橋);通過adb我們可以在Eclipse中方便通過DDMS來調試Android程序。當我們運行Eclipse時ADB進程會自動運行(默認adb會daemon相關的網絡端口)。adb是一個客戶端-服務器端程序,其中客戶端是電腦,服務端是Android設備。
###2 adb的主要功能
-
運行設備的shell命令;
-
管理模擬器或設備的端口映射;
-
計算機和設備之間上傳/下載文件;
-
將本地apk軟件安裝至模擬器或Android設備;
###3 adb的常用命令
####3-1 查看設備:adb device
這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示。
輸出信息的第2列都是device,表示當前設備都在線。如果該列的值是offline,表示該實例沒有連接到adb上或實例沒有響應。
####3-2 登錄設備的shell:adb shell
這個命令將登錄設備的shell.後面加將是直接運行設備命令, 相當於執行遠程命令。
退出shell模式:ctrl+c
####3-3 啓動和關閉ADB服務:adb kill-server
模擬器在運行一段時間後,adb服務有可能(在Windows進程中可找到這個服務,該服務用來爲模擬器或通過USB數據線連接的真機服務)會出現異常。這時需要重新對adb服務關閉和重啓。
####3-4 重啓設備:adb reboot
重新啓動到recovery
adb reboot recovery
重新啓動到bootloader
adb reboot bootloader
重新啓動到bootloader
adb reboot fastboot
fastboot flash recovery <路徑>
####3-5 安裝軟件:adb install
這個命令將指定的apk文件安裝到設備上。
如:adb install E:\com.baidumap.apk
如果在安裝程序之前,該程序已經在模擬器或真機上存在了,可以使用“-r”重新安裝。
adb install -r E:\com.baidumap.apk
####3-6 卸載軟件:adb uninstall <包名>
adb uninstall -k <包名>
如果加 -k 參數,爲卸載軟件但是保留配置和緩存文件。
如:adb uninstall com.alistory.Activity
####3-7 查看所有應用包名
adb shell pm list packages
####3-8 電腦->設備
adb push <本地路徑> <遠程路徑>
用push命令可以把本機電腦上的文件或者文件夾複製到設備(手機)。
如:adb push E:\test.txt /sdcard/
####3-9 設備->電腦
adb pull <遠程路徑> <本地路徑>
用pull命令可以把設備(手機)上的文件或者文件夾複製到本機電腦。
如:adb pull /sdcard/1.txt d:\file\
####3-10 多設備選擇
adb –s <設備號>
多設備選擇操作
####3-11 adb shell下的dumpsys可以查看很多系統service信息
adb shell dumpsys activity top|findstr ACTIVITY
####3-12 adb logcat查看系統日誌
通過選項(參數)過濾
通過管道( | grep )過濾
如: ps |grep system_server
####3-13 adb shell下的getprop可以查看很多設備相關信息(IMIE、SN、固件信息、機型……)
腳本中可以用Runtime.getRuntime().exec(“getprop ro.product.model”);
####3-14 adb命令在android 代碼中這樣執行:
private boolean runCmdFunction(String cmd) {
boolean retValue = false;
if (cmd == null) {
return false;
}
Process process = null;
try {
process = Runtime.getRuntime().exec(cmd);
retValue = true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return retValue;
}
###4 adb總結
綜合來說,adb在開發測試調試中是一個很不錯的工具,很多小的細節需要在項目中慢慢體會。