无题/Windows11是如何运行安卓应用的

Created Thu, 01 Jul 2021 15:25:32 +0800 Modified Wed, 13 Dec 2023 07:03:38 +0000
2481 Words

本文翻译自arstechnica

微软在发布Windows11时公布了一个令人惊喜的东西,Windows11将支持Win应用和安卓应用同时运行。但是,并没有在关键的地方留下太多的信息。这些应用是否是通过模拟器运行的呢?现存与Windows的Linux子系统将会被放弃吗?我们将在这篇文章得到答案,同时感谢以下开发者探讨这些细节。

微软官方将这个功能称之为“为安卓而生的Windows子系统”,这也向你说明了许多关于它如何工作的信息。Windows目前拥有一个Linux子系统(WSL),它使用Windows下的Hyper-V虚拟机的功能让Windows能在一个独立的环境下使用一个真正意义上的Linux系统来运行Linux应用。(Hyper-V让次系统能够访问宿主机的硬件而不是通过在原生资源上套用一个顶层的管理操作系统从而只能使用少数宿主机资源)。一个现实中的安卓手机运行的是Linux内核,而微软正在为Windows的安卓子系统建立一个基于WSL的安卓框架。这看上去非常类似于在Hyper-V虚拟机中运行x86架构的安卓系统。

在Windows下运行安卓应用就如同在原生机器上运行Windwos原生应用一样,顶层有窗口栏,任务图标,并且可以“钉”在开始菜单中。在发布会中,微软说:“在屏幕背后,我们还创建栏一个代理应用用于处理安卓运行和Windows引用之间的交互”。这大概可以推测,系统将会提供类似于启动快捷键、图标和卸载入口,并且其窗口化的模式让应用看起来像原生应用一样。

微软正在尝试通过类似于小型模拟器或不基于模拟器的形式来实现这个功能,而这一切取决于你的电脑和应用兼容性。Windows系统和安卓系统都能在x86架构和arm架构下运行,但安卓更倾向于Arm而Windows倾向于x86.如果你正在使用Arm架构的Windows并想在Windows上运行安卓应用,一切都可能非常顺利。但如果你使用的是x86的Windows,微软在像方法让你能够使用到x86类型的安卓应用。Arm的应用只需要支持一件东西,那就是"Intel Bridge Technology",该技术的目的就是能让arm架构的代码转化为x86架构能够运行的代码。微软正在寻求在AMD处理器上能够实现相同功能的方法。

微软的方法类似于其他一些操作系统如何启动和运行Android应用程序。ChromeOS的安卓支持可能是最适合的例子了。ChromeOS运行在Linux内核之中,并且它存储了一个容器化的安卓框架来运行应用。如果你有一个x86架构的ChromeBook,ChromeOS会使用安卓的Arm-to-x86编译版本。如果你使用的是Linux桌面系统,有一个名为Anbox的应用将会帮你完成上述一样的事情,在Linux系统之上加载一个安卓框架。你甚至能在WSL中运行Anbox。

许多人上一次体验x86的安卓还是在2012年时,intel推行的Atom-powered的x86架构手机。X86已经走了一段很久的历史了,直到2016年安卓ChromeOS开始,才让其缓了一口气。甚至在2016年启动之前,谷歌还在减少推送x86架构的app支持,并且谷歌开发者工具也将arm和x86分离。回到2016年,谷歌希望25%的商城应用不再需要去支持x86架构而是转向arm应用。现如今,众多的x86用户需要感谢chromeos来让其能够运行安卓应用。

亚马逊,区别于谷歌商店的市场系统

微软并不会在Windows上使用谷歌市场,同时,微软也并不会尝试自己来建立经济市场而是通过合作伙伴亚马逊,用在FireOs设备上的亚马逊市场来进行安卓应用下载。亚马逊已经推出来一个预览版本,但并没有提供一个准确的稳定性版本开放日期。

我们并没有看到一个安卓应用是如何在Windows上启动和关闭的,所以并不清楚它们是如何在Windows上工作地。微软放出了很多截图,展示来微软商店在推送亚马逊App商店的安卓应用。从这些放出的消息来看,亚马逊App已经内置于Windows之中,但并没有看到微软商店能够直接安装安装应用。关键点就是安装按钮,对于Windows应用,安装按钮显示的是"Get"来表明安装一个应用。对于安卓应用来说,则显示的是"从亚马逊商店中获得",并且使用来一个小盒子和箭头图标来表示,这代表你将会通过另一个额外的应用来获取该安卓应用。

华尔街提供了一个额外的细节来展示其是如何工作的。这听起来就像是亚马逊在给Windows提供了一个亚马逊商城客户端。你只需要登录你的亚马逊帐号,就可以下载应用了。微软上面只提供了搜索的功能。确切来说,这表明你将会在Windows上同时运行两个应用商店,使用两份空间来检查更新。这看上去并不稳定。

微软工程师Miguel de Icaza确认,Windows11将会通过sideloading技术来支持那些我们不需要的亚马逊功能。您应该立即为F-Droid等开源商店提供选项,以及在APKMIRROR应用上加载的能力。 在有人获得整个Google Play商店工作之前,这可能只是时间问题。

由于多年的默认和推动加上额外的架构支持,X86应用程序普遍存在于Google商店中。但是亚马逊App商店X86普遍存在吗?你可以在任何安卓设备上侧载亚马逊应用商店,但专门使用Amazon的Echo File设备的都是ARM。许多应用程序都已经开发完成并在所有架构上运行,所以……也许。

如果微软撤回了Surface Duo并与Google一起使用的Windows 11中的实际Play商店会很好。在Play商店外使用Android的问题是您丢失对Google Play服务API的访问和推送通知。亚马逊一直在为Fire操作系统构建自己的替代API和云服务,如果你不能拥有Google Play,这是下一个最好的事情。

这就是我们现在在Windows 11 Android兼容性上所拥有的一切。但放心,我们会在一些实际代码出来时更深入的探究。