「Write once,Run anywhere.」
移动开发时代,这句话曾成为很多开发者梦寐以求的愿望,这也是 Flutter、React Native 等诸多跨平台工具出现的根本原因。但是彼时所谓跨平台跨更多的是 Android 和 iOS 平台。
那如果,Android 代码放到桌面操作系统 Windows 上是否能够运行?
或许在不久的将来,一切皆有可能。
近日,据 Windows Central 报道,微软正在研究一种能在 Windows 10 上运行 Android 应用程序的方法,且无需修改任何代码,同时,将 Android 应用程序打包成 MSIX 文件,Windows 应用商店可对此进行分发。而对于这一项目,据外媒透露,微软内部将其称之为“Project Latte”,也有知情人士称,这一项目最早将在 2021 年上线。
WSL 或支持 Android 应用程序
在 Windows 桌面操作系统下,作为用户的你可以轻松玩转 Android 应用。这听起来似乎很简单,但是应用的移植,做起来并没有那么容易,从苹果秘密自研 M1 芯片多年就可以看出。
事实上,此前为了拥抱 Linux,微软带来了黑科技——WSL(Windows 下的 Linux 子系统)。在去年的微软 Build 2019 上,微软正式发布了 WSL 2,它基于 Hyper-V 功能的子集提供了“真正的 Linux 内核”。通过 WSL 2,开发者可以轻松地使用 Windows 命令行访问 Linux 文件系统。另外,微软还在测试使用 WSL 2 支持 Linux GUI 应用程序以及提供 GPU 加速支持。
因此,Android 应用程序如果想要在 Windows 10 上运行,那么,基于 Linux 内核的 Android 有望会被插入 WSL 中,而这一举措的前提是,微软需要实现一个版本的 Android Runtime(ART),它必须拥有开源、可在 Linux 上运行、x86 兼容等特性。对此,也有网友已经开始抢先尝试中,并构建了一个名为 Anbox 的项目,它可以在 WSL 上运行 Android 应用程序(https://www.reddit.com/r/bashonubuntuonwindows/comments/eofn5s/run_anbox_on_wsl_2/)。
微软过往的“搭桥”计划
如果了解微软的从业者或许知道,这并非微软首次尝试将 Android 应用程序跑在 Windows 上。
还记得几年前,微软曾面向开发者带来过“搭桥”计划,彼时一共有四大项目:
Project Westminster——用于移植 Web 应用程序
Project Centennial——用于移植 Win 32 应用程序
Project Islandwood——用于移植 iOS 应用程序
Project Astoria——用于移植 Android 应用程序
微软此举的目的是,想要弥补 Windows 和 Windows Phone 上的“应用差距”。这样一平台可以运行多种程序,看起来对用户有益而无害,但是万万没想到的是引发当时一大批 Windows 开发者的不满。而不满的原因主要归根于在 Windows 平台上用于运行 Android 应用程序的 Astoria 项目。
对于 Astoria 项目,微软官方曾经公开的消息并不多。但是据外媒报道,Astoria 相当于一个 Android 模拟器,用户可以使用移动手机直接运行 Android APK 文件,而不需要开发者多做一些其他的工作。不过,有不少人认为,这项目一旦普及开,不仅会让应用程序盗版变得更加容易,而且还削弱了 Windows 开发人员的利益,因为 Android 应用程序可以轻松的在 Windows 上运行,那么 Windows 开发者的饭碗可能不保,毕竟也没有理由再去开发本地的 Windows 应用程序。
正因此,Astoria 项目一直没有公开测试,后来也因 Astoria 项目直接相当于一个 Android 虚拟机,这样容易带来技术纠纷以及也存在一些法律潜在隐患,最终这一项目被微软搁置直至后来被取消。如今微软决定再新造 Project Latte 项目,并提供类似的功能,这不禁让我们好奇,微软做好了哪些准备?
Windows 为什么要支持 Android?
近几年来,微软各种内外部的大动作无不在彰显自己正在加快数字化转型的步伐。
面向内部,2018 年,微软 CEO 纳德拉宣布,公司迎来重大重组计划,建两个新部门,即“体验与设备”部门和“云计算与人工智能平台”部门。根据职能划分,体验与设备部门涵盖 Windows、Office 及微软 365 相关第三方应用和设备体验。AI 与云计算部门将推动分布式计算(云计算及边缘计算)、AI 技术的商业化应用。这一重组动作也被外界解读为 Windows 作为微软曾经的顶梁柱业务正逐步被边缘化。
面向外部,微软以 75 亿美元收购 GitHub、拥抱 Linux、深度参与开源,我们正亲眼见证着微软的改变。
正是在这样的改变中,和过去相比,现在 Windows 用户量虽然依旧庞大,但聚焦于创建 UWP 应用程序的 Windows 开发者也所剩无几。
因此微软想要让 Windows 10 支持 Android 应用程序,一方面,或是为弥补微软应用商店“应用空白”。 此外,为了让开发者能够更专注并降低开发成本,在今年 Build 2020 上,微软发布了团圆计划(Project Reunion),该项目主要是统一 Win 32 程序(旧版 Windows API)和 UWP 应用的 API,并通过注入 NuGet 之类的工具将其与系统分开运行,旨在让开发者在 Windows 10 设备上统一应用程序开发。
另一方面,更好构建自己的核心竞争力。
几年前,微软开始开发一个简化和封闭的 Windows 版本 Windows 10X,它是一款双屏设备操作系统,同时也支持传统笔记本电脑。针对 Windows 10X,微软一直将其战略定位为 Chrome 操作系统的竞争者,尤其是在教育和企业市场上。
作为 Google 的产品,以 ChromeOS 为基础的 Chromebook 可以运行 Android 应用,因此 Windows 10X 电脑或也会支持 Android 应用程序。
其他人做的一些尝试
在业界的经验积累方面,实际上,微软也并不是第一个想用自己的操作系统支持 Android 应用程序的企业。
正如上文所述,Google 在研发 Chrome 操作系统中,用户使用 Google Play 商店可以在多款 Google Chromebook 上安装 Android 应用程序。
此外,RIM 公司(黑莓手机制造商)曾试图在黑莓 10 系统中增加对 Android 程序的支持,以增强自己在 OS 市场的竞争力,但是它最终放弃了;曾有着“Android 杀手”的三星的 Tizen 操作系统具有“应用程序兼容性层”,可在基于 Linux 的操作系统上运行 Android 应用程序。对于不少企业而言,通常将 Android 应用视为解决应用差距的一种解决方案。
最后,如果真的在 2021 年秋季正式发布了 Latte 项目,将 Android 应用程序引入 Windows 10 操作系统上,那么 Windows 既能支持 Android,又有了 WSL 的基础运行 Linux,那么其将成为真正意义上的通用操作系统。