1. 配置 adb 命令
一直想在AndroidStudio的Terminal中 輸入 adb 命令,但是終究沒有嘗試。今天心血來潮想試試無線調試,可是在控制臺輸入adb devices
后,缺提示 bash: adb: command not found
。好吧,讓我來先配置一下環境變量(Mac OS 10.12.6
jdk1.8.0_121
)。
1.Mac下打開終端:Launchpad -> 其他 -> 終端
2.輸入:touch .bash_profile
3.打開:open -e .bash_profile
4.保存:source .bash_profile
其中進行第3步,打開的 .bash_profile 文件,文件的路徑一定要改成你自己電腦中的具體路徑。
我電腦中配置:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:/Users/xiaomi/Library/Android/sdk/tools/:/Users/xiaomi/Library/Android/sdk/platform-tools/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
注意: PATH 變量中的 Android/sdk/tools 路徑。
執行 source .bash_profile
后,
輸入 adb
命令,可見控制臺輸出:
Android Debug Bridge version 1.0.39
Revision 5943271ace17-android
global options:
-a listen on all network interfaces, not just localhost
-d use USB device (error if multiple devices connected)
-e use TCP/IP device (error if multiple TCP/IP devices available)
-s SERIAL
use device with given serial number (overrides $ANDROID_SERIAL)
-p PRODUCT
name or path ('angler'/'out/target/product/angler');
default $ANDROID_PRODUCT_OUT
-H name of adb server host [default=localhost]
-P port of adb server [default=5037]
-L SOCKET listen on given socket for adb server [default=tcp:localhost:5037]
general commands:
devices [-l] list connected devices (-l for long output)
help show this help message
version show version num
......
OK~ 你該明白了吧。
2. AS 中手動實現無線真機調試
無線真機調試很簡單,無需插件,無需 Root,使用插件反而會將這個流程復雜化。先放上 純流程版 ,方便閱讀之后快速查閱,
純流程版
1. 將手機與電腦連接在同一局域網內
2. 手機用線連接電腦,控制臺輸入命令adb devices, 有設備編號為連接成功
3. 拔手機線,控制臺輸入命令 adb tcpip 5555,將TCP模式在 5555 端口啟動,無任何輸出為成功啟動
4. 控制臺輸入命令 adb connect 192.168.56.101:5555
其中:192.168.56.101 為手機在局域網的 ip 地址,輸出連接成功
此時無線連接已經成功,正常調試即可
詳細版
打開 命令行終端 ,鍵入adb devices
,這個命令會輸出所有連接到這臺電腦上的設備,每個設備有一個獨一無二的序列號。
見圖 :
進行無線連接
輸入命令adb tcpip 5555
,這個命令的作用是打開手機的 TCP 模式,并且將其綁定到 5555 接口。其中,5555 端口是一個習慣使用的端口,就像 MySql 一般使用 3306 端口一樣,也可以隨意指定,只要不產生端口沖突即可。
這條命令執行后沒有任何輸出,但是手機會出現一次,類似于與電腦斷線并且重新插線的反應,代表執行成功。
打開成功之后,就可以拔掉手機數據線了。
接下來執行連接命令,但是首先我們需要進入手機 WIFI 網絡詳情,找到此時手機 WIFI 中的 IP 地址。接下來就可以執行連接命令了,連接命令為 adb connect 手機 IP 地址: TCP 綁定的端口。
例如,我手機的 IP 地址是 192.168.31.93,之前 TCP 模式綁定的端口為 5555,此時我需要執行的連接命令為 adb connect 192.168.31.93:5555
此時控制臺輸出 connected to 192.168.31.93:5555,表示無線連接成功。
TCP 模式一旦開啟,只在手機重啟時才會關閉,關閉后如果還需使用需要重新開啟。斷網重連,換 WIFI,不會關閉,只要保持手機電腦在統一 WIFI 下就不需要重新開啟。
不過如果手機一旦斷網,或者切換 WIFI,與電腦的無線連接會立即斷開,如果需要重新連接,重新執行一次 adb connect
命令就好。
調試
在項目中,直接點擊 run,選擇連接的設備即可。
然后,就可以開心的調試了。
3. 補充:連接多臺設備
使用adb devices
命令,可以得到一個已連接設備的序列號表,一次連接多臺設備跟連接一臺設備流程類似,通過 『序列號指定設備 』即可。
例如,需要進行 TCP 模式開啟,adb -s f87c75bb tcpip 5555
,但是與電腦建立連接的 adb connect 命令不需要加序列號,因為 IP 地址本來就相當于是序列號了。
然后,查看手機連接的IPv4地址,比如我的是:192.168.0.200
執行 adb connect 192.168.0.200:5555
接下來,請開始你的調試吧。
個人整理,難免有錯誤紕漏,歡迎指正。