ADB(Android Debug Bridge,Android 偵錯橋接器)是用來連接電腦與 Android 裝置的通用命令列工具。雷電模擬器的每個執行個體都會透過 ADB 偵錯連接埠開放,開發者可直接使用 adb 完成連線、安裝、模擬輸入、截圖、檔案傳輸等各類偵錯與自動化操作,無須依賴任何專用命令列封裝。
目錄
一、雷電模擬器 adb 連接埠與連線
1. 查看 adb 連接埠
雷電模擬器的每個執行個體都會透過一組 ADB 偵錯連接埠開放。一般命名規則如下:
| 執行個體序號 | 預設 adb 連接埠 |
|---|---|
| 0(主要執行個體) | 5554 |
| 1 | 5556 |
| 2 | 5558 |
| … | 依序 +2 |
執行個體 0 啟動後,在 adb devices 中通常會顯示為一組裝置序號(例如 emulator-5554)。
多開時,執行個體 1 約對應 emulator-5556、執行個體 2 約對應 emulator-5558。實際裝置序號請以本機 adb devices 的輸出結果為準。
adb devices # 查看本機所有執行個體的裝置序號
📌 同一台電腦同時執行雙版本雷電(雷電 9 + 雷電 14)的連接埠衝突提醒:若同一台電腦同時執行雷電 9 與雷電 14 的執行個體 0,兩者都會占用
5555。先啟動的執行個體可正常註冊,後啟動的執行個體其 adb 連接埠會受到抑制,因此在adb devices中不會顯示。✅ 解決方式:避免在同一台電腦同時啟動兩個版本的執行個體 0,或只保留其中一個模擬器版本執行。
2. 如何連線 adb(單一執行個體)
- 開啟雷電模擬器安裝目錄(例如
E:\LDPlayer\LDPlayer14),在網址列輸入CMD後按 Enter,開啟命令提示字元。 - 輸入
adb devices後按 Enter,確認執行個體已列出(例如emulator-5554)。 - 輸入
adb shell後按 Enter,進入 Android shell。
E:\LDPlayer\LDPlayer14> adb devices
List of devices attached
emulator-5554 device
E:\leidian\LDPlayer14> adb shell
xxx:/ #
3. 如何連線多開模擬器的 adb
當多個執行個體同時執行時,每個執行個體都會註冊各自的裝置序號。請先使用 adb devices 查看全部裝置,再透過 -s <裝置序號> 指定目標:
adb devices # 先查看所有裝置序號
adb -s emulator-5554 shell # 連線執行個體 0
adb -s emulator-5554 shell pm list packages -3
若裝置序號未出現,請先確認對應的模擬器執行個體已啟動,再執行 adb devices 重新整理。
二、多裝置衝突與使用 -s 指定目標
當電腦同時連接多個模擬器(或多開執行個體)時,任何未帶入 -s 的 adb 指令都會出現錯誤:
adb.exe: more than one device/emulator
解決方式只有一種:一律使用 -s <裝置序號> 明確指定目標裝置。將裝置序號放在 adb 的第一個參數即可:
adb -s emulator-5554 shell input tap 500 500
📌 關於裝置序號的穩定性:執行中的執行個體,其裝置序號(例如
emulator-5554)會由雷電 adb server 持續維護。執行adb disconnect後,數秒內仍會自動重新連線;若要完全中斷,只能關閉執行個體或執行adb kill-server(但再次執行任一 adb 指令後仍會重新註冊)。因此,在腳本中直接使用-s鎖定adb devices顯示的實際裝置序號最方便。
三、常用 adb 指令說明
部分指令需要相關權限,可先開啟 ROOT(請參考 3.1)後再進行操作。以下範例預設已透過 adb shell 進入 Android,或在指令前加上 adb -s <裝置序號>。
1. 開啟 ROOT 權限
開啟模擬器「設定中心 → 其他 → 開啟 ROOT 權限」。連線 adb 後輸入 adb shell,若提示字元顯示為 $,代表目前權限不足:
adb shell # 進入後看到 $
exit # 返回上一層
adb root # 以 root 權限重新啟動 adb 背景程序
adb shell # 再次進入,提示字元應顯示為 #
2. 多裝置環境下的操作格式
adb -s <裝置序號> <其他指令>
# 範例:
adb -s emulator-5554 shell pm list packages -3
若本機只有一個模擬器,也可省略 -s,直接使用 adb <指令>。
3. 安裝與解除安裝 apk
adb install C:\xx.apk # 安裝
adb install -r C:\xx.apk # 覆蓋安裝(保留資料)
adb uninstall <套件名稱> # 解除安裝
4. 取得已安裝應用程式的套件名稱
adb shell pm list packages # 所有應用程式
adb shell pm list packages -3 # 第三方應用程式
adb shell pm list packages -s # 系統應用程式
adb shell dumpsys window | findstr mCurrentFocus # 目前正在執行的應用程式
5. 取得 Activity 名稱
adb shell cmd package resolve-activity --brief <套件名稱> | tail -n 1
6. 查看應用程式版本號
adb shell dumpsys package <套件名稱> | findstr version
7. 清除應用程式資料
adb shell pm clear <套件名稱>
8. 模擬輸入
| 操作 | 指令 | 說明 |
|---|---|---|
| 按鍵 | adb shell input keyevent <按鍵值> | 例如 3 為 HOME 鍵,4 為返回鍵 |
| 文字 | adb shell input text <文字> | 例如 hello;不支援中文 |
| 點擊 | adb shell input tap | X、Y 為螢幕座標(像素) |
| 滑動 | adb shell input swipe [TIME] | TIME 單位為毫秒,預設 100 |
| 長按 | adb shell input swipe | 起點與終點相同即為長按 |
| 啟動 App | adb shell am start -n <套件名稱>/ | 請參考 3.5 取得的 Activity 名稱 |
9. 電腦與模擬器之間傳輸檔案
adb push C:\test.apk /sdcard/ # 電腦 → 模擬器
adb pull /sdcard/test.apk C:\ # 模擬器 → 電腦(使用 Windows 磁碟機代號,請勿使用 /c/)
✅ 實測可用:在雷電 9 / 雷電 14 上,原生
adb push/adb pull均可正常傳輸檔案(已測試同一檔案雙向傳輸成功)。目標路徑請使用 Windows 磁碟機代號(例如C:\),不要使用/c/。
10. 截圖
adb shell screencap /sdcard/screen.png # 擷取目前畫面並儲存至裝置
adb pull /sdcard/screen.png C:\ # 下載至電腦
11. 錄製影片
adb shell screenrecord /sdcard/test.mp4 # 開始錄製
# 按 CTRL+C 結束
adb pull /sdcard/test.mp4 C:\ # 匯出
12. 查看裝置資訊
adb shell getprop ro.product.model # 型號
adb shell getprop ro.product.brand # 品牌
adb shell getprop ro.product.board # 處理器
adb shell getprop ro.build.version.release # Android 版本
adb shell wm size # 解析度
adb shell dumpsys SurfaceFlinger | findstr "GLES" # 渲染模式
13. 關閉開發人員模式
adb shell settings put global development_settings_enabled 0
四、adb 實作範例
將上述指令組合使用,即可對雷電模擬器進行完整的自動化操作。常見情境如下:
| 目的 | 指令 |
|---|---|
| 單一執行個體點擊座標 | adb shell input tap 500 500 |
| 指定執行個體點擊座標 | adb -s emulator-5554 shell input tap 500 500 |
| 輸入英文文字 | adb shell input text hello |
| 滑動操作 | adb shell input swipe 300 800 300 300 500 |
| 返回主畫面 | adb shell input keyevent 3 |
| 查詢 Android 版本 | adb shell getprop ro.build.version.release |
| 啟動系統設定 | adb shell am start -n com.android.settings/.Settings |
| 截圖並匯出 | adb shell screencap /sdcard/s.png 後接 adb pull /sdcard/s.png C:\ |
| 將檔案推送至裝置 | adb push C:\conf.txt /sdcard/ |