適用於 Android™ 的 Windows 子系統 ️

適用於 Android™ 的 Windows 子系統可讓您的 Windows 11 裝置執行 Amazon Appstore 中提供的 Android 應用程式。 Android 是 Google LLC 的商標。 如果您是想要以 Windows 桌面裝置為目標並針對 Windows 作業系統進行最佳化的開發人員,請參閱本指南。

重要

Microsoft 即將結束對 Windows 子系統 Android 版 ™️ (WSA) 的支援。 因此,自 2025 年 3 月 5 日起,Windows 上的 Amazon Appstore 和所有相依於 WSA 的應用程式和遊戲將不再受到支援。 在此之前,技術支援仍可供客戶使用。
在 2024 年 3 月 5 日之前安裝 Amazon Appstore 或 Android 應用程式的客戶,將會繼續透過 2025 年 3 月 5 日的淘汰日期存取這些應用程式。 請連絡我們的支援小組,以取得 support.microsoft.com進一步問題。 我們感謝開發人員社群的支援,並持續致力於在發展經驗時聽取意見反應。

若要讓您的 Android 應用程式可在 Windows 11 裝置上使用,您必須:

如需詳細資訊或支援:

本指南可協助您在 Windows 上測試及偵錯 Android 應用程式:

開發人員 GitHub

想要深入了解 Windows Subsystem for Android™️ 藍圖、討論開發人員問題及向子系統小組提出錯誤或功能要求嗎? 造訪 Windows Subsystem for Android™️ 開發人員 GitHub

預覽計畫

適於 Android™ 的 Windows 子系統預覽計畫可讓使用者在 Windows 上接收適用於 Android™ 和 Amazon Appstore 的 Windows 子系統的早期預覽組建。 如需詳細資訊,請造訪預覽計畫頁面

設定開發環境

若要在 Windows 桌面環境中測試 Android 應用程式,需要一些設定。

必要條件

Windows Subsystem for Android™️ 可在 Windows 11 上使用。 您的裝置必須符合特定需求:裝置需求

安裝 Amazon Appstore

採取下列兩個使用者動作之一時,Microsoft Store 會自動在背景中以無訊息方式安裝 Windows Subsystem for Android™️:

  1. 從 Microsoft Store 安裝 Amazon Appstore。 選取 [取得] 將會開始安裝應用程式。
  2. 第一次從 Microsoft Store 安裝 Android 應用程式時,也會安裝 Amazon Appstore。

Amazon Appstore 應用程式接著會顯示在 Windows 11 [開始] 功能表中且可搜尋得到,並提供 Android 應用程式的目錄。 可讓您控制行動裝置應用程式設定和功能的 Windows Subsystem for Android™️ 應用程式也會顯示在 [開始] 功能表中。

Screenshot of Microsoft Store page featuring the Get button on the Amazon App Store

注意

Windows 上的 Amazon Appstore (在 Windows 11 上執行 Android 應用程式的必要條件) 可在特定區域使用。

適用於 Android™ 的 Windows 子系統️設定

若要修改 Windows Subsystem for Android™️ 設定,請移至:[開始] > [所有應用程式] > [Windows Subsystem for Android™️]。 深入了解特定設定應用程式功能:管理 Windows 行動裝置應用程式的設定

Screenshot of Latte app settings

測試與偵錯

若要使用 Windows Subsystem for Android™️ 在 Windows 11 裝置上測試及偵錯您的應用程式,需要下列設定步驟。

在 Windows 設定中啟用開發人員模式

您必須先啟用開發人員模式。 開啟適用於 Android™ 的 Windows 子系統 設定。️ 開啟之後,啟用 [進階設定] 底下的 [開發人員模式]

連線到 Windows Subsystem for Android™️ 進行偵錯

若要連線到 Windows Subsystem for Android™️ 進行偵錯:

  1. 啟動使用 Amazon Appstore 安裝的 Android 應用程式。

  2. 您可以使用 adb connect 透過下列命令進行連線 (您必須已安裝 adb):

    adb connect 127.0.0.1:58526
    

連線到測試裝置

若要從 Windows/Mac 連線到相同網路上的測試裝置 (已安裝 Windows Subsystem for Android™️):

  1. 在測試裝置 (已安裝 Windows Subsystem for Android™️) 上開啟 PowerShell 視窗,並執行以下命令來識別測試裝置的 IP 位址:

    ipconfig
    
  2. 在已安裝 Android Studio 和 Android SDK 的偵錯裝置終端機 (Mac/Windows) 輸入命令:

    adb connect <TEST DEVICE IP ADDRESS>:58526
    

您可以在測試裝置的「ipconfig」輸出中找到 <TEST DEVICE IP ADDRESS>。 您也可以從 Android Studio 部署及偵錯應用程式。

