开发者的采纳
2011年10月,Android Market有30万应用,紧随Apple,是第二大的平台应用商店。
功能丰富和易于学习的应用架构,强大的SDK,结合不断增长的手机数量,使大量开发者从PC领域和移动领域(Symbian,J2ME,Windows Mobile,和PalmOS)进入Android。
在我们2011年开发者经济学研究中,Android名列开发者意向第一。根据研究,无论当前使用哪个平台,2/3(67%)的移动开发者最近曾在Android上开发。
平台分裂主要有五个方面:
1、 发布速度。在2010年第二季和2011年第二季之间,有三个主要版本发布,对OEM而言平台变化太快。
2、 OEM对更新无动力。Android手机OEM们缺乏商务激励机制来更新已销售手机的系统版本。
3、 OEM定制造成UI分裂。HTC的Sense UI和索尼爱立信的Rachel,摩托罗拉的MotoBLUR,三星的TouchWiz,LG S-Class的UI不同。所有的OEM增加对开发者都是分裂的迹象。
4、 屏幕分裂。Android V2和V3针对不同屏幕尺寸,并分别进行优化。屏幕类型可能包括(不同尺寸的)智能手机,平板、车载屏幕和TV。
5、 代码库的分叉。中国移动的oPhone,中国联通的WoPhone,Cyanogen和MiuiAndroid都是分枝版本,不再遵循主干Android代码库的更新。
对于绝大多数的开发者,AndroidMarket是主要的发布和货币化渠道。但有些独立的应用商店提供付费内容,不需要Google检查,包括有亚马逊 Appstore,SlideME和GetJar。此外,运营商,例如沃达丰,法国电信/Orange和AT&T,也推出各自的应用商店,应用需要预审,支持运营商计费。
Android Market在真正货币化潜力上有多方面考虑:
- 大量免费应用。据2011年9月Xylogic报告,在美国,Android商店有66%的免费应用,而iPhone有42%。
- 本地化应用非常少。据2011年9月Distimo报告,只有4.9%的Android应用在单一国家发布(表明专注本地内容)
- 版权侵犯泛滥,对合法应用的成功造成障碍。
- Google在应用货币化中对广告模式更感兴趣,也就是,在创建应用清单时,对直接寻求开发者货币化方式并不重视。
版权和管控
Google成功利用开源成为其商务优势。Android源代码允许公开和私有的源代码分枝。私有分枝维护操作系统更先进的版本,通常比公开分枝提早6-8个月。私有分枝只提供给很少的OEMs,用于 “Google体验”手机。
虽然基础平台是开源的,Google封闭应用(Android Market,Google地图和Gmail)都是Google私有的,并不开源。这些应用通过商业协议和平台兼容给予OEM许可。兼容性采用CTS(CompatibilityTest Suite)和CDD(ComplianceDefinition Document),确保设备使用系统API的一致性和设备的硬件规格。
Android开源开发的可视性和透明度受到严格控制。Google并不公开Android路标,只有被选定的OEMs和芯片合作伙伴可获取。新功能开发主要在私有的代码分枝,并非公开可视。
绝大部分开发由Google员工完成,而不是通过贡献、可视的贡献审核流程或者公开的开发优先级别讨论。
第三方贡献主要在公开分枝,落后于Google当前开发的版本。例如,在Froyo(2.2)公开树中,有来自40个公司大约1000的贡献。贡献者被要求签署贡献者许可协议,包含一个版权许可和一个专利许可(针对授权专利)。Google被允许对任何许可下的贡献代码进行重新许可,许可为他们认为合适的方式。Android维护者(全部是Google员工)决定哪些贡献集成至领先的私有分枝,从此成为平台的一部分。
对贡献和路线图的严格控制对快速演进的平台是必要的,否则将会被各方利益冲突所影响。
在开源项目控制点数目和多样性而言,Android是“榜样”,Android的控制点有:
- 领先私有分枝,比公开分枝超前6-8月。私有分枝只对被选定的OEM和芯片厂商开放,他们将从OS最新版本中获得显著的竞争优势。
- Android Market是唯一的商业许可,在那里Google提供超过30万的手机应用。
- Google地图、Gmail和其他Google的私有应用,只有设备遵循Google规范,通过由Google维护的的CTS验证,才能安装在设备上(预装)。
- Android商标由Google持有,在商务条款下进行授权。
- 超出想象的快速版本释放,结合由Google完全控制的贡献。
- 除了小部分被选定合作伙伴外,路标不可视。
Skyhook对Google的法律诉讼,指控其非竞争行为,揭露了Google控制OEM生态系统的细节。其中一显著证据是一封2010年8月6日来自Dan Morril的电邮,说,“我们使用兼容性来让他们(手机制造商)去做我们想做的事情”。在2011年7月Vision Mobile提供对Android管控模式的深入分析报告,即VisionMobile的开发管控指数。
基础技术
Android建立在Linux kernel上,利用行之有效的Linux进程模型、驱动架构和安全框架。虽然Android是基于Linux Kernel,不应将它和Linux操作系统本身混淆。由于不同的C库,UI框架和应用生命周期模型,Android不能直接运行为Linux 编写的应用。
平台在Linux Kernel上引入Android特有的扩展层作为中间件。中间件提供了音频和视频多媒体、2D和3D图形、无线网络、定位服务、传感器、蓝牙和其他的支持。
多媒体中间件最初基于PacketVideo的开源OpenCore架构。平台的最新版本,由新的,降低复杂度的Google的Stagefright开源项目的多媒体架构替代。图形采用工业标准OpenGL ES 1.x和3D硬件加速的2.0 APIs。
操作系统高层由非标Java语言来实现。Java软件通过由Google从头重新设计的Dalvik Java虚拟器来运行。Dalvik虚拟机针对移动环境进行大量优化,包括处理器负荷、运行环境内存使用和电池消耗。Android v2.2引入JIT(justin time)编译器,更好地改善了Java应用在移动平台上的性能。
平台内置各类应用,包括拨号器、消息、联系人、日历、电邮、媒体播放器等等。这些应用由Java语言编写,有时需访问受到严格控制的,不向第三方应用开放的,平台API。
Android提供相对简朴UI,支持多点触摸、手势和动画。它常被OEM的用户体验层所加强(例如HTC Sense,LG S-Class,三星Touch Wiz,索尼爱立信的Rachael)。Android用户界面已经在版本3(Honeycomb)和版本4(Ice Cream Sandwich)中得到显著改善。变化集中在支持更大屏幕显示和各类平板的人体工程学。V3(Honeycomb)只支持平板,没有作为开源项目释放。这个版本的改变将合并到Android4.x的主干上。
Andriod的web浏览器基于开源的Webkit引擎,可对标准web页面进行渲染。Google持续改善浏览器的JaveScript性能和对HTML5的支持。应用可唤起HTML/CSS/JavaScript组件,它们的渲染使用WebKit浏览器引擎。
通过下载由Adobe提供的扩展,Android v2.2加入了对Adobe Falsh的支持。
Android应用安全建立在Linux的多用户基础架构上。它强制将第三方应用和操作系统,以及其他应用分隔。
和iOS一样,在OS层面,每个安装的应用作为一个单独“用户”运行。应用的访问权限是有该user ID的权限所决定。第三方应用在一个沙盒环境中运行,那里每个应用在一个特定的Linux进程空间中运行,并访问一个专用文件系统空间。当应用需要访问敏感API(例如联系人列表、定位、短信),开发者在应用包清单(manifest)中进行声明。当安装时,系统询问用户是否授权所安装应用使用这些权限。如果获得用户授权,应用将安装在设备上,并可访问这些API。
系统通常预装Google云服务。包括Google语音搜索、Google地图、Gmail,Google帐号、Picasa等。应用唤起这些Google服务作为应用流程的部分。
应用开发
AndroidSDK基于常用的Eclipse IDE,扩展个设备模拟器和Android专用插件。插件提供了移动应用设计、调测、优化和发布所有的所需工具。
Android使用一个基于Java的应用架构来运行第三方应用。应用架构采用非标的Java语言,采用独特的应用生命周期模型和系统API,使得Android和由JavaSE和 ME编写的标准的Java应用不兼容。
Android允许开发者在Java应用中嵌入由C/C++开发的控件。C/C++开发使用原生开发套件(NDK),NDK允许开发者编译、构建和封装由C/C++编写的应用控件。
Android应用框架由多个API组构成,包括基于webKit引擎的web服务,2D和3D图形、结构数据存储的SQLite,移动电话通信、蓝牙、Wi-Fi、摄像头、定位和传感器、通用音频、视频和静态图像格式的支持。
Android采用新式应用框架,允许应用和服务的松耦合。基于Intent的概念,用于执行特定Action的通信需求(例如显示地图)。Intent由OS转发给最合适组件来提供服务。服务组件可容易被替换或者重用。
Android应用可从Android Market安装。另外,如果用户明确允许“未知来源”,应用可从其他来源安装,例如从邮件附件或者下载文件。缺省地,从未知来源”下载选项被关闭,必须由用户打开。
AndroidMarket客户端是主要的应用发现途径。客户端还管理应用更新。当安装应用有新版本时,显示通知,也允许用户设置某些应用自动更新。
AndroidMarket web商店可通过任何web浏览器访问,提供诸如设备兼容性检测和网页触发下载应用(用户点击web浏览器上的安装button,应用将自动下载到用户注册的Android手机上)的功能。
2011年7月,Google宣布AndroidMarket客户端的重要改进,包括更好的应用发现,以及购买电子书和视频(仅限美国)的功能。
观点
Google开发Android,确保大众可从移动设备访问Google服务而不受限制,也就是说,将Android平台作为连接消费者眼球和Google广告的桥梁。
Google从Android间接货币化。智能手机的广泛增加,通过增加在线流量和挖掘新移动特性广告使用场景,使Google广告增加营业额。对于Google,Android同样意味着中介市场商品化,中介市场建立在吸引眼球和广告上,即手机、网络和浏览器。
Android生态系统面临来多个专利威胁,来自试图减缓Android发展势头的公司。Apple挑战最大的Android OEM三星,而微软向多个Android OEM征收专利税。Google越来越积极地保护生态系统,通过从待收购的摩托罗拉移动中获得的广泛的专利组合。
除非Google保护生态系统,防范专利攻击失败,Android平台将继续快速演进,改善用户体验,扩展至平板,发展对连网TV的支持。此外,越来越多的基于Android的智能手机和平板将有助Google在很大部分的移动生态系统中锁定Google云服务。