adb命令大全


目錄
一、adb用法大全圖
二、adb是什么,學習它有什么意義?
三、常用adb 命令
四、常用 adb shell 命令
五、參考資料
 
 
一、adb用法大全圖
 

 

 

二、adb 是什么,學習它有什么意義?
adb 其實就是 Android Debug Bridge, Android 調試橋的縮寫,adb 是一個 C/S
架構的命令行工具,主要由 3 部分組成:
運行在 PC 端的 Client : 可以通過它對 Android 應用進行安裝、卸載及調試
Eclipse 中的 ADT、SDK Tools 目錄下的 DDMS、Monitor 等工具,都是同樣
地用到了 adb 的功能來與 Android 設備進行交互。
PC 端的手機助手,諸如 360 手機助手、豌豆莢、應用寶等,其除了安裝第三
方應用方便,其他的功能,基本上都可以通過 adb 命令去完成,這里建議
盡量不要在電腦上安裝這類手機助手,因為其自帶的 adb 程序可能會
與 Android SDK 下的 adb 程序產生沖突,5037 端口被占用,導致使用 adb
命令時無法連接到設備
運行在 PC 端的 Service : 其管理客戶端到 Android 設備上 adb 后台進程的
連接
adb 服務啟動后,Windows 可以在任務管理器中找到 adb.exe 這個進程
運行在 Android 設備上的 adb 后台進程
執行 adb shell ps | grep adbd ,可以找到該后台進程,windows 請
使用 findstr 替代 grep
這個進程是需要用戶手動開啟,打開方法:
1、在手機設置 → 關於手機 → 版本號 點擊多次,直到提示已進入開發這
模式 ,然后退出這個頁面,
2、手機設置→ 開發者選項 → 打開usb調試
學習的意義針對移動端 Android 的測試, adb 命令是很重要的一個點,必須將常用的 adb
命令熟記於心, 將會為 Android 測試帶來很大的方便,
其中很多命令將會用於自動化測試的腳本當中。
三、常用adb 命令
在終端輸入 adb(配置好環境變量情況下) 或者 adb help,會自動彈出常用的
adb 命令列表,如圖
 

 

 

 

 

 

重啟adb服務
adb kill-server , adb start-server , 結束 adb 服務, 啟動 adb 服務,通常兩個命令
一起用
一般在連接出現異常,使用 adb devices 未正常列出設備, 設備狀態異常時使用
kill-server,然后運行 start-server 進行重啟服務
查看日志
adb logcat
Android 的日志分為如下幾個優先級(priority):
V —— Verbose(最低,輸出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不輸出)
如: adb logcat -s 標簽名 只查看對應標簽名日志
adb logcat *:d 只查看 D級別以上的日志
adb logcat *:d 標簽名 只查看 D級別以上制定標簽名的日志
安裝、卸載應用
adb install 安裝包路徑 安裝應用,覆蓋安裝是使用 -r 選項
如 adb install -r /Users/cbf/TCL/Demo/app/build/outputs/apk/app-debug.apk
(安裝包名稱盡量使用英文)
adb uninstall 對應包名 卸載應用 adb uninstall com.taobao.taobao (卸載淘
寶)將 Android 設備上的文件或者文件夾復制到本地
adb pull <remote> <local> 如將 sdcard 目錄下 pull.txt 文件拷貝到 D 盤: adb
pull sdcard/pull.txt d:\
推送本地文件至 Android 設備
adb push <local> <remote> 如:
adb push d:\push.txt sdcard/ 注意: sdcard 后面的斜杠不能少,否則會出現下面
錯誤failed to copy 'push.txt' to 'sdcard': Is a directory
獲取管理員權限
adb root
重現掛在手機文件系統為可讀寫狀態
adb remount
adb root , adb remount 一般你想pull某個文件夾到電腦里,或者拷貝某個文件到
手機某個目錄下,提示你沒有讀寫權限時,使用這個兩個命令重現掛載系統文件
夾為可讀寫狀態
重啟手機
adb reboot
查看bug報告
adb bugreport , 打印dumpsys、dumpstate、logcat的輸出,也是用於分析錯誤
android 7.0以后手機才能用,輸入命令比較多,建議重定向到一個文件中
adb bugreport > d:\bugreport.log
獲取設備的狀態
adb get-state 設備的狀態有 3 鍾,device , offlfline ,
unknown device:設備正常連接
offlfline:連接出現異常,設備無響應
unknown:沒有連接設備
四、常用 adb shell 命令
adb 命令是 adb 這個程序自帶的一些命令,而 adb shell 則是調用的 Android 系統中的命令,這些 Android 特有的命令都放在了 Android 設備的 system/bin 目錄
下,大家可以通過進入到該文件夾下,通過cat 命令發現這些其實都是通過shell 來
實現的. 如cat am
 

 

