擁抱無線:教你使用adb無線連接Android實機教學!

前言

本篇主要記錄如何使用 adb wifi cli 連接 Android 手機,
適用於想要在無線網路環境下進行開發和debug的使用者。
過去,我們常常使用 Android Studio 的功能來連接手機, 但其實使用 adb wifi 也不失為一種好方法。
因此,我特別查詢了相關資料並整理成筆記,
方便自己以後查閱,也希望能對其他使用者有所幫助!

另外android 11 也新增了另一種方法,供測試或debug的方案:
Cover 釋放 Android 11 adb wireless debug 的力量:從有線到無線,探索更自由的debug體驗!


實際作法


1.讓電腦與Android手機進入同一個區域網路
2.用USB線將Android手機連上電腦 要開啟開發者mode
3.透過以下指令尋找手機ip位址

 adb shell ifconfig

4.會找到類似192.168.xxx.xxx的IP

5.用以下指令切換到tcp/ip模式

 adb tcpip <port>

-> 這邊的port是可以自己指定的

  1. 最後使用指令
     adb connect 192.168.0.101:5555
    

    (5555是你前面設定的port) 至此就能用adb wifi控制你的手機了

補充: 後來遇到要連線上android TV的方式 但剛好沒遇到沒有usb插槽的情況 這時候就可以去設定->wifi->同個網路下去找ip 就不用透過指令

這邊分享一個雷:

由於之前一直使用android studio下載的adb wifi插件來連接手機(該插件的效果就跟上面一樣),
又因該插件所設定的端口都是相同的,
且公司中有其他人也使用同樣的端口設定或同一套插件,
而沒去改port的話,
又剛好你們的ip被分發到上一次另一位同事的舊IP,
則有機會在同一區域網路下使用指令,
即可透過你的IP和端口安裝APK到你的手機。
不過這個就是爾偶發生
只是就可以趁機用 scrcpy看別人在幹嘛而已XD(誤

所以還是要設不同的port比較好

其他筆記
  • 補充Android 10 以下的 adb連線細節
    • 使用adb connect連上手機 至少需連接一次USB線,需先設定你的tcpip的port 之後不用插線只要同ip跟port就能直接連

    • 一些俗稱adb wifi 插件通常預設port為5555,故有機會手機已設定過adb tcpip port 有人同區網又知道你的ip,就能輕易嘗試connect,並控制手機 (這裡試過 , 對沒設定過 adb tcpip 的直接用預設5555 會被refused) adb-connect.png
    • 要斷連用 adb disconnect <ip>:<port>
    • 主要運作在adb server下 ,用 adb kill-server 亦會斷連
    • 找手機本地IP可以用 adb shell ifconfig,可看到類似的如下:
       wlan0   Link encap:Ethernet  HWaddr F0:XX:B7:XX:XX:97
           inet addr:192.168.X01.XXX  Bcast:192.XXX.X01.255  Mask:255.255.255.0
           inet6 addr: fe80::fxxxx:x2xx:fee1:7d97/64 Scope: Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:543 errors:0 dropped:0 overruns:0 frame:0
           TX packets:574 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:198035 TX bytes:125461
      

      或是用這串CLI adb shell ip route | awk '{print $9}' 直接取得目標IP
      adb-ip-photo.png

You might also enjoy