- 浏览: 5166573 次
- 性别:
- 来自: 天津
博客专栏
-
实战 Groovy
浏览量:29350
文章分类
- 全部博客 (639)
- 代码之谜 (6)
- JavaScript quirks (5)
- 程序员 (92)
- Java (93)
- BT编程 (7)
- html/css (64)
- Groovy&Grails (42)
- Android (20)
- C/C++ (5)
- PHP/Perl/Python (46)
- 经典文章 (51)
- CodeIgniter (14)
- JQuery (10)
- 笑话 (4)
- 其他 (32)
- javascript (69)
- 云计算 (0)
- html5 (7)
- 面试 (8)
- google (3)
- nosql (2)
- nodejs (11)
- go (5)
- erlang (1)
- 小常识 (3)
- 冷知识 (5)
- database (4)
- web (12)
- 架构 (12)
- Exception (0)
最新评论
-
jqw1992:
https://www.chromefor.com/libra ...
[福利] 开发者必备的 Chrome 插件——ChromeSnifferPlus -
litjerk:
初步算了一下,目前最最精简的Win98版是5M,他5个小时多敲 ...
让人目瞪口呆的三位世界级电脑大师 -
379855529:
。。似乎重点没说NIO啊,前面基础只是铺垫的很好的,可是我要的 ...
Java NIO与IO的详细区别(通俗篇) -
springmvc_springjpa:
spring mvc demo教程源代码下载,地址:http: ...
一步步开发 Spring MVC 应用 -
匡建武:
Good
四个程序员的一天
你以为 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 骨子里并没有我们潜意识里所灌输的那么多不作恶思想。
评论
开源不是我做一个系统然后扔到社区不管了,要想一个开源项目有好的发展,相应的规则还是要制定的。
发表评论
-
移动网页设计相关原则
2012-07-25 08:55 1111如何开始移动设计 对于我们中很多人来说,移动端设计是一个崭新的 ... -
10个常见的 Android 新手误区
2012-07-16 08:06 1741在过去十年的移动开发平台中,作为资深的移动开发人员,我们认为A ... -
Android手机内存的运行机制
2012-05-28 09:31 1613使用android手机的用户可能都安装了任务管理的软件,使用a ... -
android应用程序基本原理
2012-05-28 09:30 1813android应用程序是用Java ... -
编写高效的Android代码
2010-06-26 10:48 1559虽然如此说,但似乎并没有什么好的办法:Android设备是 ... -
Android下的多线程
2010-06-26 10:47 3601在Android下面也有多线程的概念,在C/C++中,子线 ... -
android 机器人:应用程序Manifest介绍
2010-06-25 15:43 2279每一个Android应用程 ... -
android 机器人:Styles和Themes(主题和风格)
2010-06-25 11:00 1450Styles和Themes 通过指定Views ... -
android 机器人:Animations
2010-06-25 11:00 2558Animations Android支持2种类 ... -
Android 机器人:使用系统资源
2010-06-25 10:59 1597Android本体应用程序具体化了很多自己的资源,各种 ... -
Android:实时改变配置
2010-06-25 10:59 2619Android通过终止、重 ... -
Android:Layouts介绍
2010-06-24 08:46 3281Layout管理器(一般称“layouts”)是Vie ... -
Android菜单系统介绍
2010-06-24 08:46 2171如果你曾经尝试用手写笔或轨迹球来导航移动电话的菜单系统 ... -
Android使用Intent Filter来响应隐式Intent
2010-06-24 08:45 3988如果一个Intent请求在一片数据上执行一个动作,An ... -
Android如何解析Intent Filter
2010-06-24 08:45 2203匿名性质的运行时绑定使得理解Android如何解析一个 ... -
android.app.Activity 的介绍
2010-06-23 08:53 11064发现当前Android的资料不是很多,而且对于Acti ... -
android sdk+eclipse+adt 配置与开发
2010-06-23 08:52 2881Android ADT插件配置 创建a ... -
Android入门 HelloWord
2010-06-23 08:52 2091先说说整个程序要做哪些内容吧,简单helloword 通 ... -
Android概述
2010-06-23 08:52 21601. Android是什么? ...
相关推荐
还有简单的密码验证 开发软件:Android StudioAndroid 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器...
开发框架:FastAndroid,开发工具:Android Studio 本项目包含以下模块 商品模块:商品列表,商品分类,商品筛选及搜索,商品详情 购物车模块:购物车管理,在线支付,地址管理 用户模块:登录,注册,找回密码,订单管理...
2. **Android SDK**:Android SDK 提供了用于构建 Android 应用的各种工具和框架,包括用于网络通信的 API,如 HttpURLConnection 和 OkHttp,它们在 IM 系统中用于处理客户端与服务器之间的数据交换。 3. **即时...
项目描述 生鲜O2O系统,移动端为android项目,后台为S2SH+BUI+Bootstrap...android客户端环境:android studio+gradle+jdk8+android 10+android API 29 项目技术(必填) spring+struts2+hibernate3+bootstrap+jquery
【压缩包子文件的文件名称列表】:Android oschina-android-app(开源中国).rar 虽然没有提供具体的子文件列表,但根据一般的Android应用项目结构,我们可以预期这个.rar文件内可能包含以下部分: 1. **根目录**...
本文主要探讨了如何利用开源医学影像存储系统(PACS)和相对封闭的Linux操作系统来管理和存储介入手术室中的DSA(数字减影血管造影)数据。作者通过搭建开源DICOM服务器并配置DSA主机的三维工作站,实现了DSA数据的...
8. **Android开源社区**:Android的开源性吸引了大量开发者和社区参与,例如XDA Developers论坛、LineageOS等,他们贡献了大量的第三方ROM、应用和修改,丰富了Android的生态多样性。 9. **Android NDK**:对于需要...
2. **Android SDK与AOSP**:Android Software Development Kit (SDK) 是开发Android应用的基础工具集,而Android Open Source Project (AOSP) 是Android系统的开源版本,包括了操作系统的所有组件。开发者可以从AOSP...
### Android弹幕实现:基于B站弹幕开源系统 #### 一、引言 随着互联网技术的发展和视频分享平台的兴起,“弹幕”作为一种新型的互动方式被越来越多的人所接受和喜爱。尤其在B站(哔哩哔哩)上,弹幕已经成为观看...
然而,随着Android系统的发展,Google推出了AndroidX库,旨在提供更好的兼容性和性能。AndroidX是对原来Support Library的重构和扩展,旨在解决支持库版本不一致和命名冲突的问题。 本项目涉及的主要知识点是将`...
自己整理的Android12版本的系统资源...external:Android中使用的外部开源 frameworks:应用程序框架,Android系统核心部分,由Java和C++编写.pdf packages:应用程序包.pdf system:底层文件系统库、应用和组件.pdf
8. **测试与调试**:开源项目通常包含单元测试和集成测试代码,通过查看Andjong的测试代码,可以了解Android的JUnit和Espresso测试框架。 9. **性能优化**:对于游戏开发,性能优化至关重要。Andjong可能包含了内存...
在IT行业中,Android开源项目是开发者们学习、借鉴和创新的重要资源。开源意味着代码公开,允许任何人查看、使用、修改并重新分发。".Android开源项目分类汇总"是一个集大成的资源包,包含了众多优秀Android开发者的...
通过分析这个开源项目,开发者不仅可以学习到Android应用开发的基本技能,还能深入理解即时通讯系统的实现,这对于提升个人的Android开发能力和对复杂应用的架构设计理解具有很大帮助。同时,这也是一个很好的实践...
仓库管理系统,移动端APP开源项目,支持Android、OS,基于.NET(C#、VB)。SmoWMS仓库管理系统包含了仓库管理、订单、主数据维护、图表分析、个人信息等几大功能。 SmoWMS is Warehouse Management solution for AP...
Swiftp是一款专门为Android平台设计的开源FTP服务器软件。它允许用户通过FTP协议在移动设备上分享文件,为开发者提供了一种便捷的方式在Android设备上搭建FTP服务,从而实现远程文件管理和传输。这款软件的核心特性...
【Android 开源桌面代码】是关于自定义 Android 桌面环境(Launcher)的源代码,这涉及到Android系统的个性化和用户界面的深度定制。在Android系统中,Launcher是用户与设备交互的主要入口,它负责显示应用程序快捷...
【UVCCamera】是一个专为Android设备设计的开源库,用于实现通过USB接口连接并控制USB摄像头的功能。这个库使得开发者能够在Android手机、平板、大屏设备甚至开发板上利用USB摄像头进行视频采集和图像处理,极大地...
【标题】:“十个Android经典开源项目” 这十个Android开源项目是初学者和进阶开发者学习Android编程的重要资源,它们展示了各种实用功能和技术的应用,有助于提升编程技能和理解Android平台的工作原理。 【描述】...