adb全稱Android Debug Bridge ,安卓調試橋接器。它是Android SDK里面的一個工具,用這個工具可以直接操作管理Android模擬器或者真實Android設備。adb的工作方式比較特殊采用監聽Socket TCP 5554等端口的方式讓IDE和Qemu通訊,默認情況下adb會daemon相關的網絡端口,所以當我們運行eclipse時adb進程就會自動運行。
1. adb devices
主要作用:查看當前已連接的設備,連接到計算機的Android設備或者模擬器將會以列表的形式顯示。
輸出格式:[serialNumber][state]
l 如果當前沒有模擬器或者設備運行,adb則會返回List of devices attached為空
l offline:表明設備沒有連接到計算機或無響應
l device:設備已經連接到計算機。注意,該狀態並不表示Android設備可用,當Android設備處於啟動階段時,若連接成功也會返回該狀態。
2. adb install <apk文件路徑>
主要作用:將指定的apk文件安裝到設備上,<apk文件路徑>可以從本地文件夾拖動到終端中。
常用參數:
adb install –r 覆蓋安裝
adb install –s 安裝到SD卡
adb install –rs覆蓋安裝到SD卡
adb –s <serial number> install 選定設備安裝
當有多個設備連接時,可以用下面的命令來直接選定設備進行安裝。
adb [-d|-e|-s <serial number>] install <path_to_apk>
d:真機(多個設備中只有一個真機時適用)
e:模擬器(多個設備中只有一個模擬器時適用)
s:序列號
adb –d install ./test.apk
adb –s emulator-5556 install ./test.apk
3. adb uninstall <包名>
主要作用:卸載設備上的指定程序
查看包名路徑:/data/app,系統安裝包路徑:/sys/data,這兩個路徑下文件的查看都需要root權限
adb uninstall –k <包名>
adb shell pm uninstall –k <包名>
卸載程序但是保留其配置和緩存文件,即/data/data/packname下的數據與/sdcard/程序名 的數據
4. adb push/pull
主要作用:復制文件
1)adb push <本地路徑><設備路徑>
把pc上的文件或文件夾復制到設備中。
adb push /home/test.apk /sdcard/
2)adb pull <設備路徑><本地路徑>
把設備上的文件或文件夾復制到電腦
adb pull /sdcard/log/test.xls /home/
Pull命令后可不輸入本地地址,不輸入時文件會復制到當前終端所在目錄
5. 關閉和啟動adb服務
sudo –s
adb kill-server //關閉adb服務
adb start-server //啟動adb服務
6. sudo –i和sudo –s的區別
sudo –i:在root用戶下,使用root權限執行adb命令
sudo –s:在當前用戶下,使用root權限執行adb命令
7. adb logcat
主要作用:查看日志,在命令行中顯示調試信息
adb logcat >> <指定文件路徑> 將logcat信息保存在指定文件中
>> 追加
>覆蓋
adb logcat –help:查看logcat命令幫助文檔
每一條日志消息都有一個標記和優先級與其關聯。
格式為:<priority>/<tag>
過濾不同優先級的log:adb logcat *:W(過濾比W優先級低的log)
標記是一個簡短的字符串,用於標識原始消息的來源(例如“View”來源於顯示系統)。
優先級是下面的字符,順序從低到高:
V—Verbose 明細(最低優先級)
D—Debug 調試
I—Info 信息
W—Warm 警告
E—Error 錯誤
F—Fatal 嚴重錯誤
S—Silent 無記載(最高優先級,沒有什么會被記載)
建議配合Eclipse使用,查看logcat
8. adb shell
由於Android是基於Linux內核的操作系統。因此,在Android上可以執行shell命令。
常用命令如下:
ls 查看文件夾
cd 改變目錄
cat <文件名> 查看文件內容
rm 刪除文件
mkdir <文件夾> 新建文件夾
cp 復制文件到另一目錄
exit 退出shell命令
adb shell <command> 直接運行設備命令
adb shell su –c “<command>” 直接運行root權限命令
9. adb shell am
am start –n <包名>/<包名>.<Activity名> 啟動程序
am force-stop <包名> 強制停止程序
am kill <包名> 殺死與包名有關的后台進程,不影響用戶體驗,相當於一般的清理內存功能
am kill-all 殺死所有后台進程
10. adb shell pm
pm path <包名> 查看apk安裝在手機后的路徑
pm uninstall [-k] <包名> 卸載程序(-k:保留配置文件)
pm clear <包名> 清除應用緩存數據
11. 其他常用命令
adb help 顯示幫助信息
adb version 顯示adb版本
adb reboot 重啟手機
adb shell am broadcast -a android.intent.action.MASTER_CLEAR(恢復出廠)
adb shell dumpsys window | grep init 查看手機的分辨率
adb logcat -s ActivityManager Activity的啟動時間