►►►
一、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
,