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

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

設定開發用裝置

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

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

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

    • Chrome OS:無須進行額外設定。
    • 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 Dolphin。 請按這裡下載
  4. 在工作站上,將 SDK Platform Tools 更新至最新版本。

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

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

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

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

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

排解裝置連線問題

如果裝置無法連線至 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 指令。