►►►
一、ADB 簡介
1
什麼是 ADB?
ADB 全稱為 Android Debug Bridge,起到調試橋的作用,是一個客戶端-伺服器端程序。其中客戶端是用來操作的電腦,服務端是 Android 設備。ADB 也是 Android SDK 中的一個工具,可以直接操作管理 Android 模擬器或者真實的 Android 設備。
2
為什麼要用 ADB?
ADB 可以直接操作管理手機模擬器或者真實的手機設備(如華為手機)。它的主要功能有:
運行設備的 shell(命令行)
管理模擬器或設備的埠映射
計算機和設備之間上傳/下載文件
可以對設備的應用進行卸載安裝等
在 App 遇到 ANR/Crash 等 bug 時,可以通過 ADB 來抓取日誌
簡而言之,ADB 就是連接 Android 手機與 PC 端的橋樑,可以讓用戶在電腦上對手機進行全面的操作!
►►►
二、ADB 命令詳解
1
基本指令
命令 |
adb version |
|
含義 |
顯示 adb 版本 |
|
操作 |
|
命令 |
adb help |
|
含義 |
幫助信息,查看 adb 所支持的所有命令 |
|
操作 |
|
命令 |
adb start-server |
|
含義 |
啟動 adb 服務 |
|
操作 |
|
命令 |
adb kill-server |
|
含義 |
關閉 adb 服務 |
|
操作 |
|
命令 |
adb devices |
|
含義 |
用來查看當前連接的設備,已連接的設備會顯示出來 |
|
操作 |
|
命令 |
adb connect 設備號 |
|
含義 |
用來連接設備 |
|
操作 |
|
2
權限指令
命令 |
adb root |
|
含義 |
獲取 Android 管理員(root 用戶)的權限 |
|
操作 |
命令 |
adb shell |
|
含義 |
登錄設備-shell,這個命令將登錄設備的 shell(內核),登錄 shell 後可以使用 cd、ls、rm 等 Linux 命令 |
|
操作 |
命令 |
adb remount |
|
含義 |
獲取 System 分區可寫權限,需要 root 後才能有這個權限 |
|
操作 |
3
apk 操作指令
命令 |
adb shell pm list packages |
|
含義 |
顯示所有包名 |
|
操作 |
命令 |
adb shell pm list packages –s |
|
含義 |
顯示系統應用包名 |
|
操作 |
命令 |
adb shell pm list packages -3 |
|
含義 |
顯示第三方應用包名 |
|
操作 |
命令 |
adb install <apk 文件路徑 > |
|
含義 |
將本地 apk 軟體安裝到設備上 |
|
操作 |
命令 |
adb uninstall <apk 包名 > |
|
含義 |
將設備上的 apk 卸載 |
|
操作 |
4
文件操作指令
命令 |
adb push < 本地路徑 > < 手機端路徑 > |
|
含義 |
把本地的文件或文件夾複製到設備(手機) |
|
操作 |
命令 |
adb pull < 手機端文件 > < 本地路徑 > |
|
含義 |
把設備(手機)的文件或文件夾複製到本地 |
|
操作 |
5
日誌操作指令
命令 |
adb logcat -v time > D:\logs\logcat.log |
|
含義 |
輸出實時日誌並保存在本地文件,通過 Ctrl+C 來停止。抓取日誌的步驟:先輸入命令啟動日誌,然後操作 App,復現 bug,再 ctrl+c 停止日誌,分析本地保存的文件 |
|
操作 |
命令 |
adb bugreport >D:\logs\ bugreport.log |
|
含義 |
輸入指令後開始抓取 Log,不需要按 Ctrl+C 來停止,會自動化停止 Log 列印,並將日誌文件保存在本地。抓取日誌的步驟:主要抓取執行命令時往前 10 分鐘左右的日誌信息,所以在出現 bug 後立即採用此方法才有效,問題出現時間太長不建議使用此方法 |
|
操作 |
6
系統操作指令
命令 |
adb shell getprop ro.product.model |
|
含義 |
獲取設備型號 |
|
操作 |
命令 |
adb shell getprop ro.build.version.release |
|
含義 |
獲取設備 Android 系統版本 |
|
操作 |
命令 |
adb get-serialno |
|
含義 |
獲取設備的序列號(設備號) |
|
操作 |
命令 |
adb shell wm size |
|
含義 |
獲取設備屏幕解析度 |
|
操作 |
命令 |
adb shell screencap -p /sdcard/mms.png |
|
含義 |
屏幕截圖 |
|
操作 |
命令 |
adb pull /sdcard/mms.png D:\app |
|
含義 |
將截圖導出到本地 |
|
操作 |
adb shell dumpsys activity |find "mFocusedActivity" 查看前台應用包名,適用於 Android 7.0 以下,必須先啟動 app
adb shell dumpsys activity |find "mResumedActivity" 查看前台應用包名,適用於 Android 8.0 以上,必須先啟動 app