建立及管理虛擬裝置

Android 虛擬裝置 (AVD) 是一種設定,可根據您想在 Android Emulator 中模擬的 Android 手機、平板電腦、Wear OS、Android TV 或 Automotive OS 裝置,定義相應特徵。裝置管理工具則是可從 Android Studio 啟動的工具,有助於建立及管理 AVD。

如要開啟全新的裝置管理工具,請採用下列其中一種做法:

  • 在 Android Studio 歡迎畫面中,依序選取「More Actions」圖示 >「Virtual Device Manager」

在歡迎畫面中開啟裝置管理工具

  • 開啟專案後,在主選單列中依序選取「View」>「Tool Windows」>「Device Manager」,然後按一下「Create device」

新的裝置管理工具視窗

如果想透過可擴充及自行管理的方式,運用虛擬裝置執行自動化檢測設備測試,可考慮使用 Gradle 管理的裝置

關於 AVD

AVD 包含硬體設定檔、系統映像檔、儲存空間區域、外觀和其他屬性。

建議您根據資訊清單中的 <uses-sdk> 設定,為您應用程式可能支援的每個系統映像檔建立 AVD。

硬體設定檔

裝置從工廠出貨時的配置,可以在硬體設定檔找到。裝置管理工具已預先載入了特定硬體設定檔 (例如 Pixel 裝置),您可以視需求定義或自訂這類設定檔。

「Select Hardware」對話方塊

如果裝置定義在「Play Store」一欄列出 Google Play 標誌,就表示包含 Google Play 商店應用程式和 Google Play 服務存取權,而且「Extended controls」對話方塊中也會顯示「Google Play」分頁,當中提供的便利按鈕可用於更新裝置上的 Google Play 服務。

裝置如有此標誌「且」類型為「手機」,也就符合 CTS 規範,因此可能會使用內含 Play 商店應用程式的系統映像檔。

系統映像檔

標有 Google API 的系統映像檔包含 Google Play 服務存取權。

「System Image」對話方塊

「Recommended」分頁會列出建議的系統映像檔,其他分頁則含有更完整的清單。右側窗格中會顯示所選系統映像檔的說明。

如果系統映像檔旁邊出現下載圖示,代表您的開發機器目前未安裝該映像檔。如要下載系統映像檔,請按一下這個圖示。您必須連上網際網路,才能下載系統映像檔。

目標裝置的 API 級別相當重要。在應用程式資訊清單檔案內,有個 minSdk 屬性會指定應用程式所需的級別,若系統映像檔的 API 級別低於此,應用程式就無法執行。如要進一步瞭解系統 API 級別與 minSdk 的關係,請參閱「管理應用程式版本」。

如果應用程式在資訊清單檔案中宣告 <uses-library> 元素,就需要內含外部程式庫的系統映像檔。如要在模擬器中執行應用程式,請建立一個含有必要程式庫的 AVD。為此,您可能需要使用 AVD 平台的外掛程式元件,例如包含 Google 地圖程式庫的 Google API 外掛程式。

為了確保應用程式安全性並提供與實體裝置一致的體驗,內含 Google Play 商店的系統映像檔會使用發布金鑰進行簽署,這表示您無法透過這些映像檔取得進階 (根層級) 權限。

如果您需要進階 (根層級) 權限來協助排解應用程式問題,可以使用不含 Google 應用程式或服務的 Android 開放原始碼計畫 (AOSP) 系統映像檔。這樣一來,就能使用 adb rootadb unroot 指令切換一般權限與進階權限:

  % adb shell
  emu64a:/ $
  emu64a:/ $ exit
  % adb root
  restarting adbd as root
  % adb shell
  emu64a:/ #
  emu64a:/ # exit
  % adb unroot
  restarting adbd as non root
  % adb shell
  emu64a:/ $
  emu64a:/ $ exit
  %
  

儲存空間區域

AVD 在開發機器上設有專屬儲存空間區域,用於存放裝置使用者資料,例如已安裝的應用程式和設定,以及模擬的 SD 卡。如有需要,您可以使用裝置管理工具抹除使用者資料,讓裝置只包含新裝置會有的資料。

