开发者的采纳

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云服务。

相关链接:我的产业生态链和杂谈文章

更多相关文章

  1. APP开发 你应该iOS和Android都开发 还是聚焦一个平台
  2. iOS还是Android?我应该选哪个平台来做应用?
  3. 对Android 平台下SElinux的理解及遇到过的相关问题解决方法总结
  4. 谷歌推开发者培训指南 欲提升Android软件质量
  5. 史上最全:Android开发者必知的开发资源 (图书、源码、站点、博客…

随机推荐

  1. 添加接口节点
  2. android 简单实现沉浸式状态栏效果
  3. cordova生成android的app项目目录后运行c
  4. Android Mac下反编译apk
  5. Bytecode for the Dalvik VM
  6. android https之三
  7. android中系统日期时间的获取
  8. Android中用SP(SharedPreferences)保存数据
  9. android RecyclerView获得单个Item的View
  10. 制定2个月学习Android的计划