`

最封闭的开源系统:话说 Android 的八宗罪

阅读更多

 你以为 Android 是开放的吗?Google 采用了一系列的控制手段来保证每一部 Android 手机上都有它指定的软件和硬件规格。然而,他们同时又利用 Android SDK 里面的 Apache 许可证来大肆鼓吹 Android 是开放的。

  没错,Google 的移动平台是当前最聪明的利用开源来驱动商业议程的实现。但在我们深入探讨这个为什么之前,我们先说说为什么 Android 的成功和开源并没有什么关系吧。

  是什么成就了 Android

  虽然早期饱受质疑,Google 的 Android 移动平台已经在移动行业得到了营运商和手机厂商的广泛支持,仅剩固执的诺基亚。Android 从 08 年的一款机型发展到 10 年的 50 多款,发展之快让绝大多数的业内观察家们吃惊。

  Android 的成功和开源毫无关系。它的成功依靠下列三个主要因素:

  - 苹果 . 这点看起来很奇怪,Android 竟然是靠它的主要对手发家的?让我来分析下。在 iPhone 空前绝后的成功以及苹果对网络营运商傲慢苛刻的态度下,营运商们迫切的在寻找一种更便宜的选择。因此这些第一层最大的营运商们开始积极的用 Android 来开发手机给那些买不起 iPhone 的用户,更重要的是,他们不需要每卖一部手机就给 Apple 300 欧元以上的回扣。

  - 全世界的营运商们迫切希望自己鹤立鸡群 . Android 给他们提供了一个统一的软件平台。他们可以很方便的定制自己想要的系统,而且花费的代价也很低(3 个月的时间,这个比 SavaJe 12 个月以上的定制周期要短很多)。对大型的营运商来说,Android 也降低了他们在智能手机软件方面的投资。这也是为什么大多数的 Android 手机项目背后都是营运商和 OEM 厂商的组合。

  - 高通 . 这个市值 100 亿美元的芯片厂商对 Android 的崛起功不可没。手机开发产商可以直接拿高通已经为 Android 集成好的方案,在 9-12 个月的时间内向市场上推广。(相比起来摩托罗拉的 CLIQ 花了 16 个月,而 HTC G1 则花费了 2 年多的时间)。除了高通,我们还有 TI 的 OMAP3 平台(摩托罗拉 Droid/Milestone 基于此方案)。ST Ericsson 和 Broadcom 也在做 Android 的集成方案。

  换句话说,在 Android 手机上,大多数的 OEM 预算花在了定制方面。而 Symbian 的绝大部分预算花在无线通信的移植和硬件整合上了(Symbian 2001 年所做决定的结果)。总的来说,Android 使 OEM 厂商可以大幅削减研发预算,把钱花在定制这个刀刃上。当然我们不能忘记 Android 是免费的。这个免费让众多厂商激动不已。

  话说回来,Android 用开源来做市场宣传,非常成功的搅乱了整个行业,导致了诺基亚对 Symbian 的收购以及 Windows Mobile 的全面崩溃(不过译者觉得 iPhone OS 4 的多重任务机制的发布让 WP7 真正成了杯具帝)。不过更重要的是,利用开源的名号和 Google 的魅力,Android 吸引了成千上万的开发者,虽然 Android 并不能让开发者们赚到很多钱,而且 Android 手机的数量不到苹果产品的十分之一(连支持收费的国家都比苹果少6倍)。

  在开源的面纱后面

  让人更惊讶的是 Android 到底有多封闭,尽管外面包裹着 Google“不作恶”的口号和 Apache 授权许可证模式。借用亨利福特在 Model-T 相关的书里的一句话:“任何人都可以自由挑选 Android 的颜色,只要那是黑色”(anyone can have Android in their own colour as long as it’s black)。Android 是一个绝好的商业案例——展现一家公司是如何用开源来赢得关注和社区参与,而且同时保持一个非常严密的商业运作。

  Google 是如何控制着每台 Android 手机里采用什么服务、软件和硬件的?这个搜索巨人建立了一套很完善的控制管理系统。为了挖掘更多的信息,我们花了两个月,和很多与 Android 有着紧密联系的内部人士进行了讨论。我们发掘出的事实让人震惊。从宏观方面说,Google 控制 Android 手机构成以下八宗罪:

  1. 私有分支 . Android 有多个私有分支,这些只给几个特定合作伙伴,往往是那些开发 Android 的 OEM 厂商,而且这些只提供给需要知道的人。这些私有分支比已经公布的 SDK 要超前起码 6 个月,也是 OEM 厂商可以保持竞争力的关键。而公开的 SDK 则是为第三方应用提供私有分支里发布的最新功能。

  2. 封闭的评估流程 . 所有的代码评估员似乎都是 Google 员工,也就是说从社区提交的代码只有 Google 才有权力决定是否接受。而且 Google 内部还流传着“并非此处发明”的一种思考文化,他们觉得 Google 员工写的代码是天下无敌。随便问任何一个给 Android 提交过补丁的人,你会得到一样的答复:几乎没有什么提交被 Google 接受,而被拒绝的时候往往没有任何理由和解释。

  3. 进化的速度 . Google 对 Android 的创新的速度是移动行业内绝无仅有的,他们在 18 个月里发布了四个大版本。想在 Android 上面做文章的 OEM 厂商只得紧跟 Google 的步伐(这里想起了移动杯具的OMS),不然就跟不上新功能的发布和 bug 修复。Nexus One、Droid、G1 和其它带有 Google体验应用的手机给 Google 提供了创新的测试场。

  4. 不完善的软件 . 用公开的 SDK 并不能完整的建造手机。缺少的几个关键的部份包括无线通信的集成模块、国际化语言包、营运商信息包以及闭源的 Google 应用,比如 Market、Gmail 和 Gtalk。虽然 Cyanogen 可以自己定制 ROM,但里面包含的那些应用没有授权,所以不能发布在商业用途的 Android 手机上。

  5. 闭门的开发者社区 . Android Market 是唯一一个拥有超过四万个程序并和每个手机 OEM 厂商都签有合约的 android 程序商店。这个限制很要命,因为没有一个 OEM 厂商愿意发布没有 Market 的 Android 手机(天朝是另类)。当然,在 Market 上发布应用是个非常简单的事情,没有什么审批的步骤,这个和苹果的 AppStore 刚好相反。

  6. 反分化合约 . 外界几乎不清楚原来 OHA 的成员都签署了反分化的合约。但这个合约更可以被理解为不能发布没有通过 CTS 兼容测试的手机。(下面细说 CTS)(译者注:貌似中国移动已经被踢出 Android 的私有分支,是不是因为他们建立的 OMS 违反了这个协定呢?)

  7. 保密的发展蓝图 . Android 的发展蓝图是很杯具的,到目前为止,公开发布的发展蓝图还停留在 2009 年的第一季度。如果想要看到内部的发展蓝图,你需要 Google 的赐福.

  8. Android 商标 . Google 掌握着 Android 的注册商标和冠名权。任何想用 Android 品牌的厂商都需要得到Google的授权。简单的说:进 Google 的门,或者没有门。如果你要自己做 Android 分枝,你就全部靠自己了,比如你需要中国移动那么大的公司。

  Android 的传奇中还有个大篇章:CTS(兼容测试组),也就是 Google 一套测试 Android 手机是不是达到 Google 的标准。根据我们的线人消息,CTS 不仅仅测试软件的 API 部份,它还包括性能测试,硬件功能,设备设计,UI 用户界面需求,和机内打包的服务。CTS 决定了你可以添加额外功能,但不能从最基础的配置中削减功能。除了 CTS 以外,OEM 厂商还要和 Google 签订授权合同,这样他们才能打包 Google 的服务,比如 Gmail、YouTube 等等。

  CTS 限制了 OEM 定制弱化版 Android 手机的想法(译者注:山寨的机会啊!MTK、中微星,年底发布些低端 Android 手机吧!)。这也大大限制了 Android 开拓低端市场的能力。CTS 和向前兼容 4 万多个应用的事实,极大的挑战着 Google 想占领智能手机市场2位数的市场份额目标。这些限制,还有 Google 与 OEM 亦敌亦友的合作关系,使得 OEM 圈内掀起了建立 Android 基金的讨论。

  Google 的终极目标

  手握 Android,Google 的目标是为自己产生收入的服务提供一个稳定的平台。在当前,这个广告生意。但未来,Google 的目标在语音服务(几十亿没有数据服务的用户)和 Google Checkout(比如变成移动领域的 visa 卡)。但不管 Google 的终极目标是什么,我们应该意识到 Android 和 Windows Mobile、Mac OSX 或 PalmOS 相比,并没有开放多少。Android 是用开源来驱动商业议程的最聪明的案例之一。Android 骨子里并没有我们潜意识里所灌输的那么多不作恶思想。

分享到:
评论
1 楼 gxrocky 2010-10-14  
楼主有意把开源和免费混淆到一起,开源软件都是在开源协议下开源的,并不是免费给所有人的。

开源不是我做一个系统然后扔到社区不管了,要想一个开源项目有好的发展,相应的规则还是要制定的。

相关推荐

    Android 开源在线音乐播放器

    还有简单的密码验证 开发软件:Android StudioAndroid 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器...

    FastAndroid开源电商项目系列之Android客户端

    开发框架:FastAndroid,开发工具:Android Studio 本项目包含以下模块 商品模块:商品列表,商品分类,商品筛选及搜索,商品详情 购物车模块:购物车管理,在线支付,地址管理 用户模块:登录,注册,找回密码,订单管理...

    java-开源即时通讯(IM)系统Android端

    2. **Android SDK**:Android SDK 提供了用于构建 Android 应用的各种工具和框架,包括用于网络通信的 API,如 HttpURLConnection 和 OkHttp,它们在 IM 系统中用于处理客户端与服务器之间的数据交换。 3. **即时...

    生鲜o2o配送开源系统,包括Android源码+SSH后台管理系统

    项目描述 生鲜O2O系统,移动端为android项目,后台为S2SH+BUI+Bootstrap...android客户端环境:android studio+gradle+jdk8+android 10+android API 29 项目技术(必填) spring+struts2+hibernate3+bootstrap+jquery

    Android oschina-android-app(开源中国).zip

    【压缩包子文件的文件名称列表】:Android oschina-android-app(开源中国).rar 虽然没有提供具体的子文件列表,但根据一般的Android应用项目结构,我们可以预期这个.rar文件内可能包含以下部分: 1. **根目录**...

    基于相对封闭Linux系统配置开源医学影像存储系统用于介入手术室数据库管理.pdf

    本文主要探讨了如何利用开源医学影像存储系统(PACS)和相对封闭的Linux操作系统来管理和存储介入手术室中的DSA(数字减影血管造影)数据。作者通过搭建开源DICOM服务器并配置DSA主机的三维工作站,实现了DSA数据的...

    Android 谷歌开源项目

    8. **Android开源社区**:Android的开源性吸引了大量开发者和社区参与,例如XDA Developers论坛、LineageOS等,他们贡献了大量的第三方ROM、应用和修改,丰富了Android的生态多样性。 9. **Android NDK**:对于需要...

    Android开源代码

    2. **Android SDK与AOSP**:Android Software Development Kit (SDK) 是开发Android应用的基础工具集,而Android Open Source Project (AOSP) 是Android系统的开源版本,包括了操作系统的所有组件。开发者可以从AOSP...

    Android弹幕实现:基于B站弹幕开源系统(1).docx编程资料

    ### Android弹幕实现:基于B站弹幕开源系统 #### 一、引言 随着互联网技术的发展和视频分享平台的兴起,“弹幕”作为一种新型的互动方式被越来越多的人所接受和喜爱。尤其在B站(哔哩哔哩)上,弹幕已经成为观看...

    takephoto拍照相册开源库更改为用androidx库v4.1.0版本

    然而,随着Android系统的发展,Google推出了AndroidX库,旨在提供更好的兼容性和性能。AndroidX是对原来Support Library的重构和扩展,旨在解决支持库版本不一致和命名冲突的问题。 本项目涉及的主要知识点是将`...

    Android12系统资源目录分析树状图pdf(使用xmind思维导图软件绘画,导出pdf文件,此是压缩包文件,需解压)

    自己整理的Android12版本的系统资源...external:Android中使用的外部开源 frameworks:应用程序框架,Android系统核心部分,由Java和C++编写.pdf packages:应用程序包.pdf system:底层文件系统库、应用和组件.pdf

    android开源麻将游戏

    8. **测试与调试**:开源项目通常包含单元测试和集成测试代码,通过查看Andjong的测试代码,可以了解Android的JUnit和Espresso测试框架。 9. **性能优化**:对于游戏开发,性能优化至关重要。Andjong可能包含了内存...

    .Android开源项目分类汇总

    在IT行业中,Android开源项目是开发者们学习、借鉴和创新的重要资源。开源意味着代码公开,允许任何人查看、使用、修改并重新分发。".Android开源项目分类汇总"是一个集大成的资源包,包含了众多优秀Android开发者的...

    android应用源码(精)基于asmack开发的Android开源IM客户端.zip

    通过分析这个开源项目,开发者不仅可以学习到Android应用开发的基本技能,还能深入理解即时通讯系统的实现,这对于提升个人的Android开发能力和对复杂应用的架构设计理解具有很大帮助。同时,这也是一个很好的实践...

    仓库管理系统,移动端APP开源项目,支持Android、OS,基于.NET(C#、VB)。.zip

    仓库管理系统,移动端APP开源项目,支持Android、OS,基于.NET(C#、VB)。SmoWMS仓库管理系统包含了仓库管理、订单、主数据维护、图表分析、个人信息等几大功能。 SmoWMS is Warehouse Management solution for AP...

    Swiftp 开源FTP服务器for Android

    Swiftp是一款专门为Android平台设计的开源FTP服务器软件。它允许用户通过FTP协议在移动设备上分享文件,为开发者提供了一种便捷的方式在Android设备上搭建FTP服务,从而实现远程文件管理和传输。这款软件的核心特性...

    android开源桌面代码

    【Android 开源桌面代码】是关于自定义 Android 桌面环境(Launcher)的源代码,这涉及到Android系统的个性化和用户界面的深度定制。在Android系统中,Launcher是用户与设备交互的主要入口,它负责显示应用程序快捷...

    android设备连接usb摄像头开源库UVCCamera

    【UVCCamera】是一个专为Android设备设计的开源库,用于实现通过USB接口连接并控制USB摄像头的功能。这个库使得开发者能够在Android手机、平板、大屏设备甚至开发板上利用USB摄像头进行视频采集和图像处理,极大地...

    十个android 经典开源项目

    【标题】:“十个Android经典开源项目” 这十个Android开源项目是初学者和进阶开发者学习Android编程的重要资源,它们展示了各种实用功能和技术的应用,有助于提升编程技能和理解Android平台的工作原理。 【描述】...

Global site tag (gtag.js) - Google Analytics