透過 Wi-Fi 和乙太網路使用 ADB

Android 開發人員必須在實際裝置上測試應用程式。Android Debug Bridge (ADB) 是推送應用程式和偵錯的首選工具。ADB 主要有三種用途:

  1. 透過 USB 進行 ADB
  2. 透過 Wi-Fi 連線 ADB
  3. 透過乙太網路進行 ADB

對於大多數手機和平板電腦,您可以使用 USB-C 傳輸線將 Android 裝置連線至開發機器,ADB 即可「正常運作」。截至 2023 年 8 月,大多數 Chromebook 都不支援透過 USB 進行 ADB,因此只剩下 Wi-Fi 和乙太網路這兩種方法。

注意:您也可以使用 透過藍牙連線的 Android 偵錯橋 (ADB),在 WearOS 裝置上進行偵錯。

透過 Wi-Fi 連線 ADB

如果裝置搭載 Android 11 (API 30) 以上版本,可以使用 Android Studio 隨附的「透過 Wi-Fi 配對裝置」功能。

如果裝置搭載 Android 10 以下版本,或是無法透過 Android Studio 配對,可以手動連線,方法是使用 IP 裝置和終端機。

  1. 確認開發機器和 Android 裝置連上同一個無線網路。
  2. 確認網路允許通訊埠 5555 (或手動選擇的其他通訊埠) 的流量。部分企業和家用網路設有防火牆,會導致 ADB 無法運作。你也可以將手機當做無線網路中樞,提供允許連接埠 5555 流量的網路,但這樣可能會產生大量網路流量,並快速耗盡手機電量。
  3. 如果使用非 ChromeOS 手機和平板電腦,則必須啟用 TCP/IP 模式。如要這麼做,請透過 USB 將 Android 裝置連接至開發機器,並在開發機器上執行 adb tcpip 5555 指令。這會將裝置設為 TCP/IP 模式,並監聽通訊埠 5555。啟用後,即可拔除 USB 傳輸線。
  4. 確認裝置的 IP 位址。IPv4 位址是最常見的位址類型,格式如下:192.168.1.4IPv6 位址越來越普及,外觀類似 2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b。如果裝置同時列出這兩種位址,請使用 IPv4 位址。
    1. 在手機/平板電腦上前往 Android 設定,然後向下捲動,直到看到 IP 位址為止。
    2. 在 ChromeOS 中,按一下右下方的時鐘,然後依序點選網路圖示下方的下拉式選單和目前連線的網路。「網路」標題下方會顯示指派給 Chromebook 的 IP 位址。
  5. 在開發機器上輸入 adb connect IP_ADDRESS_FROM_STEP4,例如 跳到 adb connect 192.168.1.4 的位置。您也可以手動指定通訊埠,例如 adb connect 192.168.1.4:5555
  6. 照常使用 ADB 或 Android Studio。您可以執行 adb devices 來驗證連線。

提示:詳情請參閱「透過 Wi-Fi 連線至裝置」。

透過乙太網路進行 ADB

有時可能因為防火牆限制而無法使用 Wi-Fi 網路,或是您偏好使用有線解決方案。這時可以透過乙太網路線連線。步驟與透過 Wi-Fi 使用 ADB 類似,但要使用乙太網路線。

必要條件

開始前,請確認裝置支援乙太網路連線:

  • 乙太網路線:裝置之間使用的實體線路。乙太網路線類型 Cat 5/5e/6/6a 皆可。
  • 乙太網路連接埠:測試裝置和開發機器的乙太網路連接埠。

注意:如果裝置沒有乙太網路連接埠,可以改用乙太網路 Dongle,透過 USB 連接裝置並提供乙太網路功能。

USB-A 乙太網路 Dongle。

完整的乙太網路 ADB 設定,包括 USB-A 乙太網路連接器、CAT6 乙太網路線、USB-A 乙太網路連接器和 USB-A 對 USB-C 轉接器。

透過乙太網路連線 ADB

使用乙太網路線實際連接裝置後,即可透過連線啟用 ADB。

注意:這些操作說明假設本機網路是在 192.168.1.x 位址空間中執行。

注意:如果使用非 ChromeOS 手機和平板電腦,可能需要啟用 TCP/IP 模式。如要這麼做,請透過 USB 將 Android 裝置連接至開發機器,並在開發機器上執行 adb tcpip 5555 指令。這會將裝置設為 TCP/IP 模式,並監聽通訊埠 5555。啟用後,即可拔除 USB 傳輸線。

  1. 在開發機器上,記下指派給乙太網路介面的 IP 位址。如果沒有指派位址,您可能需要手動設定這個位址,例如 192.168.1.x 範圍內的 192.168.1.3,或是將介面卡設定為僅連線至本機網路,且不使用 DHCP:
    1. 如果是 Windows,請參閱「變更 TCP/IP 設定」一節中的「手動指定 IPv4 設定」。將 IP 位址設為 192.168.1.3
    2. 如果是 Mac,請參閱「在 Mac 上使用 DHCP 或手動 IP 位址」,然後按照手動 IP 位址的指示操作。將 IP 位址設為 192.168.1.3
    3. 如果是 Linux,請使用發行版本的圖形工具手動設定 IP 位址,或從終端機設定,方法如下:執行 ifconfig 找出介面卡的 ID,然後在執行 sudo ifconfig enx00eXXXXXXXXX 192.168.1.3 broadcast 192.168.255.255 netmask 255.255.0.0 時使用該 ID 取代 enx00eXXXXXXXXX。這會將 IP 位址變更為 192.168.1.3.
  2. 在要偵錯的 Chromebook 上,將乙太網路位址設為與開發電腦相同的網路範圍:
    1. 按下 ctrl+alt+t 開啟 ChromeOS Shell (crosh)。
    2. 輸入 shell,然後按 Enter 鍵。
    3. 輸入「ssh root@localhost
    4. 如果系統要求,請輸入 yes 接受 SSH (安全殼層通訊協定) 指紋
    5. 預設密碼為 test0000
    6. 輸入「ifconfig eth0 192.168.1.2」。這會將第一個乙太網路裝置設為 192.168.1.2 位址 (請記住這個位址,稍後會用到)。如果 eth0 不存在,請使用 ifconfig 列出所有網路裝置,並判斷乙太網路連接埠或轉接器的正確 ID。
  3. 在開發機器上輸入 adbconnect 192.168.1.2。您也可以使用 adb connect 192.168.1.2:5555 手動指定通訊埠。
  4. 照常使用 ADB 或 Android Studio。您可以執行 adb devices 來驗證連線。