岸边的风:个人主页
个人专栏 :《 VUE 》 《 javaScript 》
⛺️ 生活的理想,就是为了理想的生活 !
目录
开发人员 GitHub
预览计划
设置开发环境
先决条件
安装 Amazon Appstore
适用于 Android™️ 的 Windows 子系统设置
测试和调试
在 Windows“设置”中启用开发人员模式
连接到适用于 Android™️ 的 Windows 子系统进行调试
连接到测试设备
调试应用
构建通用 APK
Windows 设备的输入兼容性注意事项
键盘输入
鼠标输入
窗口管理和调整大小
最低屏幕要求
Letterboxing 和 Pillarboxing
调整大小的其他注意事项
应用程序生命周期事件
VM 生命周期注意事项
VM 属性
重定向到 Windows 应用
安全性
卸载适用于 Android™️ 的 Windows 子系统
对问题进行故障排除
适用于 Android™️ 的 Windows 子系统使你的 Windows 11 设备能够运行 Amazon Appstore 中提供的 Android 应用程序。 Android 是 Google LLC 的商标。 如果你是一名开发人员,想要面向 Windows 桌面设备并针对 Windows 操作系统进行优化,请参阅本指南。
要使 Android 应用在 Windows 11 设备上可用,必须执行以下操作:
有关详细信息或支持,请参阅以下内容:
本指南有助于你在 Windows 上测试和调试 Android 应用:
想了解有关适用于 Android™️ 的 Windows 子系统路线图的详细信息,与子系统团队讨论开发人员问题和提交 bug 或功能请求吗? 请访问适用于 Android™️ 的 Windows 子系统开发人员 GitHub。
适用于 Android™ 的 Windows 子系统预览计划允许用户在 Windows 上接收适用于 Android™ 和 Amazon Appstore 的 Windows 子系统的早期预览版本。 有关详细信息,请访问预览计划页。
要在 Windows 桌面环境中测试 Android 应用,需要进行一些设置。
适用于 Android™️ 的 Windows 子系统可在 Windows 11 上使用。 你的设备必须满足以下特定要求:设备要求。
当执行以下两个用户操作中的任意一个时,Microsoft Store 将在后台无提示地自动安装适用于 Android™️ 的 Windows 子系统:
然后,Amazon Appstore 将出现在 Windows 11 的“开始”菜单中供搜索,并提供的 Android 应用目录。 “适用于 Android™️ 的 Windows 子系统”应用也会显示在“开始”菜单中,使用它可控制移动应用设置和功能。
备注
Windows 上的 Amazon Appstore(需要使用此软件才能在 Windows 11 上运行 Android 应用)在部分地区可用。
要修改适用于 Android™️ 的 Windows 子系统设置,请转到:“开始”>“所有应用”>“适用于 Android™️ 的 Windows 子系统”。 了解有关特定设置应用功能的详细信息:管理 Windows 移动应用的设置。
要使用适用于 Android™️ 的 Windows 子系统在 Windows 11 设备上测试和调试应用,需要执行以下设置步骤。
需要先启用开发人员模式。 打开适用于 Android™️ 的 Windows 子系统设置。 打开后,在“高级设置”下启用“开发人员模式”。
连接到适用于 Android™️ 的 Windows 子系统 VM 进行调试:
启动使用 Amazon Appstore 安装的 Android 应用。
可以使用 adb connect 通过以下命令进行连接(必须安装 adb):
PowerShell复制
adb connect 127.0.0.1:58526
从 Windows/Mac 连接到同一网络上的测试设备(安装了适用于 Android™️ 的 Windows 子系统):
在测试设备(安装了适用于 Android™️ 的 Windows 子系统)上,打开 PowerShell 窗口并通过运行以下命令来识别测试设备的 IP 地址:
PowerShell复制
ipconfig
在安装了 Android Studio 和 Android SDK 的调试设备终端 (Mac/Windows) 中,输入命令:
控制台复制
adb connect :58526
可以在测试设备的“ipconfig”输出中找到。 你还可以从 Android Studio 部署和调试应用。
要使用 Android Debug Bridge (ADB) 将开发工作站直接连接到 Android 设备,以便安装包及评估更改,请参阅 Android 开源项目文档中的 Android Debug Bridge。
虽然应使用 Amazon Appstore 安装应用,但可以使用 APK(Android 应用程序包)和 adb (Android Debug Bridge) 在 Windows 设备上调试 Android 应用。
使用 adb 调试 APK:
按照上述步骤连接到适用于 Android™️ 的 Windows 子系统 VM。
使用 adb install 命令安装 APK:adb install app-debug.apk
预期输出:
PowerShell复制
Performing Streamed Install
Success
Windows 通知菜单中将显示“应用安装成功”通知,应用将在选择后启动。
适用于 Android™️ 的 Windows 子系统利用 Intel Bridge 技术在基于 x86 的处理器上启用 ARM 应用程序。 ARM 应用程序将以本机方式在基于 ARM 的处理器上运行。 仿真层会产生性能开销 - 为了获得最佳性能,请提交适用于 x86-64 和 Arm64 体系结构的应用程序。
你还需要考虑一些独特的输入行为,这些行为可能要求更新专为手持设备设计的 Android 应用代码,使其可兼容通过 Amazon Appstore 在 Windows 桌面设备上运行的情况。
对于由屏幕虚拟键盘输入法(或 IME)处理的文本输入字段(例如 EditText
),应用应正常运行。 (Android 文档中的 EditText 类)。
对于框架无法预测的击键,应用需要自己处理该行为。 如果已在应用内实现,则无需执行额外的工作。
例如,某些游戏可能已经支持通过键盘上的 w
、a
、s
、d
键以及触控输入方便移动。
开发人员在为 Windows 11 设备构建时应考虑更新代码的键盘输入有:
要详细了解如何在桌面设备上优化这些键盘输入方案,请参阅 Android 文档中的以下内容:
在为 Windows 设备构建时,开发人员应考虑更新以下鼠标输入的代码:
鼠标输入(类似于键盘输入)必须遵循官方 Android 应用指南。 这意味着需要将 InputDevice
类与 SOURCE_MOUSE
常量配对使用。 要详细了解如何在桌面设备上优化这些鼠标输入方案,请参阅 Android 文档中的以下内容:
与传统的移动设备外形规格不同,在 Windows 11 上运行的 Android 应用可以自由调整大小,在调整大小时应该响应迅速,并且可以使用 Windows 操作/手势进行贴靠。
Windows 11 强制要求最低 720p 的屏幕分辨率 (1280x720),并且屏幕尺寸 > 9 英寸。
当窗口大小的纵横比与显示窗口的设备屏幕大小不一致时,可能会导致 Letterboxing(窗口的宽度大于高度,或者说在水平方向上更长)或 Pillarboxing(窗口的宽度小于高度,或者说在垂直方向上更长)。 这样一来,为了使窗口保持居中,就会在其两侧放置长条。 这些长条可能是浅色或深色的,具体取决于所选的系统设置。 只有在贴靠或最大化 Android 应用时才会发生这种情况,这使 Android 应用能够利用 Windows 中丰富的贴靠功能并集成到窗口模型中。
在更新 Android 应用以在 Windows 11 设备上运行时,还应注意以下有关窗口管理和调整大小的事项:
要详细了解如何优化桌面设备上的窗口大小调整方案,请参阅 Android 文档中的窗口管理指南。
为多窗口环境开发 Android 应用程序会影响你选择在应用程序中使用的生命周期事件。 虽然重写 onPause
事件可能会在手机或平板电脑上实现所需的结果,但如果要更改应用的 UX,则使用该事件通常是错误的。
有关生命周期事件的说明,请参阅 Android 文档。 通常,你需要使用 onStop
事件,而不是 onPause
或 onUserLeaveHint
事件。 事实上,许多多窗口 Android 实现不会提供 onUserLeaveHint
通知,因此可能在该事件处理程序中的任何业务关键逻辑都不会在这些平台上调用,包括适用于 Android™️ 的 Windows 子系统。
适用于 Android™️ 的 Windows 子系统利用可与 AOSP 框架和键盘、鼠标、触摸屏、笔等设备兼容的虚拟机 (VM)。
使用适用于 Android™️ 的 Windows 子系统运行应用的 VM 有三种可能的状态:
这些状态之间的转换由用户活动触发,例如启动或与 Android 应用或应用通知交互。 Android 应用将暂停,然后在窗口最小化时停止。
下面列出了适用于 Android™️ 的 Windows 子系统 VM 的属性。 不建议对这些值进行硬编码,因为这可能会导致以后不兼容。
属性 | Value |
---|---|
Build.MANUFACTURER | Microsoft Corporation |
Build.MODEL | 适用于 Android(TM) 的子系统 |
Build.VERSION.SDK_INT | 32 |
Build.BOARD | windows |
适用于 Android™️ 的 Windows 子系统自动将文件和常见 URI 方案的意向重定向到相应的 Windows 默认文件/协议处理程序(如果多个意向筛选器匹配,用户会在选择器对话框中看到“Windows 默认应用”选项)。 支持的文件意向包括 ACTION_VIEW、ACTION_EDIT、ACTION_SEND 和 ACTION_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 计算器应用:
Java复制
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 子系统,但请注意,关联的所有应用也将随之卸载。
如果在 Windows 上遇到特定于 Amazon Appstore 的问题,请尝试执行以下排查步骤:
有关适用于 Android™️ 的 Windows 子系统的“设置”应用的相关进一步排查步骤,或要在反馈中心留下反馈,请参阅 Windows 移动应用疑难解答和常见问题解答。
对于任何其他开发人员问题和支持,请使用 Microsoft Q&A 上适用于 Android™️ 的 Windows 子系统标记。