「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 應用。這聽起來似乎很簡單,但是應用的移植,做起來並沒有那麼容易。
事實上,此前為了擁抱 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 應用視為解決應用差距的一種解決方案。
假設微軟沒有取消 Latte 項目,或者 2021 年秋季正式發布了 Latte 項目,將 Android 應用程式引入 Windows 10 作業系統上,那麼 Windows 既能支持 Android,又有了 WSL 的基礎運行 Linux,那麼其將成為真正意義上的通用作業系統。
最後,如果真的在 2021 年秋季正式發布了 Latte 項目,將 Android 應用程式引入 Windows 10 作業系統上,那麼 Windows 既能支持 Android,又有了 WSL 的基礎運行 Linux,那麼其將成為真正意義上的通用作業系統。
對此,你怎麼看?
參考:
https://www.windowscentral.com/windows-10-project-latte-android-apps
https://arstechnica.com/gadgets/2020/11/report-microsoft-is-again-planning-android-app-support-for-windows-10/
https://www.zdnet.com/article/do-you-want-to-run-android-apps-on-windows-10-and-if-so-why/
☞美團回應「大數據殺熟」;Docker開發者預覽版支持M1晶片;GTK 4.0發布|極客頭條
☞HarmonyOS 手機應用開發者 Beta 版到來,對開發者意味著什麼
☞國內數據中心變革的見證者,揭秘阿里巴巴數據中心技術積澱
☞微軟收購 GitHub 兩年後,大咖共論開源新生態
☞紅帽 與 CentOS 之間的恩怨情仇
☞清華碩士分享思維導圖:機器學習所需的數學基礎