文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处:http://blog.csdn.net/flowingflying/
从VisionMobile找到了这篇Google对Android的铁腕控制:控制开源无所不用其极,发表日期:2013.10.21。这篇文章很长,如果逐行翻译就需要耗费太多的时间,因此采用笔记的方式,将关键的内容记录下来。
转向封闭
2007年,google推出Android以对抗iPhone,避免移动被单厂家垄断,一旦iPhone停止用Google Search,人们可能连desktop上的Google Search也停止使用。当时,Google在移动领域上无任何立足点,以开源的方式推出,将Android作为Google Service在移动的*木马。
但现在情况有所变化,零起步的Android已占据智能手机市场的八成,但是Android取胜不等于Google取胜,由于Android是免费的,可以在上进行分支。从Windows Phone和BB10的困境可知,应用选择是移动市场的一切。而分支版本只需提供自己的应用商店就可以兼容Android百万计的应用,这威胁到Google在智能手机的统治地位。
有些公司正将Google从Android中剥离,例如Amazon的Kindle Fire,提供自己的应用商店、内容商店、浏览器、云存储、电子邮件。整个*也去除了Google部分,因为大部分的Google服务被禁止,只能进行替代。他们利用了Google的Android代码,但Google无法从中获利。
开始一无所有时可以放弃一些东西,当成为老大时,要维护自身利益,开源就不那么受欢迎,但此时开源已经很难再装会瓶子,问题就成了:如何控制一个开源项目。
Android有开源的AOSP和封闭的Google应用组成。Google不可能将整个Android封闭,它的方式是将越来越多的应用移入闭源部分。
最初这些应用是Google的在线服务,如Gmail,Map,Talk和YouTube。最初,Android没有市场份额,Google保留这些应用,让其余的Android作为开源项目。当Android成为移动巨人时,Google需要更多地控制公众源代码。对于一些AOSP应用,一旦私有版本出现,AOSP的版本将停止发展。虽然不能去掉一个开源应用,但所有新开发移入闭源,原来的AOSP应用将慢慢被丢弃。
以Search应用为例。在2010年8月,Google推出Voice Actions,并在Google Search中加入,没有放在AOSP,而是放在当时的Android Market。当时Android的版本是Froyo(Android 2.2),此后,AOSP的Search就一直没有变化,而Google Search如今已提供语音搜索、音频搜索、文本到语音、回答服务以及Google Now(一个预测助手),AOSP的Search仍停留在当初的web和本地搜索。一旦Google有了闭源应用,马上会放弃开源版本。
Google在2010年的Google I/O大会中推出云音乐服务的demo,这也是AOSP music应用冻结之日。Play Music可以访问Google云音乐存储,海量音乐和订购选择,同时修改UI设计,增加均衡器等。它们曾是一样,如今已很不一样了。
Google日历最近才转入封闭的,如今可在Google Play中下载。由于最近才分裂,两个版本间没有太大的差异。Google日历的图标更好看,可以在不同设备中同步通知。预计AOSP日历以后不会有任何的更新。
甚至键盘也转为封闭。几个月之前,Google发布类似Swype那样的手势输入,即Play Store中Google Keyboard。相关的源代码并不在AOSP中。
Google Hangouts还没有正式推出。人们希望向iMessage那样集成到短信中。果真如此,会将Android SMS功能转为闭源的应用,如是,AOSP短信应用将被抛弃,而事实上在Android 4.0之后没有显著的更新。
Google正在降低开源代码库的价值,控制应用并非其唯一做的事。Google的影响来自Google应用的控制,Gmail,Maps,Google Now,Hangouts,YouTube和Play Store,这些都是杀手级应用。大大小小的制造商要在他们的手机上加上这些应用,需要得到Google的许可。
锁定OEM
获得Google Apps的许可需要通过Google的兼容性测试,以保证Play Store所有的应用可以在设备上运行。现在Google已经提供自动测试工具,但是要获得Google应用许可还需要非公开协议和秘密合同。
加入OHA(Open Handset Alliance)会更为容易获得许可,然而OHA条款是卖身契,要保证设备不运行与Android竞争的分支版本。Acer要运行阿里云OS,Google听到风声后就威胁Acer失去Google app。Google在blog中写道“尽管对任何人用Android仍然是免费,只有Android兼容设备可以从整个Android生态系统中获益。通过加入OHA,每个成员都致力于建立一个Android平台,而不是一堆不兼容版本。”
Amazon的Kindle Fore算是个不兼容版本,因此制造商的选择余地不多,目前是广达(主要生产手提电脑)。
对于OEM,OHA条款使之不能慢慢从Google Android过渡到分支,你的设备一旦运行竞争性分支版本,就立马被踢出Android大家庭,没有回头路。
另一个有力的控制是Google应用是打包授权的,你如果要Gmail和地图,就必须也要Goolge Play Service,Google+以及所有的Google认为要有的。Skyhook在Android上开发了具有竞争力的位置服务,切换到Skyhook服务使Google不能再从用户中收集地理数据,这显然对Google不利,因此Google就宣布Skyhook是“不兼容”,因此需要Google应用的OEM就不允许安装Skyhook。Skyhook提起诉讼,官司还在进行中。
要无视Google的存在,又避免雷霆之怒,就要提供所有Google应用替代,OEM厂家开始复制所有的Google核心应用,看看围墙花园外的世界有多艰难。
就此,三星做的特别好,有它自己的用户帐号系统,后端同步和应用商店,它维护着最全的Google应用的替代,包括Internet,E-mail,日历这些在AOSP的但已被Google抛弃的应用,三星继续在上面增加新功能。
对于有Google应用的手机有两个日历,从用户角度看来多余和令人迷惑,但是很多OEM将只作为重要的战略后备,作为计划B。如果Google有一日将某些OEM依赖的东西移走,OEM需要提供给他们的客户。有些客户甚至更喜欢核心应用的OEM版本。
重制Google应用只是摆脱Google生态系统的一部分,OEM真正需要的是庞大的第三方应用选择。Google知道这是他最大的弱点,所以要让应用生态系统同样依赖于Google。
锁定第三方开发
Play Services是Google应用许可的一部分,也从开源移向闭源,确保第三方开发者依赖于Google专有的API。Google API向Play Services转移,是将Android应用生态系统转向“Google Play生态系统”,开发者在Google许可的设备上很容易进行开发,但在非Google许可的设备上变得困难。
Google的Android在Android市场比例很高,而开发者真正关心的是应用如何容易开发,如何更加优秀,并有广泛的受众。Google API能满足这些,但是副作用就是,你的应用要在有Google应用许可设备上运行。
Google Map API允许你在应用中使用Google地图数据,但这是Google Services的一部分,而不是Android的。为此,Amazon*从Nokia中授权获得数据,并提供Google Map API的兼容支持。Amazon要么向Nokia支付许可费,要么自己提供地图服务,还要跟上Google要命的开发速度。Amazon的Map API支持Google Maps API v1,但是Google已经升级到v2,目前Amazon还不能支持。
Google Cloud Messaging(GCM)在I/O 2013加入Play Services,用于推送消息,现在还提供了向上推送,用于在不同设备中同步消息。Google地图可能只被一小部分应用所使用,但是很多应用都可能需要消息推送,Amazon不得不推出“Amazon Device Messaging”,不是所有GCM都一定能在Amazon的版本中运行,需要开发者额外的工作。
位置API:在Google I/O 2013年中Google改造了Android位置APIs,并将它们作为Google Play Services的一部分,也就是闭源了。增加的功能包括Fused Location Provider(完全从写了Android的位置算法),Geofencing(地理围栏,定义地图的位置,当用户进入时会在应用中触发事件),以及Activity recognition(活动识别,无需打开GPS,判断用户是在步行、骑车还是开车)。将地图API和Google Cloud Message作为私有应用还能说得过去,因为依赖Google服务,但是移走整个位置堆栈就是Google的霸权。现在有两种方式获取位置:好的、低功耗的、闭源的Google API,或者是蹩脚的、费电的开源的Android API。
应用内购买是通过Google Play Store提供的,如果应用在Kindle或者在中国运行,需要另找方案,例如使用Amazon的In-App Purchasing API。三星也在两年前提供了应用内购买。
Play Games也是私有API,可以很容易访问用户帐号、排行榜、成绩、云存贮,反盗版和实时多玩家,支持Web应用、iOS和Android,但是就是不支持AOSP。Amazon有一组游戏API称为“GameCircle”,但不象Amazon地图API那样进行简单替代,开发者需要花费时间分离多玩家实现工作。
另一个关键的Google策略是90%的Google API也支持iOS。那么对于开发者而言,Google解决方案提供一流可用性和功能,并且容易部署。Google支持这两大主要移动平台,对你潜在用户群有着最大的覆盖,但是不能在Android分支中使用,开发者如何选择很显而易见。分叉Android提供的解决方案如果不能很好地替代,开发者会发现功能欠缺,相比iOS和Google的Android庞大的用户,这些用户是少量的,那还是否值得开发者花费时间和精力。
Amazon可以离开Google,但是三星不可以。Amazon是Goolge API的复印机,但三星对依赖Google的第三方开发者没有太多办法(例如没有地图API,没有云消息API)。Amazon是互联网公司,服务器和软件是它强项,提供云服务的挑战并不太大,但对三星电子而言,建立云基础设施和提供API不是它的DNA,要跟随Google非常困难。当然,三星也取得一点进展,如提供应用内购买SDK,还有广告SDK。
可见不可触的开放
如果一个公司要分支Android,需要提供替代的应用和API,还要说服用户从Google的Android转到你的分支Android上。
Google的资源都是内部的,地图和其他云服务对他而言基本上是免费的。但是Amazon需要支付Nokia地图的许可。这在成本上存在很大的不同。
如果一个公司能成功分支Android,并有Google生态系统外的吸引人之处,但是任何厂家生产这样的设备是被合同(OHA)禁止的,OEM跳出Google生态系统的麻烦和风险会使之不值得这样去坐。(Wei:OHA怎么看都应该受到反垄断法的制裁)
尽管Android是开放的,但这是可见不可触。你可以提交贡献,可以作为发烧友来用,但是在所有的地方,如果没有Google的祝福,任何人都禁止使用,当你试图做某些Google不允许的事,Google会让你的世界坍塌。
相关链接:我的产业生态链和杂谈文章