不要再劝微软入Android坑了

Android

越来越多的人开始建议微软放弃 Windows Phone 操作系统,转投 Android 大本营。本文不是第一篇就这件事进行评论的文章,当然也不可能是最后一篇。

这种想法烂透了。Google 已经把 Android 操作系统做的功能完善,其他企业无法使用,如果微软要转投 Android 阵营,利用 Android 的优势,就意味着要放弃 wp 开发者,放弃 wp 应用。

人们讨论“微软加入 Android 阵营”的一些理由有:Windows Phone 没有强大的开发者来形成巨大的购买力,但是 Android 平台有。如果加入 Android,微软可以通过提供 Exchange、System Center、Office 等内容为用户提供独一无二的价值,还可以为用户提供统一的 Bing、Azure、Skydrive 云服务。但是同时,用户还是可以用 Android 的其他应用。

结果应该是一个平台应该或多或少地对消费者来言有吸引力,即 Android 的品牌和 Android 的应用,以及借助 Android API 的开发者,而且系统核心都由 Google 开发,微软的开发成本降低。

但这些理由并不足以说明转向 Android 是一个很好的做法。实际上 Google 每次发布新版 Android 操作系统,Google 的控制权就越来越大。

并非完全开源

从大处来说,Google 的 Android 有两套代码。

第一套是 Android Open Source Platform(Android 开源平台)代码,它包含 Android 操作系统的基本构架:Android 版本的 Linux 核心、Dalvik 虚拟机、基本的用户界面。这一部分是基于 GPL、Apache 联合授权的,免费开源。Google 会阶段性地放出开源部分的代码,但是总是比最新版的要慢。

第二部分代码被叫做 Google Mobile Services(GMS,Google 移动服务,有时也叫做 Google Play 或 Google Play Apps。)。Google Play Services 提供了丰富的 API 接口和系统服务,API 有 Google 地图、地理位置、应用内购买,Google+集成、远程抹除数据、恶意软件扫描等。还包括搜索、Gmail、Chrome、Maps 等应用程序。

GMS 包含一些重要的特性。这一部分并非开源,如果手机上只有 AOSP 系统,它将不包含 GMS。如果厂商向使用 GMS 就必须获得认证,然后付费购买授权,每台授权费为 0.75 美元。而且厂商无法变更 GMS。如果手机通过了 GMS 认证并且安装了 GMS,这部分代码和应用的所有内容都会进入手机上。

Android 是开源的(除了那些好用的东西)

AOSP 和 GMS 的分裂是在不断进行的。Google 开始慢慢地为 GMS 融入更多功能。在最新的 Nexus 5 中,手机核心用户界面加入了 GMS 搜索应用。

而且,API 方面也有不同。AOPS 包含地理位置 API,但是 GMS 的地理位置 API 更新更好,而且还多了很多新特性。Google 鼓励开发者使用 GMS 的 API,AOSP 的地理位置 API 还是 Android 1.0 时代的 API,从 Android 1.5 之后就没有变过。这就导致第三方应用程序已经不再是 Android 应用,而是 GMS 应用,如果没有 GMS,这些程序运行起来不兼容。

做 Android 的 4 种方式

硬件厂商可以通过以下 4 种方式在手机上使用 Android 系统:

第一种是 Google 想让厂商用 Android:提供 AOSP 和 GMS。通过认证之后,手机中预装所有 Google 服务和应用。三星、HTC、和 LG 就是通过这种途径来使用 Android 系统的,而且还能获得厂商自定义功能,在手机上预装自己开发的应用。但是最近 Google 因为三星抄袭自家应用而不爽,最后三星承诺不再抄袭 Google 应用。这种方式可以为第三方应用程序提供最佳的兼容性,确保使用 AOSP 和 GMS API 的应用程序都能使用。还能提供最连续的体验,虽然厂家会自定义内容,但是还是保留了 Google 的所有应用。这种途径还能使 Google 获得最大的控制权,而且控制权只增不减。只要版本更新,Google 就会在 GMS 移入更多功能,让 AOSP 只剩下一个空架子。

第二种方法就是完全忽视 GMS,只留下 AOSP。只给手机使用 AOSP 和一些厂家自定义软件,可能会给用户带来不一样的体验。在低端手机市场上,厂家都是这样做的,尤其是在中国。如果厂家只用 AOSP,厂家就要提供自己的应用商店和服务来填补 GMS 的缺失,但是对于 GMS 兼容的应用程序,这些厂家生产的手机就有些无能为力了。兼容 GMS 的应用数量不少,因为一些关键特性都是 GMS 上独有的,比如说应用内购买。

