乘风破浪,遇见最美Windows 11之新微软商店(Microsoft Store)生态 - 安卓(Android™)体验及开发兼容指南
什么是Windows 11的安卓(Android™)应用
2021年6月25日,微软召开线上发布会,对外宣告下一代Windows操作系统Windows 11,Windows 11为用户重新打造的Microsoft Store,速度更快,采用了美观易用的全新设计,并承诺首次将Android应用程序引入Windows。
2021年10月5日,微软宣布将于2021年10月5日正式开始推送Windows 11,10月5日起,符合条件的Windows 10 PC将可免费升级到Windows 11,预装Windows 11的各种全新PC设备也将开始上市发售,并宣称期待通过与亚马逊和英特尔的合作,继续将Android应用程序带到Windows 11和Microsoft Store,在随后的几个月中,该功能将首先面向Windows预览体验成员推出预览版本。
2021年10月20日,微软表示,Win11安卓子系统(Windows Subsystem for Android™
)能够使Win11设备运行Amazon应用商店中的Android应用程序,已为开发者准备好了指南文档。
2021年10月20日,微软宣称,Windows 11上Android ™应用程序的第一个预览版现已提供给美国Beta频道的Windows内部人员。
安卓(Android™)应用在Windows 11的体验指南
- 用户可以将安卓App固定到开始菜单或任务栏,并通过鼠标、触摸或笔输入与它们交互;
- 安卓App还可以集成到Alt+选项卡和任务视图中,帮助用户在App之间快速切换;
- 用户可以在操作中心中查看来自安卓App的通知,或在Windows应用程序和安卓App之间共享剪贴板;
- 微软还添加了无障碍体验,许多Windows辅助功能设置都适用于安卓App。
首批推出的安卓(Android™)应用范围
微软与亚马逊合作,为Windows内部人员首先推出了50款安卓App,以便在一系列硬件上进行测试和验证。微软将在未来几个月通过Windows Insider程序发布更多的安卓App。
这50款App中包含:
- 手机游戏:《王国纪元》《琼的旅程》《CoinMaster》等;
- 阅读:Kindle App、漫画App等;
- 儿童内容:Khan Academy Kids、Lego Duplo World等。
预览体验操作方法
如果你用手工安装,可绕过微软的灰度方案,在Windows 11的正式版、Beta通道、Dev通道都可以顺利安装和体验。
- 电脑需要安装在Windows 11(Build22000.xxxseriesbuilds)上,并满足硬件要求;
- 用户需要为电脑的BIOS/UEFI启用虚拟化;
- 电脑的地区必须设置为美国;
- 电脑必须处于Win11 Beta频道(Dev频道将在后续支持);
- 用户需要有一个美国亚马逊帐户才能使用亚马逊应用商店;
- 然后点击链接前往微软应用商店进行安装使用。
预览体验已知问题
微软应用商店
- 应用商店不会显示亚马逊应用商店App的审查评级。
亚马逊应用商店
- 如果遇到亚马逊应用商店登录问题,请关闭广告拦截器。
- 使用亚马逊应用商店时,辅助功能选项尚未启用。
安卓子系统
- ARM64上的蜂窝LTE网络接入有问题。
- ARM64上的某些App可能会看到显示可视工件(displayvisualartifacts)。
- 运行多个App时,性能可能会有所不同。
- 某些App存在已知的摄像头问题。
- 现代待机模式下的App将遇到问题。
安卓(Android™)应用在Windows 11的技术细节
Win11安卓子系统(Windows Subsystem for Android™
)包括Linux内核和基于Android开源项目(AOSP)版本11的Android操作系统。它作为Amazon App Store
安装的一部分通过Microsoft Store
分发。该子系统在Hyper-V
虚拟机中运行,就像Linux子系统一样,可以将AOSP环境中App的运行时和API映射到Windows图形层、内存缓冲区、输入模式、物理和虚拟设备以及传感器,可以在英特尔、AMD、高通的CPU上运行。
安卓(Android™)应用在Windows 11的测试指南
- 设置你的开发环境,包括先决条件、安装
Amazon App Store
,以及使用设置应用程序。 - 处理Windows设备的输入兼容性问题,例如:键盘输入、鼠标输入以及窗口管理和大小调整。
- 在Windows 11设备上测试和调试你的应用程序。
- 向
Amazon App Store
提交应用程序。您的应用程序必须在Amazon App Store
中可用,才能在Windows 11设备上运行。
安装Win11安卓子系统(Windows Subsystem for Android™,必选)
ms-windows-store://pdp/?productid=9P3395VX91NR
安装包体积有1.2G,需要耐心等待哈。
- MicrosoftCorporationII.WindowsSubsystemForAndroid_1.8.32837.0_neutral___8wekyb3d8bbwe.Msixbundle - 正式通道
- MicrosoftCorporationII.WindowsSubsystemForAndroid_2203.40000.1.0_neutral___8wekyb3d8bbwe.Msixbundle - 预览通道
用百度网盘直链:https://pan.baidu.com/s/1hsQo5nnk4Gx0QYW0UMnH8Q 提取码:ia4o
可能会提示无法安装。
不要紧,我们在开始菜单右键,使用Windows终端(管理员)命令进入,切换到安装包所在目录,执行如下安装命令:
add-appxpackage "MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.32815.0_neutral___8wekyb3d8bbwe.Msixbundle"
安装成功之后,你就可以在开始菜单看到绿色图标的应用了
打开它,可以进入设置页面。
点击文件的右侧箭头,触发一次启动
如果提示无法启动安卓子系统
那么前往系统设置界面,"应用" -> "可选功能" -> "更多Windows功能" => 勾选"Hyper-V"和"虚拟机平台",确定重启系统即可
有些童鞋反馈自己的系统没有Hyper-V这个勾选项,那是因为你是家庭版系统,必须先要升级到专业版或企业版才行,这是高级版本才有的功能项,分享两个Windows 11家庭版升级专业版的Key。
8G7XN-V7YWC-W8RPC-V73KB-YWRDB
C38W9-KWNBH-M4HWH-746BK-H6DGY
这下真的可以看到安卓子系统的文件了。
内存占用感觉还好
为了方便本地调试,我们打开下开发者模式,方便我们通过adb本地调试。
安装亚马逊应用商店(Amazon App Store,可选)
ms-windows-store://pdp/?productid=9njhk44ttksx
Amazon.comServicesLLC.AmazonAppstore_0.0.1.0_neutral___bvztej1py64t8.Msixbundle,若失效请用百度网盘直链:https://pan.baidu.com/s/1MKUfgc3YovYYBu2o00VKCw 提取码:
op4z
安装方式:
- 从微软商店安装亚马逊应用商店。
- 第一次从微软商店安装安卓或亚马逊应用,这也将安装亚马逊应用商店。
安装Windows子系统的vGPU驱动程序(可选)
由于考虑到WSA和WSL同根同源,之前微软已经为WSL联合各个显卡厂商推出了能调用GPU加速的WSL专用显卡驱动,那么如果想在安卓子系统中让应用充分调用,那么我们可以尝试安装这些驱动。
你应该首先安装与你的系统匹配的预览驱动程序。这使你能够使用虚拟GPU(vGPU)以便你可以从硬件加速OpenGL呈现中获益。
a. NVIDIA
b. AMD
获取安卓(Android™)应用
a. 微软+亚马逊官方商店获取
亚马逊应用商店(Amazon App Store
)将出现在Windows 11的开始菜单中,并在搜索时可用,提供一个精心策划的安卓应用目录。
选择“获取”将开始安装该应用程序,一旦成功完成安装,将出现一个Windows通知。该应用程序也将出现在Windows开始、搜索和Windows程序列表中。
b. 安卓应用软件官方网站获取
如果你的亚马逊应用商店(Amazon App Store
)尚未准备好,或者你从该商店找不到你所需要的安卓应用,那么通常来说,我们可以通过搜索引擎搜索该应用软件的官方网站来获取安装文件。
通常,安卓应用的安装文件后缀为.apk
,那么我们也可以把它作为关键词来搜索。
以"支付宝"应用为例,搜索关键词支付宝 apk
即可快速找到官网。
进入后,找到对应的Android版本,点击即可启动APK文件的下载。
部分应用软件可能没有在官网提供有效的下载连接,那么也可以通过从一些下载站来获取,不过需要留意的是,尽量找到最新版本。
设置安卓(Android™)应用
要访问Windows Subsystem for Android™
设置应用程序,请转到:"开始菜单" > "所有应用程序" > Windows Subsystem for Android™
。“设置”应用程序可以用来调整以下设置。
打开后,进入安卓(Android™)子系统的设置界面
1. 文件
点击"文件"右侧的小箭头图标,即可进入安卓子系统的文件资管管理器。
展开右侧的导航菜单,可以切换文件分类的位置。
2. 子系统屏幕阅读器
如果触摸输入不工作,请确保子系统屏幕阅读器被关闭。欲了解更多信息,请参见微软支持:Android的Windows子系统的可访问性。
3. 子系统资源
-
按需要:当选择此选项时,子系统将在移动应用程序被打开时打开。由于子系统需要首先打开,移动应用程序可能需要更长的时间来打开。在第一个移动应用程序之后打开的移动应用程序可能不会受到影响。
-
持续:子系统总是准备好打开应用程序。由于它总是在后台打开,它将使用你的PC的更多内存和处理能力。
4. 可选诊断数据
如果打开此选项,会将安卓子系统运行的相关诊断数据发送给微软进行分析,如果你没有太多需要保护的隐私,可以打开此选项。
5. 开发人员模式
如果你要在Windows 11设备上本地调试你的安卓应用,那么需要将开发人员模式设置为"开启"状态,比如通过Adb侧加载应用和联调。
当开发人员模式被成功开启,它将展示更多的连接信息,包括连接的IP和端口,处于同一个局域网的开发机器或者本机多可以使用它来连接。
如果你对安卓原生的开发人员调试选项有更多的需求,也可以点击"管理开发人员设置",打开安卓子系统的开发设置窗口进行更多设置。
6. IP地址
如果你想要查看安卓子系统的IP地址,那么可以通过点击这里的"刷新"按钮来显示它,不过前提是,安卓子系统目前处于开启运行状态。
7. 重置为默认值
如果你想一键还原你的安卓子系统的设置,可以点击这里的"重置"按钮。
8. 关闭适用于Android™的Windows子系统
安卓子系统也需要关机操作,如果你想主动关闭它,那么可以点击这里的"关闭"按钮。
安装安卓应用之工具箱(WsaToolbox)
ms-windows-store://pdp/?productid=9PPSP2MKVTGT
备用下载:53828Makazeu.WSAToolbox_1.2.8.0_neutral___jdbvfq35mb6dw.Msixbundle
如果你看不懂"安装安卓应用之旁加载(Adb SideLoad)"教程,那么目前已经有了一款工具箱应用,它可以可视化帮助你来完成应用的安装。
安装安卓应用之工具箱(WSATools)
ms-windows-store://pdp/?productid=9N4P75DXL6FG
备用下载:54406Simizfo.WSATools_0.1.56.0_neutral___f0x555vvp18ze.Msixbundle
意大利开发人员Simone Franco开发了一款Microsoft Store应用程序WSATools
,只需双击APK即可轻松完成。
这款应用的特点是:
- APK文件的资源管理器集成:双击并按安装!
- APK安装变得简单:只需点击一下即可。
- 无需安装ADB并了解其命令。WSATools处理一切!
- 如果您的路径中已经有platform-tools软件包,它将使用该软件包!
- 更多功能即将推出!
但是从实际测试来看,并非所有应用都可以顺利加载,只有部分可以,还需要等待作者进一步更新了。
安装安卓应用之旁加载(Adb SideLoad)
如果你的亚马逊商店还没准备好,那么我们也可以直接用APK在本地安装,这里可能要熟悉一些adb命令,但是确实很香。
如果没有ADB(Android调试桥)怎么办?给你一个adb-full.zip 或备选platform-tools_r31.0.3-windows.zip,下载解压后把压缩包内所有文件丢到你的
C:/Windows
目录即可。
a. 打开并设置好开发者模式
正如前面安装环节介绍,要打开开发者模式,才可以实现本地安装
b. 通过Windows终端进入Adb命令行模式
在Windows 11开始菜单图标上右键,可以找到"Windows终端"菜单,点击进入。
c. 切换到APK安装包目录
cd C:\Users\username\Downloads
d. 检查Adb版本并且连接安卓子系统
adb version
adb connect 127.0.0.1:58526
这里端口号可能每个人不一样,要以设置页面为准
这里的是adb connect
是连接指定安卓调式地址指令前缀,,后面空格再跟具体安卓系统的IP+端口,这个信息会显示在安卓子系统设置页开发者模式那栏,正常开启后会出现小字说明。
如果在这一步遇到拒绝连接,说明安卓子系统或许已经异常关闭了,我们可以点击设置应用中的"关闭适用于Android的Windows子系统"对应的关闭按钮,再点击"文件"右侧的箭头按钮,重新开启一次,必要的话,还可以先关闭开发者模式,再开启,确保它正常工作。
adb devices
这里的是adb devices
是显示已连接的安卓设备,如果顺利连上会显示安卓子系统的,前提是要打开开发者模式哈。
e. 直接使用Adb命令进行安装,例如支付宝
adb install .\alipay_wap_main.apk
这里的是adb install
是安装指定应用文件的指令前缀,后面空格再跟具体安卓APK文件的路径,这里.\
是代表当前目录的意思。
f. 成功安装,开始菜单找到安卓应用,启动它
解决多设备连接导致的安装失败问题
如果你在"使用adb install命令安装应用时遇到了错误提示"或者"使用WsaTools执行安装过程中安装时间无限期延长":
adb: error: failed to get feature set: more than one device/emulator
这个代表,你目前有多个设备连着,如果不指定的话,adb是不知道你这个动作要具体安装到哪个设备的。
为什么会遇到这个情况呢?也许是因为你在用一些工具导致的,比如WsaTools这个工具,它默认会走
localhost:58526
来连接,但是Wsa的设置界面会告诉你,应该走127.0.0.1:58526
来连接,有开发背景的童鞋其实知道,实际上这本质是同一个位置,但是系统会认为这是两个连接位置。
通过adb devices命令,我们就可以看到这个情况了:
要解决它,有两种办法。
a. 彻底不用手工命令,纯用WsaTools这类工具
adb kill-server
先通过上诉命令,关闭调已有的所有adb连接,然后完全通过使用WsaTools这类工具来安装应用即可,这时候只会出现localhost:58526
这一个连接。
这时候,WsaTools这类工具也是可以正常使用的。
b. 兼容手工命令,通过指定设备来执行安装
adb devices
先通过Devices这个命令查看下已连接的设备,前面的名称就是DeviceId。
adb -s $deviceId install $apkFilePath
安卓(Android™)应用在Windows 11的兼容指南
键盘输入(Keyboard input)
对于由屏幕虚拟键盘输入法(或IME)处理的文本输入字段,例如EditText(Android文档中的EditText类),应用程序应按预期运行。
对于框架无法预测的击键,应用程序需要自己处理行为。如果这已经在应用程序中实现,则不需要额外的工作。
例如,某些游戏可能已经支持通过键盘(w
a
s
d
)、按键以及触摸输入方便移动。
开发人员在为Windows 11设备构建时应考虑的代码更新的键盘输入:
- 回车按键
- 方向键和Tab键导航
- 改变选中项的高亮颜色
- 基于Ctrl的快捷热键组合
通过关注Android文档来优化桌面设备上的这些键盘输入方案:
鼠标输入(Mouse input)
开发人员在为Windows 11设备构建时应考虑更新以下鼠标输入的代码:
- 右键单击
- 辅助提示/悬停文本
- 悬停效果
- 鼠标滚轮动作
- 拖放
鼠标输入,类似于键盘输入,必须遵循官方的Android应用程序指南。这意味着使用与常数配对的类。了解有关如何通过关注 Android 文档优化桌面设备上的这些鼠标输入方案的更多详细情况:InputDeviceSOURCE_MOUSE
窗口管理和改变大小(Window management and resizing)
与传统的移动设备外形不同,在Windows 11上运行的Android应用程序可以自由调整大小,在调整大小时应该具有响应性,并且可以使用Windows 操作/手势进行捕捉。
a. 最低屏幕要求
Windows 11 强制要求最低屏幕要求为720p分辨率(1280x720),屏幕大于9英寸。
b. 字符和间距
当窗口大小的纵横比在显示窗口的设备屏幕大小之间不对齐时,结果可能是Letterboxing(窗口比它高,或水平更长)或Pillarboxing(窗口更窄)比它宽,或垂直长)。结果是将条形放置在窗口的两侧以使其居中。这些条可能是浅色或深色主题,具体取决于所选的系统设置。这只会在Android 应用程序被捕捉或最大化时发生,允许Android应用程序利用Windows中丰富的捕捉功能并集成到窗口模型中。
c. 其他调整大小注意事项
在更新Android应用以在Windows 11设备上运行时,还应考虑以下有关窗口管理和调整大小的问题:
- 初始启动大小
- 窗户尺寸
- 内容边界
- 自由调整大小
- 屏幕方向
按照Android文档中的窗口管理指南,了解有关如何针对桌面设备上的窗口大小调整方案进行优化的更多信息。
虚拟机生命周期注意事项
适用于Android的Windows子系统利用虚拟机(VM),该虚拟机提供与AOSP框架和键盘、鼠标、触摸、笔等设备的兼容性。
使用适用于Android的Windows子系统运行应用程序的VM有三种可能的状态:
- 运行中
- 轻量级休眠,在
3
分钟内没有应用活动后激活。由用户活动或应用程序通知停用。 - 停止运行,在
7
分钟内没有应用活动后激活。
这些状态之间的转换由用户活动触发,例如启动或与Android应用程序或应用程序通知交互。Android应用程序会在窗口最小化时暂停然后停止。
安卓应用的商店分发
为了在Windows 11设备上提供,必须向亚马逊应用商店发布Android应用程序。目前,只有微软和亚马逊选择的一小套应用程序可用。
开发人员应参考亚马逊设备定位指南,了解有关将APK定位到特定设备的信息。
编译通用安卓安装包
适用于安卓的Windows子系统内置了一个将ARM应用跑在X86架构的解决方案,但是这个仿真层将会带来额外的性能开销,为了获得最佳的性能,建议编译和发布时提交x86、X64架构的程序包。
关于安卓子系统的卸载说明
您可以卸载适用Android的Windows子系统,但请注意,所有关联的应用程序也将被卸载。
- 卸载"亚马逊应用商店"将卸载适用于Android的Windows子系统和所有其他亚马逊应用。
- 卸载"Amazon Appstore应用程序"只会卸载该应用程序(与Windows应用程序的行为相同)。
- 卸载"适用于Android的Windows子系统"将卸载Amazon Appstore和所有Amazon应用程序。
题外,Windows 10安装安卓子系统(WSA)
前面,我们下载了最新版的Win11安卓子系统(Windows Subsystem for Android™
)的安装包MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.32815.0_neutral_~_8wekyb3d8bbwe.msixbundle
,我们不直接双击它,我们用压缩软件打开它。
我们发现,这里面不过也就打包了X64和ARM两个架构的子安装包。
我们把其中的WsaPackage_1.7.32815.0_x64_Release-Nightly.msix
,单独解压出来。
然后我们再次通过压缩软件,把这个.msix
全部解压处理。
进入解压后的文件夹,然后找到其中的AppxManifest.xml
文件,找个编辑器打开它。
我们发现这里,从本质来说,其实就是靠Dependencies
节点下的这个Windows.Desktop
的这个最小版本10.0.22000.120
来限制安装的,我们直接改成Win10的版本号即可。
这里,以Window 10的最新长期支持版1809为例,所以它的最小版本号应该设置为10.0.17763.0
,修改之后保存。
然后我们在Capabilities
节点删除以下信息:
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability Name="runFullTrust" />
<rescap:Capability Name="unvirtualizedResources" />
<rescap:Capability Name="packagedServices" />
<rescap:Capability Name="localSystemServices" />
<rescap:Capability Name="packageManagement" />
<rescap:Capability Name="packageQuery" />
<!-- 删除 -->
<rescap:Capability Name="customInstallActions" />
<uap4:CustomCapability Name="Microsoft.classicAppInstaller_8wekyb3d8bbwe" />
</Capabilities>
然后在Extensions
节点删除以下信息:
<Extensions>
<!-- 删除 -->
<desktop6:Extension Category="windows.customInstall">
<desktop6:CustomInstall Folder="CustomInstall" desktop8:RunAsUser="true">
<desktop6:RepairActions>
<desktop6:RepairAction File="WsaSetup.exe" Name="Repair" Arguments="repair" />
</desktop6:RepairActions>
<desktop6:UninstallActions>
<desktop6:UninstallAction File="WsaSetup.exe" Name="Uninstall" Arguments="uninstall" />
</desktop6:UninstallActions>
</desktop6:CustomInstall>
</desktop6:Extension>
...
</Extensions>
接下来,我们用命令行的方式来安装它,这里需要指定这个AppxManifest.xml
文件进行安装,在开始菜单右键,以管理员权限运行你的PowerShell之类的Windows终端。
add-appxpackage -register "D:\Wsa\WsaPackage_1.7.32815.0_x64_Release-Nightly\AppxManifest.xml"
顺利的话,你就可以看到绿色图标的Win11安卓子系统(Windows Subsystem for Android™
)了
Windows 11 / WSA 爱好者交流群
参考
- Win11 安卓子系统要来了,微软宣布将面向 Beta 通道开启测试(附攻略)
- 微软发布“Win11 安卓子系统”开发者文档:亚马逊商店最初只有一小部分安卓程序可用
- 微软 Win11 安卓子系统已支持运行IT之家、支付宝等 APK 应用(附手动侧载安装教程攻略)
- Android调试桥
- SDK Platform Tools 版本说明
- 教你如何在 Windows 11 上运行 Android 应用程序
- 微软 Win11 子系统安装运行安卓 App 快速体验视频:性能良好,内存占用可控,可调整窗口大小
- Win11新工具,轻轻松松帮你安装任何安卓APK应用
- Windows Subsystem for Android™️
- Get started with native Android development on Windows
- Amazon and Microsoft announce next steps for bringing the Amazon Appstore to Windows customers