Google 让 Chrome OS 运行 Android app 的想法早已有之,并在去年的 9 月份付诸行动,推出了 App Runtime for Chrome,简称 ARC,是一个运行在 Chrome OS 上的 Android 虚拟机,它本身是一个 Chrome Web 商店的应用程序,名为 ARC Welder。
在此前,这个功能只开放给了部分与 Google 合作密切的开发者,不过,大神们很快挖掘出了 ARC 的巨大潜力:可以运行在所有桌面版的 Chrome 上,包括 Chrome OS,Windows,Mac OS X 以及 Linux。这也就意味着,Google 在规划着将 Android app 运行在所有的计算平台之上。经过数月的前期准备之后,Google 终于决定迈出这一步了。
Google 日前已经决定将 ARC 开放给所有开发者使用,并且 ARC 在 Chrome OS 和 Chrome 浏览器中均可以运行。对于 PC 用户来说,Chrome 浏览器版本在 40.0 以上的用户都可以使用,原则上任何人都可以提交一个 APK 文件到 ARC Welder 上,然后生成一个 Chrome app,但是我在将微信和爱范儿客户端安装包上传时,尝试多次都失败了,ARC Welder 直接闪退。
从 Ars Technica 的文章中我们也了解到,ARC 功能的实现,以及 Chrome app 和插件的流畅运行要归功于 Chrome 的 NaCL 沙箱技术——Native Client,可以让 app 和插件以近似于本地应用的方式去调用系统的 CPU 和 GPU 资源,同时也把 Chrome 变成了一个开发平台。Google 为 NaCL 灌入了完整的 Android 堆栈,这让 Chrome 浏览器运行 Android app 成为可能。
Chrome 浏览器运行 Android app,***的挑战在于兼容 Android 应用所依赖的 Google Play 服务 API。从官方公布的信息中来看,ARC并未实现对全部 API 接口的兼容,不过主要的几项已经得到了支持:
Auth (OAuth2)
GCM
Google+ sign-in
Maps
Location
Ads
此外,为了防止像我这样玩心很重的用户,Google 在开发者控制面板中设置了 ARC Google Play 服务选项,让开发者去决定是否开启。
简单了解 ARC 之后不难发现,它可以实现 Android app 的跨平台运行,这一点甚至要比 Windows 10 所支持的 Universal Windows App 走得更远。借着 Chrome 浏览器,ARC 已经将触角伸到了几乎所有的平台之上,与此同时,它也利用了庞大的 Android 生态激活 Chrome Web Store,为 Chrome 用户带来更多的扩展程序,用户在多平台间的体验也会更加顺畅和无缝化。
不过,ARC 目前处在开放测试阶段,还有不少需要改进的地方,比如 ARC 是基于 Android 4.4 之前版本使用的 Dalvik 虚拟机,而不是 Android 5.0 所启用的 ART,Google Play 服务的 API 接口支持还不够丰富,不支持应用内购等重要功能。