适用于 Android™️ 的 Windows 子系统

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

要使 Android 应用在 Windows 11 设备上可用,必须执行以下操作:

有关详细信息或支持,请参阅以下内容:

本指南有助于你在 Windows 上测试和调试 Android 应用:

开发人员 GitHub

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

预览计划

适用于 Android™ 的 Windows 子系统预览计划允许用户在 Windows 上接收适用于 Android™ 和 Amazon Appstore 的 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 和适用于 Android 的 Windows 子系统的“设置”应用将出现在 Windows 11 的“开始”菜单中并可供搜索,提供 Android 应用的目录。

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

注意

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

Windows Subsystem for Android™️“设置”应用

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

Latte 应用设置的屏幕截图

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 的 Windows 子系统在 Windows 11 设备上测试和调试应用,需要执行以下设置步骤。

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

必须首先在 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 体系结构的应用程序。

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 32
Build.BOARD windows

安全性

适用于 Android 的 Windows 子系统对每个文件执行基于软件的加密。

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 及所有 Amazon 应用。

对问题进行故障排除

如果在 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 子系统标记

其他资源