适用于 Android™️ 的 Windows 子系统

适用于 Android™️ 的 Windows 子系统使你的 Windows 11 设备能够运行 Amazon Appstore 中提供的 Android 应用程序。 Android 是 Google LLC 的商标。 如果你是一名开发人员,想要面向 Windows 桌面设备并针对 Windows 操作系统进行优化,请参阅本指南。

重要

Microsoft 正在停止为适用于 Android™️ 的 Windows 子系统 (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

想了解有关适用于 Android™️ 的 Windows 子系统路线图的详细信息,与子系统团队讨论开发人员问题和提交 bug 或功能请求吗? 请访问适用于 Android™️ 的 Windows 子系统开发人员 GitHub

预览计划

适用于 Android™️ 的 Windows 子系统预览计划已不可用。

设置开发环境

要在 Windows 桌面环境中测试 Android 应用,需要进行一些设置。

先决条件

适用于 Android™️ 的 Windows 子系统可在 Windows 11 上使用。 你的设备必须满足以下特定要求:设备要求

安装 Amazon Appstore

当执行以下两个用户操作中的任意一个时,Microsoft Store 将在后台无提示地自动安装适用于 Android™️ 的 Windows 子系统:

  1. 从 Microsoft Store 安装 Amazon Appstore。 选择获取将开始安装应用。
  2. 首次从 Microsoft Store 安装 Android 应用,这也将安装 Amazon Appstore。

然后,Amazon Appstore 将出现在 Windows 11 的“开始”菜单中供搜索,并提供的 Android 应用目录。 “适用于 Android™️ 的 Windows 子系统”应用也会显示在“开始”菜单中,使用它可控制移动应用设置和功能。

Microsoft Store 页面的屏幕截图,其中显示了 Amazon Appstore 上的“获取”按钮

注意

Windows 上的 Amazon Appstore(需要使用此软件才能在 Windows 11 上运行 Android 应用)在部分地区可用。

适用于 Android™️ 的 Windows 子系统设置

要修改适用于 Android™️ 的 Windows 子系统设置,请转到:开始 > 所有应用 > 适用于 Android™️ 的 Windows 子系统。 了解有关特定设置应用功能的详细信息:管理 Windows 移动应用的设置

Latte 应用设置的屏幕截图

测试和调试

要使用适用于 Android™️ 的 Windows 子系统在 Windows 11 设备上测试和调试应用,需要执行以下设置步骤。

在 Windows“设置”中启用开发人员模式

需要先启用开发人员模式。 打开适用于 Android™️ 的 Windows 子系统设置。 打开后,在高级设置下启用开发人员模式

连接到适用于 Android™️ 的 Windows 子系统进行调试

连接到适用于 Android™️ 的 Windows 子系统 VM 进行调试:

  1. 启动使用 Amazon Appstore 安装的 Android 应用。

  2. 可以使用 adb connect 通过以下命令进行连接(必须安装 adb):

    adb connect 127.0.0.1:58526
    

连接到测试设备

从 Windows/Mac 连接到同一网络上的测试设备(安装了适用于 Android™️ 的 Windows 子系统):

  1. 在测试设备(安装了适用于 Android™️ 的 Windows 子系统)上,打开 PowerShell 窗口并通过运行以下命令来识别测试设备的 IP 地址:

    ipconfig
    
  2. 在安装了 Android Studio 和 Android SDK 的调试设备终端 (Mac/Windows) 中,输入命令:

    adb connect <TEST DEVICE IP ADDRESS>:58526
    

<TEST DEVICE IP ADDRESS> 可以在测试设备的“ipconfig”输出中找到。 你还可以从 Android Studio 部署和调试应用。

要使用 Android Debug Bridge (ADB) 将开发工作站直接连接到 Android 设备,以便安装包及评估更改,请参阅 Android 开源项目文档中的 Android Debug Bridge

调试应用

虽然应使用 Amazon Appstore 安装应用,但可以使用 APK(Android 应用程序包)和 adb (Android Debug Bridge) 在 Windows 设备上调试 Android 应用。

使用 adb 调试 APK:

  1. 按照上述步骤连接到适用于 Android™️ 的 Windows 子系统 VM。

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

    预期输出:

    Performing Streamed Install
    Success
    
  3. Windows 通知菜单中将显示“应用安装成功”通知,应用将在选择后启动。

构建通用 APK

适用于 Android™️ 的 Windows 子系统利用 Intel Bridge 技术在基于 x86 的处理器上启用 ARM 应用程序。 ARM 应用程序将以本机方式在基于 ARM 的处理器上运行。 仿真层会产生性能开销 - 为了获得最佳性能,请提交适用于 x86-64 和 Arm64 体系结构的应用程序。

Windows 设备的输入兼容性注意事项

你还需要考虑一些独特的输入行为,这些行为可能要求更新专为手持设备设计的 Android 应用代码,使其可兼容通过 Amazon Appstore 在 Windows 桌面设备上运行的情况。

键盘输入

对于由屏幕虚拟键盘输入法(或 IME)处理的文本输入字段(例如 EditText),应用应正常运行。 (Android 文档中的 EditText 类)。

对于框架无法预测的击键,应用需要自己处理该行为。 如果已在应用内实现,则无需执行额外的工作。

例如,某些游戏可能已经支持通过键盘上的 wasd 键以及触控输入方便移动。

开发人员在为 Windows 11 设备构建时应考虑更新代码的键盘输入有:

  • Enter 键
  • 箭头键和 Tab 键导航
  • 更改选定项的突出显示颜色
  • 基于 Ctrl 的快捷键

要详细了解如何在桌面设备上优化这些键盘输入方案,请参阅 Android 文档中的以下内容:

鼠标输入

在为 Windows 设备构建时,开发人员应考虑更新以下鼠标输入的代码:

  • 右键单击
  • 工具提示/悬停文本
  • 悬停效果
  • 鼠标滚轮的操作
  • 拖放

鼠标输入(类似于键盘输入)必须遵循官方 Android 应用指南。 这意味着需要将 InputDevice 类与 SOURCE_MOUSE 常量配对使用。 要详细了解如何在桌面设备上优化这些鼠标输入方案,请参阅 Android 文档中的以下内容:

窗口管理和调整大小

与传统的移动设备外形规格不同,在 Windows 11 上运行的 Android 应用可以自由调整大小,在调整大小时应该响应迅速,并且可以使用 Windows 操作/手势进行贴靠。

最低屏幕要求

Windows 11 强制要求最低 720p 的屏幕分辨率 (1280x720),并且屏幕尺寸 > 9 英寸。

Letterboxing 和 Pillarboxing

当窗口大小的纵横比与显示窗口的设备屏幕大小不一致时,可能会导致 Letterboxing(窗口的宽度大于高度,或者说在水平方向上更长)或 Pillarboxing(窗口的宽度小于高度,或者说在垂直方向上更长)。 这样一来,为了使窗口保持居中,就会在其两侧放置长条。 这些长条可能是浅色或深色的,具体取决于所选的系统设置。 只有在贴靠或最大化 Android 应用时才会发生这种情况,这使 Android 应用能够利用 Windows 中丰富的贴靠功能并集成到窗口模型中。

显示使窗口保持居中的空白长条的 Letterboxing 和 Pillarboxing 示例

调整大小的其他注意事项

在更新 Android 应用以在 Windows 11 设备上运行时,还应注意以下有关窗口管理和调整大小的事项:

  • 初始启动大小
  • 窗口维度
    • 内容边界
    • 自由调整大小
  • 屏幕方向

要详细了解如何优化桌面设备上的窗口大小调整方案,请参阅 Android 文档中的窗口管理指南

应用程序生命周期事件

为多窗口环境开发 Android 应用程序会影响你选择在应用程序中使用的生命周期事件。 虽然重写 onPause 事件可能会在手机或平板电脑上实现所需的结果,但如果要更改应用的 UX,则使用该事件通常是错误的。

有关生命周期事件的说明,请参阅 Android 文档。 通常,你需要使用 onStop 事件,而不是 onPauseonUserLeaveHint 事件。 事实上,许多多窗口 Android 实现不会提供 onUserLeaveHint 通知,因此可能在该事件处理程序中的任何业务关键逻辑都不会在这些平台上调用,包括适用于 Android™️ 的 Windows 子系统。

VM 生命周期注意事项

适用于 Android™️ 的 Windows 子系统利用可与 AOSP 框架和键盘、鼠标、触摸屏、笔等设备兼容的虚拟机 (VM)。

使用适用于 Android™️ 的 Windows 子系统运行应用的 VM 有三种可能的状态:

  1. 运行
  2. 轻度睡眠:持续 3 分钟没有应用活动后激活。 由用户活动或应用通知停用。
  3. 未运行:持续 7 分钟没有应用活动后激活。

这些状态之间的转换由用户活动触发,例如启动或与 Android 应用或应用通知交互。 Android 应用将暂停,然后在窗口最小化时停止。

显示正在运行、轻度睡眠和未运行的 VM 生命周期图

VM 属性

下面列出了适用于 Android™️ 的 Windows 子系统 VM 的属性。 不建议对这些值进行硬编码,因为这可能会导致以后不兼容。

属性 Value
Build.MANUFACTURER Microsoft Corporation
Build.MODEL 适用于 Android(TM) 的子系统
Build.VERSION.SDK_INT 33
Build.BOARD windows

重定向到 Windows 应用

适用于 Android™️ 的 Windows 子系统自动将文件和常见 URI 方案的意向重定向到相应的 Windows 默认文件/协议处理程序(如果多个意向筛选器匹配,用户会在选择器对话框中看到“Windows 默认应用”选项)。 支持的文件意向包括 ACTION_VIEWACTION_EDITACTION_SENDACTION_SEND_MULTIPLE,它们在打开文件之前将文件复制到 Windows 下载文件夹。 支持的 URI 意向包括用于 http/https 方案的 ACTION_VIEW 以及用于 mailto 方案的 ACTION_VIEW ACTION_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。 要详细了解 getSecurityLevel,请参阅 Android API 参考指南

卸载适用于 Android™️ 的 Windows 子系统

你可以卸载适用于 Android™️ 的 Windows 子系统,但请注意,关联的所有应用也将随之卸载。

  • 卸载 Amazon Appstore 会同时卸载适用于 Android™️ 的 Windows 子系统及其他所有 Amazon 应用。
  • 卸载 Amazon Appstore 应用只会卸载该应用(与 Windows 应用的行为相同)。
  • 卸载适用于 Android™️ 的 Windows 子系统会同时卸载 Amazon Appstore 及所有 Android 应用。

对问题进行故障排除

如果在 Windows 上遇到特定于 Amazon Appstore 的问题,请尝试执行以下排查步骤:

  1. 从 Windows 任务栏中选择 Windows 搜索
  2. 搜索“Amazon Appstore”并右键单击 Amazon Appstore 图标。
  3. 在下拉选项中选择“应用设置”。
  4. 选择“存储和缓存”,然后单击“清除存储”和“清除缓存”。
  5. 返回并选择“强制停止”。
  6. 关闭 Amazon Appstore“设置”窗口。
  7. 重新启动 Amazon Appstore。

有关适用于 Android™️ 的 Windows 子系统的“设置”应用的相关进一步排查步骤,或要在反馈中心留下反馈,请参阅 Windows 移动应用疑难解答和常见问题解答

对于任何其他开发人员问题和支持,请使用 Microsoft Q&A 上适用于 Android™️ 的 Windows 子系统标记

其他资源