若要使用 Android Debug Bridge (ADB) 將開發工作站直接連線到 Android 裝置以便安裝套件及評估變更,請參閱 Android 開放原始碼專案文件中的 Android Debug Bridge

偵錯應用程式

雖然應使用 Amazon Appstore 安裝應用程式,但可以使用 APK (Android 應用程式套件) 和 adb (Android Debug Bridge) 在 Windows 裝置上偵錯 Android 應用程式。

若要使用 adb 對 APK 進行偵錯:

  1. 請依照上述步驟連線到 Windows Subsystem for Android™️ VM。

  2. 使用 adb install 命令安裝 APK:adb install app-debug.apk

    預期輸出:

    Performing Streamed Install
    Success
    
  3. Windows 通知功能表中將顯示「已成功安裝應用程式」通知,應用程式會在選取之後啟動。

建置通用 APK

Windows Subsystem for Android™️ 利用 Intel Bridge Technology 在 x86 處理器上啟用 ARM 應用程式。 ARM 應用程式會以原生方式在 ARM 型處理器上執行。 模擬層會產生效能額外負荷,為了達到最佳效能,請針對 x86-64 和 Arm64 架構提交您的應用程式。

Windows 裝置的輸入相容性考量

您也需要考量一些獨特的輸入行為,這些行為可能需要更新專為手持裝置設計的 Android 應用程式程式碼,使其能與透過 Amazon Appstore 在 Windows 桌面裝置上執行時相容。

鍵盤輸入

針對由螢幕虛擬鍵盤輸入法 (或 IME) 處理的文字輸入欄位,例如 EditText,應用程式應如預期般運作。 (Android 文件中的 EditText 類別)。

針對架構無法預期的按鍵輸入,應用程式必須自行處理該行為。 如果已在應用程式中實作,則不需要執行額外的工作。

例如,某些遊戲可能已經支援透過鍵盤上的 wasd 鍵以及觸控輸入來方便移動。

為 Windows 11 裝置建置時,開發人員應考量更新下列鍵盤輸入的程式碼:

  • 輸入金鑰
  • 方向鍵和 Tab 鍵瀏覽
  • 變更選取的項目醒目提示色彩
  • 以 Ctrl 為基礎的快速鍵

請參閱 Android 文件中的以下內容,深入了解如何在桌面裝置上最佳化這些鍵盤輸入案例:

滑鼠輸入

為 Windows 裝置建置時,開發人員應考量更新下列滑鼠輸入的程式碼:

  • 按滑鼠右鍵
  • 工具提示/暫留文字
  • 暫留效果
  • 滑鼠滾輪動作
  • 拖放功能

滑鼠輸入與鍵盤輸入類似,必須遵循官方 Android 應用程式指導方針。 這表示需要將 InputDevice 類別與 SOURCE_MOUSE 常數配對使用。 請參閱 Android 文件中的以下內容,深入了解如何在桌面裝置上最佳化這些滑鼠輸入案例:

視窗管理和調整大小

與傳統的行動裝置尺寸不同,在 Windows 11 上執行的 Android 應用程式可以自由調整大小,在調整大小時應迅速回應,而且可以使用 Windows 動作/手勢來貼齊。

畫面最低需求

Windows 11 強制要求最低 720p 解析度 (1280x720),且螢幕尺寸最小 >9 英吋。

信件和柱子拳擊

視窗大小的外觀比例與顯示視窗的裝置螢幕大小不一致時,可能會導致 Letterboxing (視窗的寬度大於高度,或在水平方向較長) 或 Pillarboxing (視窗的寬度小於高度,或在垂直方向較長)。 這樣一來,為了使視窗保持居中,就會在其兩側放置橫條。 根據選取的系統設定而定,這些橫條可能是淺色或深色。 只有在貼齊或最大化 Android 應用程式時,才會發生這種情況,這讓 Android 應用程式能夠利用 Windows 中豐富的貼齊功能,並整合到視窗化模型中。

Letterboxing and Pillarboxing example showing blank bars that center the window

其他調整大小考量

在更新 Android 應用程式以在 Windows 11 裝置上執行時,也應考量下列關於視窗管理和調整大小的事項:

  • 初始啟動大小
  • 視窗維度
    • 內容邊界
    • 自由格式調整大小
  • 螢幕方向

若要深入了解如何在桌面裝置上最佳化視窗調整大小案例,請參閱 Android 文件中的視窗管理指南

應用程式生命週期事件

針對多視窗環境開發 Android 應用程式會影響您選擇在應用程式中使用的生命週期事件。 雖然覆寫 onPause 事件可能會達到您在手機或平板電腦上想要的結果,但如果變更應用程式的 UX,則使用該事件通常是錯誤。

如需生命週期事件的說明,請參閱 Android 文件。 通常,您需要使用 onStop 事件,而不是 onPauseonUserLeaveHint 事件。 事實上,許多多視窗 Android 實作不會傳遞 onUserLeaveHint 通知,因此在這些平台上,可能不會呼叫任何可能在該事件處理常式中的任何業務關鍵邏輯,包括 Windows Subsystem for Android™️。