外觀

模擬器外觀可指定裝置的外觀。裝置管理工具會提供部分預先定義的外觀。您也可以定義個人專用的外觀,或是使用第三方提供的外觀。

AVD 和應用程式功能

請確認您的 AVD 定義包含應用程式所需的裝置功能。如需可在 AVD 中定義的功能清單,請參閱「硬體設定檔屬性」和「AVD 屬性」一節。

建立 AVD

如何建立新的 AVD:

  1. 開啟裝置管理工具。
  2. 按一下「Create Device」

    畫面上會顯示「Select Hardware」視窗。

    請注意,只有部分硬體設定檔包含 Play 商店。這些設定檔已完全符合 CTS 規範,可能會使用內含 Play 商店應用程式的系統映像檔。

  3. 選取硬體設定檔,然後按一下「Next」

    如果找不到所需的硬體設定檔,可以按照本頁其他章節的說明建立匯入硬體設定檔。

    畫面上會顯示「System Image」視窗。

  4. 選取特定 API 級別的系統映像檔,然後點選「Next」
  5. 畫面上會顯示「Verify Configuration」視窗。

  6. 視需要變更 AVD 屬性,然後按一下「Finish」

    按一下「Show Advanced Settings」,查看外觀等其他設定。

  7. 新的 AVD 會顯示在裝置管理工具的「Virtual」分頁,也會列於目標裝置選單中。

如何從副本建立 AVD:

  1. 在裝置管理工具的「Virtual」分頁中點選「Menu」圖示 ,然後選取「Duplicate」

    畫面上會顯示「Verify Configuration視窗。

  2. 如需在「System Image」或「Select Hardware」視窗中進行變更,請按一下「Previous」
  3. 進行所需變更,然後按一下「Finish」

    AVD 會顯示在裝置管理工具的「Virtual」分頁。

建立硬體設定檔

裝置管理工具為常見裝置提供了預先定義的硬體設定檔,方便您將這些設定檔新增至 AVD 定義。如需定義其他裝置,可以建立新的硬體設定檔。

您可以從頭開始定義新的硬體設定檔,也可以從複製硬體設定檔著手。不過,您無法編輯預先載入的硬體設定檔。

如何從頭開始建立新的硬體設定檔:

  1. 在「Select Hardware視窗中,按一下「New Hardware Profile」。
  2. 在「Configure Hardware Profile」視窗中,視需要變更硬體設定檔屬性

    「Configure hardware profile」對話方塊
  3. 按一下「Finish」

    新的硬體設定檔會顯示在「Select Hardware」視窗中。您可以點選「Next」建立使用這個硬體設定檔的 AVD,也可以按一下「Cancel」返回「Virtual」分頁或目標裝置選單。

如何從副本著手建立硬體設定檔:

  1. 在「Select Hardware」視窗中選取硬體設定檔,然後按一下「Clone Device」。您也可以在硬體設定檔上按一下滑鼠右鍵,接著選取「Clone」

  2. 在「Configure Hardware Profile」視窗中,視需要變更硬體設定檔屬性
  3. 按一下「Finish」
  4. 新的硬體設定檔會顯示在「Select Hardware」視窗中。您可以點選「Next」建立使用這個硬體設定檔的 AVD,也可以按一下「Cancel」返回「Virtual」分頁或目標裝置選單。

編輯現有的 AVD

在裝置管理工具的「Virtual」分頁中,您可以對 AVD 執行下列作業:

  • 如要編輯 AVD,請按一下「Edit this AVD」圖示 ,然後進行變更。
  • 如要刪除 AVD,請按一下「Menu」圖示 ,然後選取「Delete」
  • 如要顯示磁碟中相關聯的 AVD INI 和 IMG 檔案,請按一下「Menu」圖示 ,然後選取「Show on Disk」
  • 如要查看 AVD 設定詳細資料 (可附加至提供給 Android Studio 團隊的錯誤報告),請按一下「Menu」圖示 ,然後選取「View Details」

