adb
Android Platform Tools 34+Android Debug Bridge CLI 命令快速參考:裝置探索、安裝/解除安裝、logcat、shell、push/pull、埠轉發、無線除錯——附常用參數與實作範例。
33 條命令
裝置
adb devices列出所有已連接的裝置/模擬器及其序號與狀態(`device`、`unauthorized`、`offline`)。
-l 顯示詳細資訊(產品、型號、傳輸);-e 只列模擬器;-d 只列 USB 裝置
adb devices -ladb connect <ip>:<port>透過 Wi-Fi 或 TCP/IP 連線到裝置(預設埠 5555)。Android 11+ 需先用 `adb pair <ip>:<port>` 配對。
ip:port;--one-time 工作階段結束時中斷
adb pair 192.168.1.42:41235 && adb connect 192.168.1.42:5555adb disconnect [<ip>:<port>]中斷一個或所有無線裝置的連線。不帶參數會中斷所有連線。
adb disconnect 192.168.1.42:5555 && adb disconnectadb -s <serial> <command>當同時連接多台裝置時,指定目標裝置(把 `<serial>` 換成 `adb devices` 列出的值)。
adb -s emulator-5554 shell pm list packages安裝/解除安裝
adb install <apk>安裝 APK。`-r` 保留資料重新安裝;`-d` 允許 version-code 降版;`-t` 允許 test-only APK;`-g` 授予所有執行階段權限。
-r;-d;-t;-g;--abi <abi>;--user <id>
adb install -r -g app-release.apkadb install-multi-package <apk1> <apk2>原子地安裝分割 APK 套件——用於含多個 ABI/設定的 App Bundle。
adb install-multi-package base.apk split_config.arm64.apkadb uninstall <package>依套件名稱解除安裝。`-k` 保留資料與快取目錄。
-k 保留使用者資料
adb uninstall com.example.myappLogcat
adb logcat串流裝置的日誌緩衝區。Tag/優先級過濾:`*:V`(verbose)、`*:E`(errors)。
-v threadtime;-d 傾印後離開;-s <tag>;-t <N>;--pid=<pid>;-f <file> 寫入檔案
adb logcat *:Eadb logcat -d把當前緩衝區傾印到 stdout 後離開(非串流)。搭配 grep 用於一次性檢視。
-d -t 500 最後 500 行
adb logcat -d -t 200 | grep -i 'myapp'adb logcat -s <tag>:<level>只顯示指定 tag 在某個等級(V/D/I/W/E)的條目。多個 tag 以空白分隔。
MyTag:D MyTag2:E
adb logcat -s MyApp:V ReactNative:VShell
adb shell進入裝置上的互動式 shell。大多數 Unix 工具可用;`/sdcard` 是公開儲存根目錄。
-t 配置 TTY(給互動式程式用)
adb shelladb shell <command>在裝置上執行單一指令並回傳輸出。主機與裝置參數混合時請小心引號。
adb shell pm list packages | grep com.example && adb shell dumpsys batteryadb shell pm list packages列出已安裝套件。`-f` 顯示路徑,`-3` 只列使用者安裝的應用,`-d` 只列已停用的套件。
-f 路徑;-3 使用者應用;-d 已停用;-e 已啟用;-s 系統;<filter>
adb shell pm list packages -3 | head -30adb shell am start -n <package>/<activity>以 `package/activity` 限定名稱啟動 activity。使用 `am start -W` 等到啟動完成。
-a <action>;-d ;--es <key> <val> 字串 extra;-W 等候
adb shell am start -n com.example/.MainActivityadb shell screencap -p /sdcard/screen.png把裝置螢幕擷取為 PNG。搭配 `adb pull` 取回。
-p PNG(預設)
adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png .adb shell input <source> <command>注入輸入事件。常見:`tap x y`、`swipe x1 y1 x2 y2 [ms]`、`keyevent <code>`、`text "string"`。
tap;swipe;keyevent;text;roll;press
adb shell input tap 540 1200 && adb shell input keyevent 4檔案傳輸
adb push <local> <remote>把本地檔案/目錄複製到裝置。同步語意;保留二進位檔案。
--sync 只覆寫過期檔案;--copy-links 保留符號連結;-p 顯示進度
adb push app-debug.apk /sdcard/Download/ && adb push ./assets /sdcard/myapp/assetsadb pull <remote> <local>把裝置檔案/目錄複製到主機。預設目的地為 `.`(當前目錄)。
-a 保留時間戳;-p 顯示進度
adb pull /sdcard/screen.png ./screenshots/latest.png埠轉發
adb forward tcp:<host-port> tcp:<device-port>把主機埠轉發到裝置埠——常用於對 Chrome 分頁開啟遠端除錯 socket。
--remove;--remove-all
adb forward tcp:9222 localabstract:chrome_devtools_remoteadb reverse tcp:<device-port> tcp:<host-port>反向把裝置埠轉發到主機埠——當你的開發伺服器跑在 `localhost:3000` 而裝置需要存取它時很有用。
adb reverse tcp:3000 tcp:3000 && curl http://localhost:3000/api/healthadb forward --list列出所有啟用中的埠轉發與反向轉發。可與 `adb forward --remove-all` 搭配重置。
adb forward --list && adb reverse --list應用管理
adb shell pm clear <package>清除特定套件的應用資料與快取——等同 `設定 → 應用程式 → 儲存空間 → 清除`。
adb shell pm clear com.example.myappadb shell pm grant <package> <permission>授予執行階段權限(例如 `android.permission.CAMERA`),無需 UI 提示——測試環境常見。
adb shell pm grant com.example.myapp android.permission.READ_CONTACTSadb shell am force-stop <package>強制停止執行中的應用(其行程會被殺掉)。重新安裝前景應用時很有用。
adb shell am force-stop com.example.myapp && adb install -r app.apk啟動/Recovery
adb reboot重新啟動裝置。變體:`recovery`、`bootloader`、`fastboot`、`download`、`edl`。
recovery | bootloader | fastboot | download | edl
adb reboot bootloader && fastboot flashalladb sideload <zip>從 recovery 模式(通常透過 `adb reboot recovery` 進入)側載已簽署的 OTA/原廠映像 zip。
adb sideload ota-update.zip除錯
adb shell run-as <package> <cmd>以應用的 UID 執行指令——可除錯的 APK 才能讀取自己的私有資料目錄。
<package> cat ./databases/my.db > /sdcard/dump.db
adb shell run-as com.example.myapp ls databasesadb shell dumpsys <service>傾印系統服務的狀態(`battery`、`window`、`activity`、`package`、`gfxinfo`、`netstats`)。
battery;activity;package;window;gfxinfo <pkg>;netstats
adb shell dumpsys gfxinfo com.example.myapp framestats伺服器
adb start-server明確啟動 adb 伺服器(通常任何指令都會自動啟動)。在 `kill-server` 後使用。
adb start-serveradb kill-server停止 adb 伺服器並中斷所有裝置。adb 卡在 `offline` 狀態時很有用。
adb kill-server && adb start-server && adb devices雜項
adb --version印出 Platform Tools 版本。
adb --versionadb help列出所有 adb 子指令與簡短說明。
adb help無線
adb pair <ip>:<port>透過 Wi-Fi 以開發者選項中顯示的 6 位數配對碼配對裝置。之後用 `adb connect` 連線真正的除錯埠。
<ip>:<port>
adb pair 192.168.1.42:41235相關命令速查
商標與使用聲明
本批命令列工具速查手冊為開源社群參考資料。文中涉及的各工具的名稱、標識、商標(如 Git™、Docker™、Kubernetes®、kubectl、PostgreSQL®、MySQL®、Redis™、MongoDB®、Linux™、PowerShell™、Vim™ 等)均歸對應權利人所有,此處僅為識別與參考之目的使用。
本速查手冊的全部內容均為獨立編寫的簡化自包含參考,**與任何官方文件不存在隸屬、被認可或引用關係**。命令列表、參數說明、範例均為作者原創簡化表達;如需權威資訊,請參閱各工具的官方文件。
命令語法與參數可能在不同工具版本中有所差異。所示版本標籤對應穩定發佈版本;其他版本行為可能有所不同。本速查手冊**不代表**商標權利人的任何偏好或推薦。
如商標或版權方認為本站部分內容存在權益侵害,請發送電郵至[email protected],我們在收到有效權屬證明後,會在合理期限內修改或移除相關內容。
本網站不對因使用本站資訊而產生的任何直接或間接損失承擔法律責任。
關於 ADB
Android Debug Bridge(adb)是隨 Android SDK Platform Tools(自 2009 年起)發佈的命令列工具。它透過 USB、Wi-Fi 或 TCP/IP,把你的開發工作站與任何 Android 裝置或模擬器串接起來,並提供三個子元件:伺服器(在主機上執行,連接埠 5037)、守護行程(`adbd` 在裝置上執行)、與 `adb` CLI。目前的 Platform Tools 線為 34+(隨 Android 14 一起發佈)。`adb` 是安裝 APK、讀取 logcat、透過 JDWP 除錯應用、刷 ROM、撰寫 UI 測試腳本、以及 push/pull 檔案的基礎。無線除錯於 Android 11 加入(Android 13+ 加入 QR 配對流程)。常見的姊妹指令包括 `fastboot`(bootloader/recovery)與 `emulator`(基於 QEMU 的 AVD)。ADB 不會上傳應用程式的源碼——它只傳輸 APK 與裝置狀態。SDK Platform Tools 以 Apache 2.0 授權,可作為獨立 ZIP 或透過 SDK Manager 取得。
速查頁版本 1.0.0