VM 生命週期考量

Windows Subsystem for Android™️ 利用可與 AOSP 架構 和鍵盤、滑鼠、觸控、手寫筆等裝置相容的虛擬機器 (VM)。

使用 Windows Subsystem for Android™️ 執行應用程式的 VM 有三種可能的狀態:

  1. 執行中
  2. Lightweight Doze:持續 3 分鐘沒有應用程式活動後啟用。 由使用者活動或應用程式通知停用。
  3. 未執行:持續 7 分鐘沒有應用程式活動後啟用。

這些狀態之間的轉換會由使用者活動觸發,例如啟動或與 Android 應用程式或應用程式通知互動。 Android 應用程式會暫停,然後在視窗最小化時停止。

VM lifecycle graph showing the running, lightweight doze, and not running

VM 屬性

Windows Subsystem for Android™️ VM 屬性如下所列。 不建議對這些值硬式編碼,因為這可能會導致未來的不相容。

屬性
Build.MANUFACTURER Microsoft Corporation
Build.MODEL 適用於 Android(TM) 的子系統
Build.VERSION.SDK_INT 33
Build.BOARD windows

重新導向至 Windows 應用程式

Windows Subsystem for Android™️️ 會自動將檔案和常見 URI 配置的意圖重新導向至對應的 Windows 預設檔案/通訊協定處理常式 (如果多個意圖篩選條件相符,使用者會在選擇器對話方塊中看到 [Windows 預設應用程式] 選項)。 支援的檔案意圖包括 ACTION_VIEWACTION_EDITACTION_SENDACTION_SEND_MULTIPLE,其在開啟檔案之前,會先將檔案複製到 Windows Downloads 資料夾。 支援的 URI 意圖包括 http/https 配置的 ACTION_VIEW,以及 mailto 配置的 ACTION_VIEWACTION_SENDTO

Android 應用程式也可以使用自訂 URI 配置手動重新導向至 Windows 應用程式。 將意圖動作設定為 com.microsoft.windows.LAUNCH_URI,並將字串擷取新增至名為 com.microsoft.windows.EXTRA_URI 以自訂 URI 作為值的意圖。 例如,若要從 Android 應用程式 (Java) 啟動 Windows 小算盤應用程式:

Intent intent = new Intent("com.microsoft.windows.LAUNCH_URI");
intent.putExtra("com.microsoft.windows.EXTRA_URI", "ms-calculator:");
 
try {
    startActivity(intent);
} catch (ActivityNotFoundException e) {
    // Not running in Windows Subsystem for Android™️ (or running on an older build that did not contain this feature).
}

安全性

Windows 核心模式驅動程式和以中等完整性層級 (IL) 執行的 Windows 應用程式都可以檢查任意 Android 容器和 Android 應用程式記憶體。 短期內沒有新增作弊/巨集/機器人/可疑行為偵測的計畫。

查詢 getSecurityLevel 的開發人員將取得 SECURITY_LEVEL_SW_SECURE_CRYPTO。 在 Android API 參考指南中深入了解 getSecurityLevel

安裝 Windows Subsystem for Android™️

您可以解除安裝 Windows Subsystem for Android™️,但請注意,所有相關聯的應用程式也會解除安裝。

  • 解除安裝 Amazon Appstore 將會解除安裝 Windows Subsystem for Android™️ 和其他所有 Android 應用程式。
  • 解除安裝 Amazon Appstore 應用程式只會解除安裝應用程式 (與 Windows 應用程式的行為相同)。
  • 解除安裝 Windows Subsystem for Android™️ 將會解除安裝 Amazon Appstore 和所有 Android 應用程式。

疑難排解問題

如果您在 Windows 上遇到 Amazon Appstore 特有的問題,請嘗試下列疑難排解步驟:

  1. 從 Windows 工作列選取 [Windows 搜尋]
  2. 搜尋「Amazon Appstore」,並以滑鼠右鍵按一下 Amazon Appstore 圖示。
  3. 在下拉式清單中選取 [應用程式設定]。
  4. 選取 [儲存體和快取],然後按一下 [清除儲存體] 和 [清除快取]。
  5. 返回並選取 [強制停止]。
  6. 關閉 [Amazon Appstore 設定] 視窗。
  7. 重新啟動 Amazon Appstore。

如需有關 Windows Subsystem for Android™️ 的設定應用程式的進一步疑難排解步驟,或使用意見反應中樞留下意見反應,請參閱 Windows 上行動裝置應用程式的疑難排解和常見問題

對於任何其他開發人員問題和支援,請使用 Microsoft Q&A 上的 Windows 子系統 Android 版 ™️ 標籤。

其他資源