天下网吧 >> 网吧天地 >> 网吧行业 >> 网络追踪 >> 正文

安卓开源的真相:无法分支

2014-2-12不详佚名
:安卓开源的真相:无法分支

虽然是名义上的开源系统,但如果微软的手机采用Android系统,那将是个巨大的错误,诺基亚都不行,因为Google把Android做得无人可改。不止一次了,总有人跳出来「建议」微软采用Android,替换掉市场乏力的Windows Phone系统。这种口水文章估计将来也不会停。

说这话的人到底是人笨呢,还是心眼坏。Google这么多年来,已经把Android做成了本质上无法分支(fork)的软件,开源只是名义上的,对于其他手机厂来说毫无意义。没人能再fork出自己的Android,同时保证可用性,吸引大量的开发者和海量的软件

「微软该转Android」的论点是:Windows Phone平台没能吸引到足够的开发者投入精力,也没能为开发者创造收入,但是Android两者兼备。如果从Android fork出一个微软自己的系统来,微软就能一箭双雕——在Android上部署自己最擅长的服务,包括Exchange,Active Dictory和System Center或者InTune;给予消费者完整的office体验——并且替换掉Google的服务,完全基于自己的云套件(Bing搜索,Bing地图,Azure)。同时还能保留大量用户需要的Android应用。

按照这种逻辑,Android的丰富应用和巨大市场号召力会吸引消费者购买微软的产品,更多熟悉Android API的开发者会入场。微软的开发成本也会降低,因为核心的维护工作就让Google去做好了。

这种事情根本没法弄的原因在于,Android平台的正确用法不是这个样子的,Android本来就不是为了大家一起玩而设计的,它是一个Google控制的「庄家定规则的游戏」,随着Android的每一次新版本发布,Google正把这种想法变得更加不切实际。

代码开源不彻底

大体上说,Google写了两大坨代码。

第一坨是核心的Android开源平台(AOSP)底层代码,它提供了整个智能手机系统的基础骨架:包括一份Android专用的Linux内核,Dalvik虚拟机,和部分基础的用户界面(设置、消息面板、锁屏界面)。这部分代码以GPL和Apache的混合授权模式发布。虽然Google周期性地发布这部分的开源代码包,但被行业批评为「一副关起门来闷头搞」的不合作腔调。

第二坨称之为「Google服务套件(GMS)」。GMS又分为两大块:Google Play Services提供了海量的API和系统服务,包括Google地图,位置服务和内购功能;Google+集成;远程Wipe;恶意软件扫描等等。还有就是一些Google自己的软件:搜索,Gmail,Chrome浏览器,Gogole地图等。

GMS提供了很多重要的系统特性。而且GMS是闭源的。任何人可以拿到AOSP的代码编译好刷进任何一台手机。但是GMS可不能这么搞,为了获得GMS的授权,设备必须符合Google的硬件标准(性能,屏幕分辨率等等),而且必须通过Google的测试。虽然Google表示GMS套件是免费的,但测试是收费的,平均每部配置GMS套件的Android手机都得支付给Google 0.75美元的测试费。换句话说,除了最有用的部分,Android的确都开源的。

GMS也没法分割:如果手机要通过Google的测试,那么它必将装载上全部的Google软件。

而且对于开发者来说,AOSP和GSM也是水乳交融,分不清彼此。Google正慢慢地把越来越多的功能从AOSP从开源的AOSP迁徙到闭源的GMS里去。举个栗子,在五太子Nexus 5上,手机的界面——你用来显示图标和加载程序的核心功能已经滚到了GMS套件的Search组件里。

类似的,API也发生了相应的修改。比如AOSP本来是有一个位置服务的API可用,但GMS提供了一个很好,更新,提供更多功能的API。Google鼓励开发者用GMS里的API。AOPS里的那个老API从Android 1.5以后就没有更新过。这样造成的结果就是很多新的第三方Android软件其实很难说是Android的软件,其实它们更应该是GMS软件,离开闭源的GMS就没法工作。

Android的四种用法(只有一种是正确的)

对于手机厂来说,采用Android系统的方式一共有四种。

第一种就是Google希望各家采用的方式:同时使用AOPS和GMS。提交通过测试,装载全部Google的服务和应用套件。这就是三星,HTC和LG采用的方式。这条道路还是给手机厂留下了一些自定义的空间。OEM厂可以在Google应用以外,装载自己的相同的应用。但貌似Google对各厂在这点空间搞的花头也不满意了,有报道说Google和三星谈判,三星同意减少在手机界面上的各种奇葩修改,特别是移除与Google应用重复的其他应用。

这种方式因为提供了完整的AOPS和GMS的API,也就保证了最佳的软件兼容性。同时也最大程度地保证了Android系统的用户体验,不管各厂怎么折腾界面,Google的软件总是存在的,用户体验总是一致的。

这让Google也最大程度地保持自己对Android系统的控制力,而且这种控制力只会与日俱增。每一次新版本Android的发布,Google就会把更多的API弄到GMS套件里去,慢慢把AOSP上的肉一点点剃掉,只剩一个底层的骨架。

第二种极端做法,整个移除GMS服务包,基于AOSP开发一些粗制滥造的替代品。当然,这样做的结果,就是用户得到的体验会差很多,所谓能用就行了。在一些低端机上,很多厂家就是这么干的,特别是在中国市场。只要你敢用,厂家提供了自己的软件市场和各种替代软件,填平Google软件缺失所留下的空隙,但这些产品和采用GMS套件的手机比起来,在水准上要低很多,这些手机不兼容很多基于GMS开发的软件,而且数量不少,比如很多软件依赖GMS的内购功能。

第三种做法介于第一种和第二种之间:发布基于AOSP的设备,但是开发与GMS一样的API以保证兼容性,比如GPS和地图服务,但是基于微软而不是Google的。很少有厂家选择这条道路,最接近这种做法的只有Amazon,它们提供了GMS API的替代方案(特别是地图服务),但完全没法跟上Google的开发迭代速度。

是从技术上说,如果一家公司足够土豪心,豹子胆,完全开发出自己的API,整个端掉GMS,这代价也绝对没法让人淡定。特别是为了保证兼容性,这活不光是提供与GMS想通的功能,还包括提供和GMS提供的开发框架和开发者工具。

另外,GMS还有一些无法替代的东西,比如「Google+分享」,很少有公司能提供能与之匹敌的替代方案。又比如,GMS里有一个API提供了多人回合游戏功能,虽然厂家可以提供自己的API,并建设自己的后台硬件支持回合制游戏服务,但显然这完全脱离GMS的做法,无法让游戏开发者接受。

更不

本文来源:不详 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行