adb 是一個可以用來與 Android 裝置 (實機或模擬器) 溝通的工具,安裝好 Android Studio ,就可以使用了,它被放在 Android System Developer's Kit 的 platform-tools 目錄中,目錄的路徑可以在 Project Structure 的 SDK Location 來找到他,在我的機器上是 C:\Users\Kirin\AppData\Local\Android\Sdk。

一般而言,我們會透過 IDE 來叫用 adb 相關的功能,但是有些狀況下,在指令列執行比較方便,你可以切換到 platform-tools 目錄下執行,或是把路徑加到 PATH 環境變數中,就可以在任意目錄中執行,這在檔案的傳輸時很好用。

adb 指令會用 5037 port 連接一個在背景執行的 adb 伺服器 (adb daemon, adbd) ,並透過 adbd 與 Android 裝置溝通。

常用的 adb 指令


# 列出目前所有連接的裝置
adb devices

# 在裝置上執行 shell (在只有一台連接的狀況)
adb shell

# 在 emulator-5554 這台裝置上執行 shell
adb -s emulator-5554 shell 

# 停止 adb daemon
adb kill-server

# 啟動 adb daemon
adb start-server

# 從 logcat 取得輸出
adb logcat

# 將裝置上的檔案拉回本機
adb pull /sdcard/Music/1.mp3 music.mp3

# 將本機的檔案推到連接的裝置上
adb push dir.txt /sdcard

常用的 shell 指令

pm - 套件管理工具

# 列出所有已安裝的 app
pm list packages

# 尋找 app 被安裝在那裏
pm path app.kirin.tomatotimer

# 顯示其他選項
pm -help

ps - 顯示程序狀態

ps

dexdump - 顯示 APK 資訊

dexdump -d /data/app/app.kirin.tomatotimer/base.apk

lsof - 列出程序打開的檔案與其他連結

# 列出 id 為 1862 的程序正在做什麼事
lsof -p 1862

screencap - 擷取螢幕畫面

# 將目前的螢幕畫面存入 /sdcard/screenshot.png
screencap -p /sdcard/screenshot.png

top - 顯示目前的程序

# 顯示前 5 名繁忙的程序
top -m 5

參考資料

adb 官方資料

Last modified: 2021-07-28

Author

Comments

Write a Reply or Comment

Your email address will not be published.