編輯現有的硬體設定檔

您無法編輯或刪除預先載入的硬體設定檔,但可以在「Select Hardware」視窗中對其他硬體設定檔執行下列作業:

  • 如要編輯硬體設定檔,請選取所需設定檔,然後按一下「Edit Device」。您也可以在硬體設定檔上按一下滑鼠右鍵,選取「Edit」,接著就能進行變更。
  • 如要刪除硬體設定檔,請在該設定檔上按一下滑鼠右鍵,然後選取「Delete」

執行及停止模擬器,並清除資料

透過「Virtual」分頁,您可以在模擬器中執行下列作業:

  • 如要執行使用 AVD 的模擬器,請按一下「Launch」圖示
  • 如要停止執行中的模擬器,請按一下「Menu」圖示 ,然後選取「Stop」
  • 如要清除模擬器資料,請按一下「Menu」圖示 ,然後選取「Wipe Data」

匯入及匯出硬體設定檔

您可以在「Select Hardware」視窗中匯入及匯出硬體設定檔,方法如下:

  • 如要匯入硬體設定檔,請按一下「Import Hardware Profiles」,然後在電腦中選取內含定義的 XML 檔案。
  • 如要匯出硬體設定檔,請在該設定檔上按一下滑鼠右鍵,然後選取「Export」,並指定要將內含定義的 XML 檔案儲存在哪個位置。

AVD 屬性

AVD 設定會指定開發電腦與模擬器的互動方式,以及您想在硬體設定檔中覆寫的屬性。您可以在「Verify Configuration」視窗中指定 AVD 設定的下列屬性。下表中有些屬性標有「(進階)」字樣,您必須點選「Show Advanced Settings」才會看到這些屬性。

AVD 設定屬性會覆寫硬體設定檔屬性,而您在模擬器執行期間設定的模擬器屬性,則會覆寫 AVD 設定與硬體設定檔的屬性。

表 1:AVD 設定屬性

AVD 屬性 說明
AVD Name 輸入 AVD 名稱。名稱可以包含大寫或小寫英文字母、數字、半形句號、底線、括號、破折號和空格。儲存 AVD 設定的檔案名稱是由 AVD 名稱衍生而來。
AVD ID (進階) 查看 AVD ID。AVD ID 是由 AVD 名稱衍生而來。您可以使用這個 ID,透過指令列參照 AVD。
Hardware Profile 按一下「Change」,從「Select Hardware」視窗中選取其他硬體設定檔。
System Image 按一下「Change」,從「System Image」視窗中選取其他系統映像檔。您必須連上網際網路,才能下載新映像檔。
Startup orientation

選取初始模擬器螢幕方向的選項:

  • Portrait..高度大於寬度的螢幕方向
  • 「Landscape」..寬度大於高度的螢幕方向

只有硬體設定檔中支援的選項才會啟用。在模擬器中執行 AVD 時,如果硬體設定檔一併支援直向和橫向選項,您就可以變更螢幕方向。

Camera (進階)

為所有已啟用的相機選擇選項。Emulated 和 VirtualScene 設定會產生軟體生成的映像檔,而 Webcam 設定則會使用開發電腦的網路攝影機拍照。

只有在硬體設定檔支援相機時,才能選擇相機選項。這些選項不適用於 Wear OS、Android TV 或 Google TV。

Network:Speed (進階)

選取網路通訊協定,決定資料移轉速度:

  • GSM:全球行動通訊系統
  • HSCSD:高速電路交換資料
  • GPRS:通用封包無線服務
  • EDGE:GSM 增強型數據速率演進技術
  • UMTS:通用行動通訊系統
  • HSPDA:高速下行封包存取
  • LTE:長期演進技術
  • Full (default)︰在電腦允許時盡快轉移資料
Network:Latency (進階) 選取網路通訊協定,設定通訊協定從某個點轉移資料封包到另一點所需的時間。
Emulated Performance:Graphics

