1务冕、什么是ADB
?? ?ADB是Android-Sdk里的一個客戶端-服務(wù)器端程序促绵,其中客戶端是我們操作的電腦, 服務(wù)器端是Android設(shè)備,它的全稱為Android Debug Bridge,就是起到調(diào)試橋的作用昂秃。通過這個橋我們可以管理設(shè)備或手機模擬器的狀態(tài),還可以進行很多手機操作杜窄,如安裝軟件肠骆、系統(tǒng)升級、運行shell命令等等塞耕。
?? ?簡而言之蚀腿,ADB就是連接Android手機與PC端的橋梁,可以讓用戶在電腦上對手機進行全面的操作
2扫外、安裝
? ? 解壓文件對應(yīng)的壓縮包就好
? ? 安裝文件:(自行下載)
? ? 配置環(huán)境變量
? ? 新建系統(tǒng)變量adb莉钙,值:C:\softuser\ADB\adb1.0.32\adb(ADB的解壓后的路徑)
? ? 在系統(tǒng)變量path中新建一個%adb%
? ? 到此ADB安裝配置完成
3、測試ADB
? ? 在命令系統(tǒng)中輸入adb回車畏浆,成功結(jié)果如下
4胆胰、adb logcat的使用
? ? 1)確認PC端的ADB安裝成功且可以正常使用
? ? 2)在手機端打開開發(fā)者選項,開啟USB調(diào)試模式
? ? 3)使用USB連接安卓手機和電腦
? ? 4)進入cmd刻获,輸入命令adb logcat即可開始抓取安卓手機的log
5蜀涨、adb常用命令
? ? 1)adb devices 查看當前連接電腦的設(shè)備,安卓設(shè)備或者模擬器會被顯示出來
? ? 2)adb install 將指定的APK文件安裝到設(shè)備上
? ? 3)adb uninstall 將指定的APP從設(shè)備上卸載
? ? 4)adb shell?通過上面的命令蝎毡,就可以進入設(shè)備或模擬器的shell環(huán)境中厚柳,在這個Linux Shell中,你可以執(zhí)行各種Linux的命令沐兵,另外如果只想執(zhí)行一條shell命令别垮,可以采用這種方式:adb shell [command],如:adb shell dmesg會打印出內(nèi)核的調(diào)試信息
? ? 5) adb push 可以將電腦上的文件或者文件夾復(fù)制到手機設(shè)備上
? ? 6)adb pull 可以把手機設(shè)備上的文件或文件夾復(fù)制到本地電腦上
? ? 7)adb get-product 獲取設(shè)備的ID號
? ? 8)adb get-serialno 獲取設(shè)備的序列號
? ? 9)adb help 獲取幫助信息
6扎谎、常用的抓取日志命令
? ??使用流程:
cmd進入輸入adb 查看adb是否安裝
連接設(shè)備(使用數(shù)據(jù)線連接安卓設(shè)備)
輸入命令adb logcat 查看log
若發(fā)現(xiàn)不了設(shè)備 adb kill-server
發(fā)現(xiàn)新設(shè)備adb devices
出現(xiàn)提示設(shè)備名碳想,即可繼續(xù)實行adb logcat 查看日志
?? ?捕獲Logcat輸出:
?? ?adb logcat -c && adb logcat -v time | tee logcat.txt | grep -i 7837
?? ?adb logcat -c && adb logcat -v time | tee logcat.txt | grep -E 'showImgWithUrl'
?? ?抓取崩潰日志:
?? ?logcat -s AndroidRuntime DEBUG
?? ?adb命令向設(shè)備復(fù)制導(dǎo)入、導(dǎo)出毁靶、刪除文件等
?? ?//導(dǎo)入文件復(fù)制文件
?? ?adb push 文件 目標文件路徑
?? ?adb push lo.log storage/sdcard0
?? ?//導(dǎo)出文件 mac默認是你的$home文件查看home文件方法 echo $HOME
?? ?adb pull storage/sdcard0/wifi_config.log
?? ?獲取序列號:
?? ?adb get-serialno
?? ?查看連接計算機的設(shè)備: adb devices
?? ?重啟機器: adb reboot
?? ?重啟到bootloader胧奔,即刷機模式: adb reboot bootloader
?? ?重啟到recovery,即恢復(fù)模式: adb reboot recovery
?? ?查看log: adb logcat
?? ?終止adb服務(wù)進程: adb kill-server
?? ?重啟adb服務(wù)進程: adb start-server
?? ?獲取機器MAC地址: adb shell cat /sys/class/net/wlan0/address
?? ?獲取CPU序列號:adb shell cat /proc/cpuinfo
?? ?安裝APK:adb install //比如:adb install baidu.apk
?? ?保留數(shù)據(jù)和緩存文件预吆,重新安裝apk:adb install -r
?? ?//比如:adb install -r baidu.apk
?? ?安裝apk到sd卡:adb install -s
?? ?// 比如:adb install -s baidu.apk
?? ?卸載APK:adb uninstall
?? ?//比如:adb uninstall com.baidu.search
?? ?卸載app但保留數(shù)據(jù)和緩存文件:adb uninstall -k
?? ?//比如:adb uninstall -k com.baidu.search
?? ?啟動應(yīng)用:adb shell am start -n /.
?? ?查看設(shè)備cpu和內(nèi)存占用情況:adb shell top
?? ?查看占用內(nèi)存前6的app:adb shell top -m 6
?? ?刷新一次內(nèi)存信息龙填,然后返回:adb shell top -n 1
?? ?查詢各進程內(nèi)存使用情況:adb shell procrank
?? ?殺死一個進程:adb shell kill [pid]
?? ?查看進程列表:adb shell ps
?? ?查看指定進程狀態(tài):adb shell ps -x [PID]
?? ?查看后臺services信息:adb shell service list
?? ?查看當前內(nèi)存占用:adb shell cat /proc/meminfo
?? ?查看IO內(nèi)存分區(qū):adb shell cat /proc/iomem
?? ?將system分區(qū)重新掛載為可讀寫分區(qū):adb remount
?? ?從本地復(fù)制文件到設(shè)備:adb push
?? ?從設(shè)備復(fù)制文件到本地:adb pull
?? ?列出目錄下的文件和文件夾,等同于dos中的dir命令:adb shell ls
?? ?//進入文件夾,等同于dos中的cd 命令:
?? ?adb shell cd
?? ?重命名文件:adb shell rename path/oldfilename path/newfilename
?? ?刪除system/avi.apk:adb shell rm /system/avi.apk
?? ?刪除文件夾及其下面所有文件:adb shell rm -r
?? ?移動文件:adb shell mv path/file newpath/file
?? ?設(shè)置文件權(quán)限:
?? ?adb shell chmod 777 /system/fonts/DroidSansFallback.ttf
?? ?新建文件夾:adb shell mkdir path/foldelname
?? ?查看文件內(nèi)容:adb shell cat
?? ?查看wifi密碼:adb shell cat /data/misc/wifi/*.conf
?? ?清除log緩存:adb logcat -c
?? ?查看bug報告:adb bugreport
?? ?獲取設(shè)備名稱:adb shell cat /system/build.prop
?? ?查看ADB幫助:adb help
?? ?跑monkey:adb shell monkey -v -p your.package.name 500
7岩遗、抓取日志到本地文檔
? ? 命令:adb logcat [position]>[log.txt]
? ? 例如:adb logcat -v time>androidlog.txt
?? ?運行之后扇商,我們打開剛才的文本文檔,就可以看到相應(yīng)的日志了
PS:ADB對于Android系統(tǒng)來說是神一般的存在