一、介紹:
ADB,全名Android Debug Bridge,是一個用來與Android溝通的橋樑,只要手機開啟偵錯模式(Debug Mode)即可透過ADB來操作手機
備註: 本篇文章指令皆為終端機(terminal,commander)指令,
二、透過ADB連接手機:
1. 使用USB:
將手機透過USB連接至電腦後即可使用
2. 使用TCP/IP(Android 10+):
將手機及電腦連接至相同區網下(使用手機熱點亦可),進入手機開發者介面->無線偵錯(無線調試)->IP位置,在終端機輸入: adb connect <ip>(:<port>)
三、全域參數:
可加在adb後子命令前,用來指定adb運行的參數
1. -a
不只監聽localhost,監聽所有網路介面
2. -d 強制使用以USB連接的裝置,有複數台裝置會出錯
3. -e
強制使用以TCP/IP連接的裝置,有複數台裝置會出錯
4. -s <SERIAL> 指定使用特定裝置執行指令,<SERIAL>為該裝置識別碼
5. -t <ID>
指定使用特定裝置執行指令,<ID>為該裝置傳輸ID
四、基本指令:
1. devices (-l)
列出所有連接裝置,可加"-l"詳細輸出
2. help
輸出幫助列表
3. version
輸出adb版本資訊
五、網路相關:
1. connect <host>(:<port>)
透過TCP/IP連接裝置,port預設5555
2. disconnect (<host>(:<port>))
中斷TCP/IP裝置連接,未指定host為中斷全部裝置,port預設5555
3. forward --list
列出從電腦連接到裝置的資訊
4. forward (--no-rebind) <local> <remote>
使用指定的host連接到裝置的host
5. forward --remove <local>
刪除指定的連接
6. forward --remove-all
刪除所有連接
7. reverse --list
列出從裝置連接到電腦的資訊
8. reverse (--no-rebind) <local> <remote>
與4.相似
9. reverse --remove <local>
與5.相似
10. reverse --remove-all
與6.相似
六、檔案傳輸相關:
1. push <local> <remote>
將電腦的<local>檔案上傳到手機的<remote>位置
2. pull (-a) <remote> (<local>)
將手機的<remote>檔案下載至電腦的<local>位置,未指定<local>為終端機所在位置,加上"-a"會含帶時間輟(timestamp)及檔案本身權限
七、shell指令:
1. shell
連接至裝置的終端機
2. shell <command> (<command arguments>)
直接在裝置終端機運行指令,顯示運行結果後退出
八、 應用安裝相關:
1. install (-l|-r|-t|-s|-d|-g) (--instant) <file>
安裝app至手機上
2. install-multiple (-l|-r|-t|-s|-d|-g) (--instant) <files>...
同時安裝多個app至手機上
3. install-multi-package (-l|-r|-t|-s|-d|-g) (--instant) <files>...
依序安裝多個app至手機上
4. uninstall (-k) <package>
解除安裝app,"-k"會保留該app的資料與快取
參數:
-l
前向鎖定
-r
強制替換原app
-t
允許安裝測試app
-s
安裝至sd卡上
-d
允許降級安裝(僅測試app)
-g
獲得全部權限
--instant
安裝app為短暫的app
九、偵錯相關:
1. bugreport <path>
將報告輸出至<path>
2. jdwp
輸出jdwp進程清單
3. logcat
輸出日誌紀錄
十、內部指令相關:
1. start-server
啟動adb伺服器
2. kill-server
結束adb伺服器
3. reconnect
從電腦斷開連接並重新連線
4. reconnect device
從裝置端看連接並重新連線
5. reconnect offline
將offline與unauthorized的裝置重新連線