選取在模擬器中算繪圖像的方式:

  • Hardware:使用電腦的顯示卡加快轉譯速度。
  • Software︰在軟體中模擬圖像。如果顯示卡發生算繪問題,這個選項就能派上用場。
  • Automatic︰讓模擬器根據您的顯示卡決定最適合的選項。
Emulated Performance:Boot option (進階)

    選取 AVD 的啟動方式:

  • Cold boot︰每次都從關機狀態下啟動裝置。
  • Quick boot︰裝置會從已儲存的快照中載入裝置狀態。
Emulated Performance︰Multi-Core CPU (進階) 選取想在電腦上用於模擬器的處理器核心數量。使用更多處理器核心可以加快模擬器運作速度。
Memory and Storage︰RAM (進階) 針對硬體製造商設定的裝置,覆寫 RAM 容量。增加容量大小會占用電腦上的更多資源,但可加快模擬器運作速度。請輸入 RAM 容量大小,然後選擇一個單位:B (位元組)、KB、MB、GB 或 TB。
Memory and Storage︰VM Heap (進階) 覆寫硬體製造商設定的 VM 堆積大小。請輸入堆積大小,然後選擇一個單位:B (位元組)、KB、MB、GB 或 TB。
Memory and Storage︰Internal Storage (進階) 針對硬體製造商設定的裝置,覆寫可用的不可移除記憶體空間容量。請輸入容量大小,然後選擇一個單位:B (位元組)、KB、MB、GB 或 TB。
Memory and Storage︰SD Card (進階)

指定裝置上可用來儲存資料的可移除記憶體空間容量。

如果想使用 Android Studio 管理的虛擬 SD 卡,請選取「Studio-managed」、輸入容量大小,然後選擇一個單位:B (位元組)、KB、MB、GB 或 TB。如要使用相機,建議至少設定 100 MB 容量。

如要管理檔案中的空間,請選取「External file」,然後按一下「…」指定檔案和位置。

詳情請參閱 mksdcard 和「AVD 資料目錄」。

Device Frame:Enable Device Frame 選擇啟用能模擬實際裝置外觀的模擬器視窗周圍的邊框。
自訂外觀定義 (進階) 選取外觀,控制裝置在模擬器中呈現的樣貌。如果指定對外觀而言太大的畫面尺寸,系統可能會裁切掉部分畫面,導致您無法看到整個畫面。詳情請參閱「建立模擬器外觀」一節。
Keyboard︰Enable Keyboard Input (進階) 選取這個選項即可使用硬體鍵盤與模擬器互動。系統會針對 Wear OS 和 Android TV 停用此選項。

硬體設定檔屬性

您可以在「Configure Hardware Profile」視窗中指定硬體設定檔的下列屬性。AVD 設定屬性會覆寫硬體設定檔屬性,而您在模擬器執行期間設定的模擬器屬性,則會覆寫 AVD 設定與硬體設定檔的屬性。

您無法編輯裝置管理工具隨附的預先定義硬體設定檔,但可以複製設定檔並編輯副本。

針對某些裝置類型,系統會停用部分屬性。舉例來說,「Round」屬性僅適用於 Wear OS 裝置。

表 2:硬體設定檔的設定屬性

硬體設定檔屬性 說明
Device Name 輸入硬體設定檔的名稱。名稱可以包含大寫或小寫英文字母、數字、半形句號、底線、括號和空格。儲存硬體設定檔的檔案名稱是由硬體設定檔名稱衍生而來。
Device Type

選取下列其中一個選項:

  • Phone/Tablet
  • Wear OS
  • Android TV
  • Google TV
  • ChromeOS 裝置
  • Android Automotive
