Android 開發人員必須在實際裝置上測試應用程式。Android Debug Bridge (ADB) 是推送應用程式和偵錯的首選工具。ADB 主要有三種用途:
- 透過 USB 進行 ADB
- 透過 Wi-Fi 連線 ADB
- 透過乙太網路進行 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 裝置和終端機。
- 確認開發機器和 Android 裝置連上同一個無線網路。
- 確認網路允許通訊埠
5555(或手動選擇的其他通訊埠) 的流量。部分企業和家用網路設有防火牆,會導致 ADB 無法運作。你也可以將手機當做無線網路中樞,提供允許連接埠5555流量的網路,但這樣可能會產生大量網路流量,並快速耗盡手機電量。 - 如果使用非 ChromeOS 手機和平板電腦,則必須啟用 TCP/IP 模式。如要這麼做,請透過 USB 將 Android 裝置連接至開發機器,並在開發機器上執行
adb tcpip 5555指令。這會將裝置設為 TCP/IP 模式,並監聽通訊埠 5555。啟用後,即可拔除 USB 傳輸線。 - 確認裝置的 IP 位址。IPv4 位址是最常見的位址類型,格式如下:
192.168.1.4。IPv6 位址越來越普及,外觀類似2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b。如果裝置同時列出這兩種位址,請使用 IPv4 位址。- 在手機/平板電腦上前往 Android 設定,然後向下捲動,直到看到 IP 位址為止。
- 在 ChromeOS 中,按一下右下方的時鐘,然後依序點選網路圖示下方的下拉式選單和目前連線的網路。「網路」標題下方會顯示指派給 Chromebook 的 IP 位址。
- 在開發機器上輸入
adb connect IP_ADDRESS_FROM_STEP4,例如 跳到adb connect 192.168.1.4的位置。您也可以手動指定通訊埠,例如adb connect 192.168.1.4:5555。 - 照常使用 ADB 或 Android Studio。您可以執行
adb devices來驗證連線。
提示:詳情請參閱「透過 Wi-Fi 連線至裝置」。
透過乙太網路進行 ADB
有時可能因為防火牆限制而無法使用 Wi-Fi 網路,或是您偏好使用有線解決方案。這時可以透過乙太網路線連線。步驟與透過 Wi-Fi 使用 ADB 類似,但要使用乙太網路線。
必要條件
開始前,請確認裝置支援乙太網路連線:
- 乙太網路線:裝置之間使用的實體線路。乙太網路線類型 Cat 5/5e/6/6a 皆可。
- 乙太網路連接埠:測試裝置和開發機器的乙太網路連接埠。
注意:如果裝置沒有乙太網路連接埠,可以改用乙太網路 Dongle,透過 USB 連接裝置並提供乙太網路功能。
透過乙太網路連線 ADB
使用乙太網路線實際連接裝置後,即可透過連線啟用 ADB。
注意:這些操作說明假設本機網路是在 192.168.1.x 位址空間中執行。
注意:如果使用非 ChromeOS 手機和平板電腦,可能需要啟用 TCP/IP 模式。如要這麼做,請透過 USB 將 Android 裝置連接至開發機器,並在開發機器上執行 adb tcpip 5555 指令。這會將裝置設為 TCP/IP 模式,並監聽通訊埠 5555。啟用後,即可拔除 USB 傳輸線。
- 在開發機器上,記下指派給乙太網路介面的 IP 位址。如果沒有指派位址,您可能需要手動設定這個位址,例如
192.168.1.x範圍內的192.168.1.3,或是將介面卡設定為僅連線至本機網路,且不使用 DHCP:- 如果是 Windows,請參閱「變更 TCP/IP 設定」一節中的「手動指定 IPv4 設定」。將 IP 位址設為
192.168.1.3。 - 如果是 Mac,請參閱「在 Mac 上使用 DHCP 或手動 IP 位址」,然後按照手動 IP 位址的指示操作。將 IP 位址設為
192.168.1.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.
- 如果是 Windows,請參閱「變更 TCP/IP 設定」一節中的「手動指定 IPv4 設定」。將 IP 位址設為
- 在要偵錯的 Chromebook 上,將乙太網路位址設為與開發電腦相同的網路範圍:
- 按下
ctrl+alt+t開啟 ChromeOS Shell (crosh)。 - 輸入
shell,然後按 Enter 鍵。 - 輸入「
ssh root@localhost」 - 如果系統要求,請輸入
yes接受 SSH (安全殼層通訊協定) 指紋 - 預設密碼為
test0000 - 輸入「
ifconfig eth0 192.168.1.2」。這會將第一個乙太網路裝置設為192.168.1.2位址 (請記住這個位址,稍後會用到)。如果eth0不存在,請使用ifconfig列出所有網路裝置,並判斷乙太網路連接埠或轉接器的正確 ID。
- 按下
- 在開發機器上輸入
adbconnect 192.168.1.2。您也可以使用adb connect 192.168.1.2:5555手動指定通訊埠。 - 照常使用 ADB 或 Android Studio。您可以執行
adb devices來驗證連線。