1. 在手機上啟用 adb 調試
要在通過 USB 連接的手機上使用 adb,必須在設備的“設置”中啟用 “USB調試 (USB debugging)”(位於 “開發者選項 (Developer options)” 下)。
注:在運行 Android 4.2 及更高版本的設備上,Developer options 屏幕默認情況下處於隱藏狀態。如需將其顯示出來,請轉到 Settings > About phone 並點按 Build number 七次。返回上一屏幕,在底部可以找到 Developer options。
2. 下載並運行 ADB
Google 官方提供了 ADB and Fastboot Tools 的下載,下載后解壓即可運行。
現在,您可以將手機通過 USB 線與 PC 連接。執行 adb devices 來驗證設備是否連接。如果已連接,將看到設備名稱以“設備”形式列示。
注:當您連接運行 Android 4.2.2 或更高版本的設備時,系統將顯示一個對話框,詢問您是否接受允許在這台計算機上調試的 RSA 密鑰。這種安全機制可以保護用戶設備,因為它可以確保只有在您能夠解鎖設備並確認對話框的情況下才能執行 USB 調試和其他 ADB 命令。
例如:
在未接受“允許在這台計算機上調試的 RSA 密鑰”前,執行的結果
> adb devices
List of devices attached
cff193186f5168e unauthorized
192.168.1.3:5555 device
在接受“允許在這台計算機上調試的 RSA 密鑰”后,執行的結果
> adb devices
List of devices attached
cff193186f5168e device
192.168.1.3:5555 device
3. 通過 WLAN 連接到設備
a. 將 Android 設備和 adb 主計算機連接到這兩者都可以訪問的常用 WLAN 網絡。使用 USB 電纜將手機連接到主計算機。
b. 設置目標設備以偵聽端口 5555 上的 TCP/IP 連接。
> adb tcpip 5555
c. 從目標設備斷開 USB 電纜連接。
d. 查找 Android 設備的 IP 地址。例如,可以通過訪問 Settings > Wi-Fi Settings > Advanced > IP address 查找 IP 地址。
e. 連接至設備,通過 IP 地址識別此設備。
> adb connect device_ip_address
f. 請確認您的主計算機已連接至目標設備:
> adb devices
List of devices attached
device_ip_address:5555 device
現在,您可以開始操作了!
g. 如果要回到 USB 連接模式:
> adb usb
4. 如果 adb 連接丟失:
通過再次執行 adb connect 步驟重新連接。
如果無法連接,則重置 adb 主機:
> adb kill-server
然后,從頭開始操作。
5. 將命令發送至特定設備
如果多個模擬器/設備實例正在運行,在發出 adb 命令時您必須指定一個目標實例。為此,請在命令中使用 -s 選項。以下是 -s 選項的用法:
> adb -s serial_number command
如上所示,您使用由 adb 分配的序列號為命令指定目標實例。
如果您有多個設備可用(硬件或模擬設備),但只有一個設備是模擬器,則使用 -e 選項將命令發送至該模擬器。同樣,如果有多個設備,但只連接了一個硬件設備,則使用 -d 選項將命令發送至該硬件設備。
6. 常用 ADB 命令
a. 安裝應用
可以使用 adb 從開發計算機復制應用,並將其安裝到模擬器/設備實例上。為此,請使用 install 命令。使用此命令,您必須指定您要安裝的 APK 文件的路徑:
> adb install path_to_apk
b. 將文件復制到設備/從設備復制文件
可以使用 adb 命令 pull 和 push 將文件復制到模擬器/設備實例或從其中復制文件。pull 和 push 命令允許您將任意目錄和文件復制到模擬器/設備實例中的任意位置。
要從模擬器或設備復制文件或目錄(及其子目錄),請使用
> adb pull remote local
要將文件文件或目錄(及其子目錄)復制到模擬器或設備,請使用
> adb push local remote
在上述命令中,local 和 remote 指的是開發計算機(本地)和模擬器/設備實例(遠程)上目標文件/目錄的路徑。例如:
> adb push foo.txt /sdcard/foo.txt
> adb pull /sdcard/foo.zip
c. 停止 adb 服務器
在某些情況下,您可能需要終止 adb 服務器進程,然后重啟它以解決問題(例如,如果 adb 不響應命令)。
要停止 adb 服務器,請使用 adb kill-server 命令。然后,您可以通過發出任意其他 adb 命令重啟服務器。
d. 發出 shell 命令
可以使用 shell 命令通過 adb 發出設備命令,可以進入或不進入模擬器/設備實例上的 adb 遠程 shell。要在不進入遠程 shell 的情況下發出一個命令,請使用如下 shell 命令:
> adb [-d|-e|-s serial_number] shell shell_command
或者,使用如下命令進入模擬器/設備實例上的遠程 shell:
> adb [-d|-e|-s serial_number] shell
當您准備退出遠程 shell 時,按 Control + D 或輸入 exit。
注:
也可以在手機上安裝相關應用實現 WiFi 設置,常用應用有:WiFi ADB、ADB Wireless等。這時可以避免使用 USB線 連接手機和 PC 的步驟,只要在手機運行這些應用,然后在 PC 上執行 adb connect device_ip_address 命令即可。
注:
Android Studio 也可以通過 WiFi 無線調試 APP 。在 Android Studio 中 Settings -> Plugins -> Browse Repositories 搜索框輸入 ADB WIFI 或 Android WiFi ADB 找到插件,安裝即可。
參考文獻:
https://developer.android.com/studio/command-line/adb.html
https://segmentfault.com/a/1190000003949455
http://www.jianshu.com/p/21d1b65d92a4
=======================================================================================
舉例:通過 adb 查看手機里的 WiFi 密碼
手機里 WiFi 密碼保存在 /data/misc/wifi/ 目錄下的 conf 文件中。
> adb shell // 進入adb shell
> shell@asdad:/ $ su // 獲取root權限
> root@asdad:/ # cat /data/misc/wifi/*.conf // 查看 conf 文件內容
e.g.
network={
ssid = "WIFI名稱" // ssid表示WIFI名稱
psk = "WIFI密碼" // psk是WIFI密碼
key_mgmt = WPA-PSK
priortity = 19
}