Screen:Screen Size 以對角線長度指定螢幕的實際尺寸,單位為英寸。如果這個尺寸大於電腦螢幕,系統會在啟動時縮減尺寸。
Screen:Screen Resolution 輸入寬度和高度 (以像素為單位),指定模擬畫面上顯示的像素總數。
Screen:Round 如果裝置配備的是圓形螢幕 (例如部分 Wear OS 裝置),請選取此選項。
Memory:RAM 輸入裝置的 RAM 容量大小,然後選擇一個單位:B (位元組)、KB、MB、GB 或 TB。
Input:Has Hardware Buttons (Back/Home/Menu) 如果您的裝置有硬體導覽按鈕,請選取此選項。如果只在軟體中導入這些按鈕,請取消選取。若您選取此選項,畫面上就不會顯示按鈕。無論是哪種情況,您都可以使用模擬器側邊面板,模擬按下按鈕的動作。
Input:Has Hardware Keyboard 如果您的裝置有硬體鍵盤,請選取此選項。如未提供,請取消選取。若您選取此選項,畫面上就不會顯示鍵盤。無論是哪種情況,您都可以使用電腦鍵盤,將按鍵動作傳送至模擬器。
Input:Navigation Style

選取下列其中一個選項:

  • None︰沒有硬體控制項,也就是透過軟體實現導覽功能。
  • D-pad..支援方向鍵。
  • Trackball
  • Wheel

這些是裝置本身硬體控制項的選項。不過,由外部控制器傳送到裝置的事件並無不同。

Supported device states

選取其中一個選項,或同時選取兩者:

  • Portrait..高度大於寬度的螢幕方向
  • 「Landscape」..寬度大於高度的螢幕方向

您必須至少選取一個選項。如果同時選取這兩個選項,就能在模擬器中切換螢幕方向。

Cameras

如要啟用相機,請選取下列一或兩個選項:

  • Back-Facing Camera..裝置背面的鏡頭
  • 「Front-Facing Camera」..面向使用者的鏡頭

啟用相機後,您可以根據在 AVD 設定中選取的選項,使用開發機器的網路攝影機或模擬器提供的相片,模擬拍照動作。

Sensors:Accelerometer 如果裝置的硬體可協助判斷螢幕方向,請選取此選項。
Sensors:Gyroscope 如果裝置的硬體可偵測旋轉或扭轉動作,請選取此選項。結合加速計,陀螺儀可以提供更順暢的螢幕方向偵測功能,並支援六軸螢幕方向系統。
Sensors:GPS 如果裝置的硬體支援 GPS (全球定位系統) 衛星導航系統,請選取此選項。
Sensors:Proximity Sensor 如果裝置的硬體可在通話期間偵測到裝置靠近使用者臉部,進而停用畫面上的輸入功能,請選取此選項。
Default Skin 選取外觀,控制裝置在模擬器中呈現的樣貌。如果指定的畫面尺寸對解析度而言太大,系統可能會裁切掉部分畫面,導致您無法看到整個畫面。詳情請參閱「建立模擬器外觀」一節。

建立模擬器外觀

Android 模擬器外觀是一組檔案,用於定義模擬器顯示畫面的視覺元素和控制元素。如果 AVD 設定中提供的外觀定義不符合需求,您可以自行建立自訂外觀定義,然後套用到 AVD。

所有模擬器外觀都包含:

  • 一個 hardware.ini 檔案
  • 版面配置檔案,用於支援的螢幕方向和實體設定
  • 背景、按鍵和按鈕等顯示元素的圖片檔

如何建立及使用自訂外觀:

  1. 建立用來儲存外觀設定檔的目錄。
  2. 在名為 layout 的文字檔中定義外觀的視覺樣貌。此檔案定義了外觀的許多特徵,例如特定按鈕的尺寸和圖片素材資源,例如:

    parts {
        device {
            display {
                width   320
                height  480
                x       0
                y       0
            }
        }
    
        portrait {
            background {
                image background_port.png
            }
    
            buttons {
                power {
                    image  button_vertical.png
                    x 1229
                    y 616
                }
            }
        }
        ...
    }
    

  3. 將裝置圖片的點陣圖檔案新增至同一個目錄。
  4. 在裝置設定的 INI 檔案中,指定額外的硬體專屬裝置設定,例如 hw.keyboardhw.lcd.density
  5. 封存外觀資料夾中的檔案,然後選取封存檔案做為自訂外觀。

如要進一步瞭解如何建立模擬器外觀,請參閱工具原始碼中的 Android Emulator 外觀檔案規格