第三种选择就是为设备搭载 AOSP,同时也提供和 GMS 服务一样的服务、相似的 API。比如说为手机提供跟 GMS 里相似的地理位置、地图 API,比如把微软的服务换成 Google 的服务。到目前为止还没有企业做到这种水平,最接近的是亚马逊,它的深度定制 Android 系统已经提供了不少可以取代 GMS 服务的内容,但是许多地方还是得使用 GSM。技术上来讲,一家拥有足够开发资源的企业可以提供自己的 GMS 替代方案。但是很难,替代方案不仅要复制 GMS 的准确功能,还要能应对 GMS 的 bug 和错误。另外,照抄 GMS 还要注意是否会侵权,如果 Google 认为厂商的替代方案涉嫌抄袭,肯定会告上法庭的。

第四种方法:使用 AOSP 提供基本服务(硬件、电话等),然后在这个平台上开发一整套全新的平台和 API。亚马逊的 API 支持可以放到这个类别中,亚马逊的一些 API 已经完全取代了 GMS 的 API,但也存在不兼容 GMS 应用的情况。但现在还不清楚是否由企业已经准备开始这么做,或许 Ubuntu for Android 可以做到这一步。

兼容性和控制权,二者不可兼得

只有第一种方法可以提供完整的 Android 体验,只有在这种平台上开发者才能充分展示自己的能力,才能确保 Android 应用的完整兼容性。然而微软绝对不可能选择这种途径,即使微软愿意这么做,Google 也不愿意这么做。

第二种方法或许微软可以使用,它可以支持部分 Android 应用,但并不所有 Android 应用。一些需要应用内付费的应用可能跟微软无缘,而这些大都是热门应用。但是一个这也不兼容,那也不兼容的系统平台,真的可用吗?

诺基亚谣传的 Android 手机可能就是用的第二种方法,只用 AOSP 做底层,用诺基亚服务取代 Google 的服务。上面说过了,这种方法只能是针对低端市场,对兼容性要求不高的市场,但是对微软来说,这种方法就不可取了:微软的平台一定要是最新的,能运行最好的应用程序的。所以第二种方法,放弃。

Google 费了那么大劲把 GMS 做得那么出色,没有了 GMS 的 Android 即使有替代方案,也会出现各种漏洞,给用户带来不良的体验。所以只用开源的方法是不行的。

亚马逊的 Kindle 就很能说明问题。Kindle 上永远得不到最新、最好的游戏,因为开发者还得再用亚马逊的 API 开发一遍应用程序,即使亚马逊的 API 和 Google 的 API 很像。换句话说,Windows Phone 上应用程序少的问题是无法通过 AOSP 来解决的。所以微软必须要用 GMS 平台。

第三种方法,即 AOSP+GMS 代替品的方法可以解决这个问题,但是也会给开发者带来问题。GMS 替代品能满足 GMS 开发时的兼容问题,而且还可以还能运行纯 AOSP 应用。

但是这项工程很大。对于微软来说,在 AOSP 上再开发一个跟 GMS 一样的服务,跟在 Windows Phone 上开发 API 难度一样大。但是也有好消息,微软已经有开发好的应用程序,比如说 IE 浏览器,就可以直接替代 AOSP 上的浏览器。但是有些应用程序必须使用 GMS 的 API,第三种方法就必须加入这一部分 API,这样 Google 还是对这一平台有控制权。

第四种方法,使用 AOSP+全新的软件平台。这种方法给厂商自由和灵活度,但是结果呢?系统核心不再是最重要的内容了,因为微软已经有自己的智能手机系统核心,Windows Phone 8 正在用着呢。

放弃转阵营的念头吧

如果说 Android 真的像 Firefox OS 或者 Ubuntu 智能手机版一样开源的话,转换阵营的事就说得通了。所有的内容都是开源的,厂商不必大费周章去找替代品,也不用再考虑兼容问题。

但实际情况并非如此,Android 平台非但不开源,Google 还在加紧控制这个平台。厂商如果想使用 Android 平台,就得在这两个选项之间做个选择:让 Google 控制并获得所有 Google 应用,或让厂家自己控制。

Android 绝对不可能适合微软。GMS 的存在,就是 Google 独享 Android 的最佳例证。那些一直在建议微软 Windows phone 转投 Google Android 平台的人,一定是对 Google 不了解的人。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注