1. 按鍵事件
input text <string> input a string to device
input keyevent <event_code> send a Key Event to device
如: adb shell input keyevent 26 (PowerKey)
input tap , 對屏幕發送一個觸摸事件
adb shell input tap 500 500 點擊屏幕上坐標為 500 500 的位置
input swipe , 滑動事件
adb shell input swipe 900 500 100 500
從右往左滑動屏幕
如果版本不低於 4.4 , 可以模擬長按事件
adb shell input swipe 500 500 501 501 2000
其實就是在小的距離內,在較長的持續時間內進行滑動,最后表現出來的結果就
是長按動作
到這里會發現,MonkeyRunner 能做到的事情,通過 adb 命令都可以做得到,如
果進行封裝,會比 MR 做得更好。
2. am命令
am start <INTENT> : start an Activity
如 : am start -n com.android.calculator/com.android.calculator2.Calculator
這里有個小技巧,如果事先不知道應用的包名和 activity的名稱,進入到應
用界面然后通過命令
adb shell dumpsys activity activities | grep mFocusedActivity 查看前台activity獲 
取activity名稱。
am broadcast <INTENT> 發送一個廣播 am startservice <INTENT> 啟動一個服務
am force-stop <PACKAGE> 結束應用
am kill <PACKAGE> 結束應用
am kill-all
am start , 啟動一個 Activity,已啟動系統相機應用為例
啟動相機
$ adb shell am start -n com.android.camera/.Camera
先停止目標應用,再啟動
$ adb shell am start -S com.android.camera/.Camera
等待應用完成啟動
$ adb shell am start -W com.android.camera/.Camera
啟動默認瀏覽器打開一個網頁
$ adb shell am start -a android.intent.action.VIEW -d http://www.baiddu.com
啟動撥號器撥打 10086
$ adb shell am start -a android.intent.action.CALL -d tel:10086
更多詳細用法請見am 使用幫助.
還有很多的選項,自己多多發掘~~
3. pm 命令
pm list packages
-f: see their associated fifile 列出應用包名及對應的apk名及存放位置
-s: fifilter to only show system packages 列出系統應用
-3 ilter to only show third party packages 列出第三方應用
pm list packages [-f] [-d] [-e] [-s] [-e] [-u] [FILTER]");
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]");
pm list instrumentation [-f] [TARGET-PACKAGE]"); 列出含有單元測試 case
的應用
pm list features
pm list libraries
pm path PACKAGE 列出對應包名的 .apk 位置 如列出qq對應apk的位置
adb shell pm path com.tencent.mobileqq
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH 安裝
android設備里的apk文件 如 pm install /sdcard/1111.apk
pm uninstall [-k] PACKAGE 根據包名 卸載apk
pm clear PACKAGE 根據包名清楚應用數據
pm enable PACKAGE_OR_COMPONENT
pm disable PACKAGE_OR_COMPONENT
pm disable-user PACKAGE_OR_COMPONENT
pm set-install-location [0/auto] [1/internal] [2/external] 設置應用安裝位置
pm get-install-location 獲取應用安裝位置
參數組合使用,例如,查找三方應用中 qq 的包名、apk存放位置、安裝來
源:
adb shell pm list package -f -3 -i qq
 

 

 

 

package:后是apk的路徑地址 = 后面是包名 install = 代表來源 這里null 表示
是未知來源
更多詳細用法,請見pm使用幫助.
4、screencap 截圖命令
adb shell screencap -p /sdcard/screen.png
截屏,保存至 sdcard 目錄
5、screenrecord 4.4 新增的錄制命令
adb shell screenrecord sdcard/record.mp4
6. dumpsys
dumpsys activit
dumpsys activity intents
dumpsys activity broadcasts
dumpsys activity providers
dumpsys activity services
dumpsys activity activities
dumpsys activity processes
dumpsys window
dumpsys window windows
dumpsys window tokens
dumpsys window sessions
dumpsys window policy
dumpsys window input
dumpsys statusbar
dumpsys notifification
dumpsys package [<PACKAGE> ]
dumpsys location
dumpsys alarm
dumpsys connectivity
dumpsys wififi
…....等等
7. ime 輸入法管理
ime list [-a] [-s]
list command prints all enabled input methods
-s option to see only a single summary line of each.
-a option to see all input method
五、參考資料
http://www.cnblogs.com/bravesnail/articles/5850335.html
https://github.com/mzlogin/awesome-adb (很全面)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM