在硬體裝置上執行應用程式

發布 Android 應用程式給使用者前,請務必先在實際裝置上進行測試。本頁說明如何設定開發環境和 Android 裝置,以便透過 Android Debug Bridge (ADB) 連線進行測試及偵錯。

設定開發用裝置

在裝置上開始執行偵錯前,請先決定要使用 USB 傳輸線還是 Wi-Fi 連接裝置。接著,按照下列步驟操作:

  1. 在裝置上開啟「設定」應用程式,選取「開發人員選項」,然後啟用「USB 偵錯」(如適用)。

  2. 設定讓系統偵測裝置。

    • ChromeOS:無須進行額外設定。
    • macOS:無須進行額外設定。
    • Windows:安裝 ADB 的 USB 驅動程式 (如適用)。如需安裝指南和原始設備製造商 (OEM) 驅動程式的連結,請參閱「安裝原始設備製造商 (OEM) USB 驅動程式」一文。
    • Ubuntu Linux:設定下列項目:

      • 凡是要使用 ADB 的使用者,都需加入 plugdev 群組。如果您看到錯誤訊息,指出您不屬於 plugdev 群組,請使用下列指令將自己加入群組:
      sudo usermod -aG plugdev $LOGNAME
      

      群組只會在登入時更新,因此您必須先登出,這項變更才會生效。重新登入後,您可以使用 id 確認自己是否在 plugdev 群組中。

      • 系統需要安裝適用於裝置的 udev 規則。android-sdk-platform-tools-common 套件包含由社群維護、適用於 Android 裝置的 udev 預設規則組合。如要安裝這個套件,請使用下列指令:
      apt-get install android-sdk-platform-tools-common
      

使用 USB 連接裝置

當您完成設定並透過 USB 連接裝置後,只要在 Android Studio 中按一下「Run」圖示 ,即可在裝置上建構及執行應用程式

您也可以使用 adb 下達指令,方法如下:

  • android_sdk/platform-tools/ 目錄執行 adb devices 指令,確認裝置已連線。如果已連線,畫面上就會列出該裝置。
  • 使用 -d 旗標下達任何 adb 指令,以便指定裝置。

使用 Wi-Fi 連接裝置

Android 11 以上版本支援透過 Android Debug Bridge (adb) 從工作站以無線方式部署應用程式,並進行偵錯。舉例來說,您可以將可進行偵錯的應用程式部署至多部遠端裝置,不僅不必實際透過 USB 連接裝置,也不用處理常見的 USB 連線問題 (例如安裝驅動程式)。

如要使用無線偵錯功能,您必須使用配對碼將裝置與工作站配對。請完成下列步驟即可開始:

  1. 確認工作站和裝置已連上同一個無線網路。
  2. 確認您的裝置搭載 Android 11 以上版本。詳情請參閱「檢查及更新 Android 版本」。
  3. 確認您已安裝最新版的 Android Studio。請在這裡下載
  4. 在工作站上,將 SDK Platform Tools 更新至最新版本。

如要連接裝置,請按照下列步驟操作:

  1. 開啟 Android Studio,接著從執行設定選單中選取「Pair Devices Using Wi-Fi」。
    執行設定下拉式選單
    圖 1. 執行設定選單。

    畫面上隨即會顯示「Pair devices over Wi-Fi」對話方塊,如圖 2 所示。
    「Pair devices over Wi-Fi」彈出式視窗的螢幕截圖
    圖 2. 使用 QR code 或配對碼配對裝置的對話方塊。
  2. 在裝置上啟用開發人員選項
  3. 在裝置上啟用透過 Wi-Fi 偵錯功能。
    顯示「無線偵錯」系統設定的 Pixel 手機螢幕截圖。
    圖 3 Google Pixel 手機上的「無線偵錯」設定。
  4. 輕觸「無線偵錯」,然後配對裝置:
    1. 如要透過 QR code 配對裝置,請選取「使用 QR code 配對裝置」,然後掃描 QR code,如圖 2 所示。
    2. 如要使用配對碼配對裝置,請從「透過 Wi-Fi 配對新裝置」對話方塊中選取「使用配對碼配對裝置」。在裝置上選取「使用配對碼配對」。畫面上隨即會顯示六位數的配對碼。當裝置出現在「Pair devices over Wi-Fi」視窗後,輸入裝置上顯示的六位數配對碼,然後選取「Pair」
      配對碼輸入範例的螢幕截圖
      圖 4. 六位數配對碼輸入範例。
  5. 配對完成後,您可以嘗試在裝置上部署應用程式。

如何在工作站上配對不同裝置或移除這部裝置:

  1. 在裝置上前往「無線偵錯」
  2. 在「配對的裝置」底下輕觸工作站名稱。
  3. 選取「移除裝置」

裝置鏡像功能

您可以在 Android Studio 的「Running Devices」視窗中,為實體裝置建立鏡像。只要將裝置的畫面直接串流至 Android Studio,即可利用 Studio IDE 本身執行常用操作,例如啟動應用程式並與其互動、旋轉螢幕、折疊及展開手機,以及調整音量

每當有裝置連線至已啟用 USB/無線偵錯功能的電腦,就一律可以使用裝置鏡像功能。如要啟動及停止鏡像作業,請開啟「Running Devices」視窗或「Device Manager」(依序點選「View」>「Tool Windows」>「Device Manager」)。您也可以在設定 (依序點選「Settings」>「Tools」>「Device Mirroring」) 中自訂啟用裝置鏡像的時機。

「Running Devices」UI

重新導向音訊

使用裝置鏡像功能時,你可以將連線實體裝置的音訊重新導向至電腦喇叭或耳機。使用音訊轉接功能時,只要將耳機連上電腦,就能同時收聽電腦和已連結手機的音訊,無須手動重新連線。如要啟用音訊重新導向功能,請依序前往「File」 (在 macOS 上為「Android Studio」) >「Settings」 >「Tools」 >「Device Mirroring」,然後選取「Redirect audio from local devices」。請注意,無論設定為何,搭載 Android 12 以上版本的 Firebase Test Lab 裝置一律會重新導向音訊。

已知問題

部分裝置在編碼時,位元率可能不足以支援裝置鏡像功能。在這些情況下,您可能會在「Running Devices」視窗中看到錯誤,以及類似以下的記錄。

2023-06-01 15:32:22,675 [  56094]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - Too many video encoder errors:
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - encoder: c2.android.vp8.encoder
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - mime type: video/x-vnd.on2.vp8
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max resolution: 640x640
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - min resolution: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - alignment: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate: 960
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate for 288x640: 960
2023-06-01 15:32:22,870 [  56289]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max bitrate: 20000000
2023-06-01 15:32:22,871 [  56290]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - terminated with code 1

隱私權聲明

根據裝置的鏡像設定,Android Studio 可以針對任何已連結和配對的裝置,自動啟動裝置鏡像功能。在使用 adb tcpip 指令連線的裝置上,這可能會導致資訊外洩,因為鏡像資訊和指令是透過未加密的管道傳遞。此外,Android Studio 也會利用非加密管道與 ADB 伺服器通訊,因此主體機器上的其他使用者可能會攔截鏡像資訊。

排解裝置連線問題

如果裝置無法連線至 Android Studio,請嘗試按照下列步驟解決問題:

透過 Connection Assistant 排解問題

Connection Assistant 提供逐步說明,有助您透過 ADB 連線設定及使用裝置。

如要啟動這個小幫手,請依序選擇「Tools」>「Troubleshoot Device Connections」

Connection Assistant 會在「Assistant」面板的一系列頁面中提供操作說明、關聯控制項和已連線的裝置清單。您可以使用「Assistant」面板底部的「Next」和「Previous」按鈕,視需要瀏覽相關頁面:

  • 透過 USB 連接裝置:Connection Assistant 會先提示您透過 USB 連接裝置,並提供「Rescan USB devices」按鈕,讓您能夠啟動已連結裝置的新掃描作業。
  • 啟用 USB 偵錯功能:Connection Assistant 接著會說明如何在裝置端開發人員選項中啟用 USB 偵錯功能。
  • 重新啟動 ADB 伺服器:如果可用裝置清單仍未顯示您的裝置,可以使用 Connection Assistant 最後一頁的「Restart ADB server」按鈕。重新啟動 ADB 伺服器也會促使 ADB 再次掃描裝置。如果可用裝置清單還是沒有顯示您的裝置,請試試按照下一節的疑難排解步驟操作。

解決 USB 連線問題

如果 Connection Assistant 無法偵測到透過 USB 連接的裝置,請嘗試按照下列疑難排解步驟解決問題:

確認 Android Studio 可連線至 Android Emulator

如要檢查這個問題是否由 Android Studio 和 Android Emulator 之間的連線問題所引起,請按照下列步驟操作:

  1. 開啟裝置管理工具
  2. 建立新的 AVD (如果您尚未建立的話)。
  3. 使用 AVD 執行模擬器
  4. 執行下列其中一項操作:
    • 如果 Android Studio 無法連線至模擬器,請下載最新的 SDK Platform Tools,然後再試一次。
    • 如果模擬器成功啟動,請按照下一節的說明檢查 USB 傳輸線。

檢查 USB 傳輸線

如要檢查這個問題是否由 USB 傳輸線故障所引起,請按照本節說明的步驟操作。

如果您有其他 USB 傳輸線,請按照下列步驟操作:

  1. 使用次要傳輸線連接裝置。
  2. 檢查 Connection Assistant 現在是否能偵測到裝置。
  3. 如果系統沒有偵測到裝置,請再次使用主要傳輸線。
  4. 如果系統仍未偵測到裝置,請假設問題來自裝置,並按照下一節的說明,確認裝置是否已根據開發用途完成相關設定

如果您沒有其他 USB 傳輸線,但擁有其他 Android 裝置,請按照下列步驟操作:

  1. 將次要裝置連接至電腦。
  2. 如果 Connection Assistant 可偵測到次要裝置,請假設問題來自主要裝置,並確認裝置是否已根據開發用途完成相關設定

    如果未偵測到次要裝置,則問題可能來自 USB 傳輸線。

確認裝置是否已根據開發用途完成相關設定

如要確認問題原因是否出在裝置設定,請按照下列步驟操作:

  1. 按照「設定開發用裝置」一節的步驟操作。
  2. 如果仍無法解決問題,請向裝置的原始設備製造商 (OEM) 客戶服務人員尋求協助,將裝置無法透過 ADB 連線至 Android Studio 的問題告知客戶服務代表。

解決無線連線問題

如果您無法以無線的方式連接裝置,請嘗試依照下列疑難排解步驟解決問題:

確認工作站和裝置是否符合必要條件

如要符合無線偵錯功能的必要條件,請確認下列項目:

檢查其他已知問題

以下列出目前 Android Studio 無線偵錯功能的已知問題和解決方法:

  • 無法連上 Wi-Fi:某些 Wi-Fi 網路 (例如企業 Wi-Fi 網路) 可能會封鎖 P2P 連線,進而導致您無法透過 Wi-Fi 連線。請嘗試使用傳輸線或其他 Wi-Fi 網路連線。
  • 系統有時會自動停止透過 Wi-Fi 使用 ADB:如果裝置改用 Wi-Fi 網路或中斷網路連線,就可能會發生這種問題。

RSA 安全金鑰

將搭載 Android 4.2.2 (API 級別 17) 以上版本的裝置連接到電腦時,系統會顯示對話方塊,詢問您是否接受 RSA 金鑰,以便透過這部電腦進行偵錯。這項安全性機制可保護使用者裝置,因為除非您能解鎖裝置並確認對話方塊,否則無法執行 USB 偵錯和其他 adb 指令。