带你详解Win11兼容安卓的原理

  微软在Win11的发布会上宣称Win11能够兼容安卓应用程序,不过当时并没有详细的说明兼容的更多信息,相信很多用户也不是很了解Win11兼容安卓的原理吧,下面小编就为大家带来Win11兼容安卓的原理介绍,我们一起来看看吧。
  兼容安卓应用程序的功能有一个正式的名称,叫“Windows的安卓子系统”(WSA),看到这个名字,你应该大体上能明白这个功能是如何实现的了。Windows 10中带有一套“Windows的Linux子系统”(WSL),借助Hyper-V虚拟机在真正的Linux内核上运行Linux应用程序,实现兼容。(很多虚拟机运行在Host OS上,只能访问有限的资源,但是Hyper-V虚拟机不同,它允许Guest OS直接访问裸机硬件。)普通的安卓手机用的就是Linux内核,而微软在WSL上为WSA搭建了一个安卓框架。简单来说,就是在Hyper-V虚拟机上运行x86架构的安卓。

  这样的话,Windows下的安卓应用程序应该会像原生Windows应用程序一样,具有顶级窗口,可以通过点击任务栏图标打开,也可以固定到开始菜单。在展示的时候,微软人员说过“在这个功能背后,我们搞了一个代理原生应用程序,在安卓应用程序模型和Windows应用程序模型之间搭了一座桥。”这也就意味着Windows11可以给安卓应用程序提供开始菜单快捷方式、桌面图标、应用程序卸载列表条目以及其他可以让后者看起来更“Windows”的小壳子。(Windows套壳安卓实锤)

  根据用户计算机和应用程序可用性的不同,微软在新系统中会尽可能地少用甚至不用模拟。Windows和安卓都运行在x86和Arm架构上,Arm更适合安卓,而x86更适合Windows。如果你的Windows运行在Arm架构上,你想打开一个Arm架构安卓的应用程序,整个操作过程会很顺滑。如果你的Windows运行在x86架构上,你想打开一个安卓应用程序,微软会给你一个此程序的x86版本。如果没有x86版本可用,借助“英特尔桥接技术”,可以将Arm代码转换为x86 CPU可执行的代码。虽然名字里有英特尔,但是装有AMD CPU的电脑同样可以使用此功能。(AMD YES!)

  微软实现兼容的方法与其他兼容安卓应用程序的操作系统使用的方法很像。就拿Chrome OS来举例。Chrome OS本身带有Linux内核,开发人员在顶部堆叠了一个容器化的安卓框架,借此来运行安卓应用程序。在x86架构的Chromebook中,Chrome OS使用的就是安卓内置的Arm-to-x86转换。对于Linux桌面操作系统,安装Anbox也是为了同样的目的——在Linux上加载安卓框架。如今,你甚至能在WSL上运行Anbox。

  说起来x86架构的安卓,人们的记忆还停留在英特尔2012年推出的采用Atom芯片的x86手机,当时使用此芯片的华硕Zenfone直接被归为工业垃圾。之后,X86架构的安卓取得了长足的进步;2016年推出的安卓Chrome OS可以看作是X86架构的安卓发展的一座里程碑。在2016年之前,谷歌一直在推动Arm架构应用程序支持x86架构。谷歌开发工具也默认同时输出Arm和x86文件。2016年,谷歌预计Play Store中大约有25%的应用程序不支持x86架构,需要从Arm程序转换。到,随着Chrome OS普及,x86架构的客户群更大,需要转换的应用程序占比应该低了不少。

  亚马逊、Sideloading和非Google Play生态系统

  不过,微软并未在Windows上用Google Play生态系统。也没有尝试建立自己的安卓生态系统,而是与亚马逊合作,使用Fire OS设备使用的亚马逊应用商店。亚马逊发布了一份新闻稿,但是只说了稍后将发布更多细节,本身没有多少实质性内容。

  我们还没有亲眼看过在Windows11上安装安卓应用程序的完整过程,因此尚不清楚其中具体的运行模式。微软发布了几张截图,图片显示微软应用商店在推广亚马逊应用商店中的安卓应用程序。看起来亚马逊商店的应用程序评论、屏幕截图和说明会列在微软应用商店中,但微软应用商店似乎并不能真正安装安卓应用程序。关键就在这个“安装”按钮上。如果是Windows应用程序,按钮上显示的是“获取(Get)”,表明点了就会安装应用程序。但是如果是安卓应用程序,按钮上的内容完全不同——“从亚马逊应用商店获取应用程序(Get from Amazon App Store)”,还带有一个小框和一个箭头组成的小图标,表明点了会链接到一个外部的应用程序。

  《华尔街日报》给出了更详细的信息。亚马逊将为Windows做一个亚马逊应用商店客户端。你需要使用亚马逊帐户登录才能下载应用程序。微软应用商店只提供统一的应用程序搜索,不提供更多功能。这就意味着你的电脑上会有两个应用商店保持后台运行,有两个地方可以用来检查更新。这一点都不够“小而美”。

  微软工程师Miguel de Icaza证实,如果你不想用亚马逊应用商店,Windows 11也支持Sideloading。你可以选择F-Droid等开源商店,也可以选择安装APKMirror。过一段时间,可能就会有大佬让Windows11正常运行谷歌应用商店了。

  由于谷歌多年的默认设置和对额外架构支持的推动,谷歌应用商店中的X86应用程序很多。那么,亚马逊应用商店中的X86应用程序多不多呢?您可以在任何安卓设备上Sideloading亚马逊应用商店,但是专门使用此商店的Echo和Fire设备都是Arm架构。许多应用程序是通用的并且可以在所有架构上运行,所以。。.。。.也许亚马逊应用商店中的X86应用程序也有不少。

  如果微软推出一款Surface Duo,与谷歌合作在Windows11中运行正常的Play Store,那不就像王冰冰说她喜欢我一样爽?如果不从Play Store中下载安卓应用程序,就无法使用Google Play Services API,也就无法获取推送通知等内容。多年来,亚马逊一直在为Fire OS构建自己的替代API和云服务,如果你无法使用Google Play,那亚马逊就是你的不二之选。

  这就是我们目前了解的关系Windows11兼容安卓的全部内容。但是请放心,代码放出来后,我们将会进行更深入的研究。

推荐阅读