由Google、HTC、Qualcomm联手打造的第一部Android手机G1,开启了移动时代的Andr​​oid纪元(如图1所示),直到现在Android也是唯一能在移动市场上与iOS相抗衡的平台。简单地说,Android与iOS占尽了移动时代的先机(这个故事要从2007年的iPhone和2008年的Andr​​oid G1开始说起,甚至是更早之前的开发史及并购史),App开发者已在Android及iOS上扎下了深厚的根基,因此再也无力也没有必要去为第三个平台开发或移植自己的App,原因很简单,因为受众太少,支出与收入不成正比。

图1  手机生态系统的演变过程

  一开始Android生态系统很简单,就是拉拢App开发者,并且寻求与更多芯片制造商及手机厂商的合作,共同推广Android这个开放平台。但随着Android市场占有率逐步攀升,Google开始一步步地收紧及控制生态系的发展,以期自己能在Android平台上获得更多的利益(简单地说,就是收入,Google希望Android能够为自己带来更多的收益),而不再满足于只是打造及提供Android平台的角色。

  随着Android一路开疆辟土,出现在越来越多的移动设备上,再加上Google对Android策略的转变,现今的Andr​​oid生态系统已变得较以往复杂了许多,系统中的角色较以往多了电信运营商、汽车制造商、串流内容及媒体提供商等。Google在全球移动市场的策略也已从“移动优先”转变至“攻占所有屏幕(装置)”,而Android也企图往这个目标上不断迈进(如图2所示)。

图2  最近3年,智能手机操作系统市场占有率

  时至今日,欧洲、美国、日本的手机制造商节节败退,摩托罗拉、诺基亚、索尼等老牌制造商相继裁员(甚至出售手机及移动业务),而中国手机制造商却不断崛起,中兴、华为、联想、酷派、OPPO、小米等相继杀入手机市场后,如今中国已成为全球最大的智能机生产及销售国,智能机用户数早已超越美国。而新兴的国外市场,如印度、南美、东南亚正刮起一阵低价智能机风暴,Android正是这波低价智能机的推手(如采用MTK芯片的Andr​​oid One)。低价智能机席卷着新兴国家的市场,而新兴国家的市场也俨然成为智能机的一个重要主战场,Android的野心当然不止于此,Android企图发力于高、中、低阶的智能机市场,而这些细微的变化正一点点地牵动着Android生态系统的转变。

  Android的开放与制约

  Android一开始由Andy Rubin领军,从一开始的全面开放,到像选妃似的,每次释放出新版Android软件的同时,选择与特定的手机制造商合作开发Android原生机,例如HTC、三星等。这一举动令各家手机制造商对Android仰望备至,都想抱上Android的大腿。因为手机制造商一旦获得与Android合作开发新版原生机的机会,就等于能提早得到新版Android软件代码,进而取得先机来开发其他自家的产品(如三星的Galaxy系列),早对手一步将自家产品推向市场销售,从而取得市场先机。这种方式无疑令部分手机制造商对Android产生反感。

  2013年3月,Android从Andy Rubin转由原领导Chrome的Sundar Pichai接手负责,而Android也由工程导向转为营利导向,例如减少手机制造商与Google分成Google Play和Google Search的收入。Android更强烈地主导其UI显示的一致性,并与各家手机制造商签订约束性的协议,强加Google的相关应用服务于Android系统上,甚至将应用摆放在Android桌面上的位置都强加限制,大幅度收紧了各家Android设备制造商分散且碎片化的UI风格,以期用户在汽车、电视、可穿戴设备、手机等所有Android设备上都能得到相同的用户体验,Google此举也造成了部分手机制造商及开发者的反感。

  归根结底,Google还是希望自己的角色能像苹果一样介于用户和运营商之间,由目前的“用户/手机品牌商→运营商”,转变为“用户/手机品牌商→Google→运营商”,以期收紧分散且碎片化的Andr​​oid生态圈,并获取更大的潜在利益。这一点,我们可以在最新发布的Android L版本的软件中看到,Google加入了更多特定运营商所需的功能。

  移动互联网时代,Android已然成为Google的一个标准平台,而非过去传闻的与Chrome整合成一个新的平台,或是将Android整合进Chrome中。这种情况下,Android设备制造商如何应对Google的策略调整及Android版本的快速演进,并调整自己迅速定位市场,从而避免自己成为只是帮Google打工的打工仔是至关重要的。Android设备制造商必须打造出自己独特的生态系统(例如跨手机、平板、电视等),而非只是一个设备制造商。这样一来,我们可以清晰地看到,目前纯手机制造商已越发难以生存。

  Android系统与架构演进

  从Android 1.0至今(更甚至是1.0之前的m*至今),Android系统每一版都有不少的改动(如图3所示),例如HAL有过两次的版本改进、Camera HAL已迭代至第三版、多媒体核心由一开始的OpenCore直到现在的Stagefright。而一开始的WebView至今则完全被Chrome取代,Android也从ARM一路拓展到x86及MIPS平台。版本演进的过程及内容实在太多,如果真的要巨细靡遗地写,可能三天三夜也写不完,所以我想仅对每一版本的改动给予一句代表性的描述​​,并在最后针对Android的最新版(代号L),做一些基本介绍。

图3  Android系统的迭代与演进

  • Android 1.0:第一部Android手机以及Google Apps的诞生;
  • Android 1.5 Cupcake:支持软件键盘;
  • Android 1.6 Donut:支持CDMA;
  • Android 2.0 Éclair:GPS大放异彩,GoogleNexus One手机诞生;
  • Android 2.2 Froyo:加入语音识别功能;
  • Android 2.3 Gingerbread:Nexus S;
  • Android 3.0 Honeycomb:第一次专给平板设备设计UI;
  • Android 4.0 Ice Cream Sandwich:一个新的UI界面Holo与内嵌字体Roboto,并支持人脸解锁;
  • Android 4.1 Jelly Bean:Nexus 7:Google官方第一台Android平板设备;
  • Android 4.3 Jelly Bean:引入对可穿​​戴设备的支持;
  • Android 4.4 KitKat:支持更少内存的移动设备。

  接下来是Android L,它的预设虚拟机为ART,支持64位,所需要的系统空间较以往的Andr​​oid版本更大,因为ART有一个转换档案格式的动作,其缺点就是会占用更多的系统空间,但之后软件的执行速度可能有一定的提升。另外,Android L可能会加入部分地区及运营商的特殊需求,例如multi-SIM、NFC、Wi-Fi等;此外​​,Android L也更强调系统安全,它可以预设为强制性安全模式,即一般应用启动时需要多道的身分及权限确认才能执行。

  时至今日,Android身影几乎无处不在,回顾以往,Android系统的演进总是先求有、再求好,智能移动时代发展至今,全球正迈向下一个里程碑,希望Android此时能不忘初心,做一个平衡生态系统的维护者及领导者,而非仅是利益上的掮客,不要为了利益而让这个生态圈走向封闭。

  作为开发者,此时更应该思考自己拥有如此巨大的市场优势、健全的物流体系及现金流系统,以及众多的手机及移动设备制造商,如果能积极培养系统级的软件人才,有条件打造出一个来自中国的自主生态系统,以期将来与Android分庭抗礼。

  作者钟文昌,台湾第一位讲授从无到有上机移植Android至实际硬件平台的业界讲师,至今培训过上千位Android相关专业研发人员,包含工程师、架构师、产品经理、高阶主管、市场销售等。

移动5年 Android生态系统的演进的更多相关文章

  1. 转:微信Android客户端架构演进之路

    转自: http://www.infoq.com/cn/articles/wechat-android-app-architecture 微信Android客户端架构演进之路 作者 赵原 发布于 20 ...

  2. 基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET

    基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET 基于libevent, libuv和android L ...

  3. 微信Android客户端架构演进之路

    这是一个典型的Android应用在从小到大的成长过程中的“踩坑”与“填坑”的历史.互联网的变化速度如此之快,1年的时间里,可以发生翻天覆地的变化.今天在这里,重新和大家回顾微信客户端架构的演进过程,以 ...

  4. 安居客Android项目架构演进

    入职安居客三年从工程师到Team Leader,见证了Android团队一路走来的发展历程.因此有心将这些记录下来与大家分享,也算是对自己三年来一部分工作的总结.希望对大家有所帮助,更希望能得到大家宝 ...

  5. Android技术分享收集

    Android高工必备技能! 我的 Android 开发实战经验总结 微信Android客户端架构演进之路 微信Android版智能心跳方案 流量优化: WebP 探寻之路 HTTP 协议缓存机制详解 ...

  6. Android性能优化典范(二)

    Google前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的 ...

  7. 【译】Android系统简介

    简介  本文主要介绍Android的基础知识和体系结构,本文主题: 简介什么是Android,为什么开发者需要关注Android: Android体系结构(如Linux Kernel, Librari ...

  8. Android强大的开源库与系统架构工具

    后来加上的,因为太强大了,android上百个可立即使用的开源库介绍:https://github.com/Trinea/android-open-project 一款功能强大且实用的开发工具可以为开 ...

  9. Android性能优化典范 - 第2季

    Google发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的缩放,缓 ...

随机推荐

  1. iOS Swipe Tableviewcell(左右滑动出现按钮)

    1.背景 看到QQ的左右滑动Tableviewcell时可以出现多个菜单,觉得很高大上,因为没这种需求, 也只是需要一个删除按钮,这个系统已经帮我们实现了,只需要实现几个代理就可以,做出左划 出现删除 ...

  2. How to Call SharePoint 2013 API Service to Query The Lists

    How to Call SharePoint 2013 API In SharePoint 2013, we can query the list by it owner service, then ...

  3. MVC中使用RazorPDF创建PDF

    这篇文章主要介绍使用Nuget package中的RazorPDF简单的创建PDF的方法. 关于RazorPDF 这个Nuget Package由Al Nyveldt创建.它内部使用ITextShar ...

  4. 更改vsts源代码绑定服务器地址方法

    第一步找到更改源代码管理 第二步首先选中第一个,滚动条拉至最后一项,点击最后一项(全选). 第三步点击绑定,vsts会自动签出所有项目,而后签入就可以更改成功了.

  5. [Xamarin] 關於SQLite 的操作 (转帖)

    我們聊一下常用的東西,SQLite,這東西很常用到,當再寫手機APP的時候,有時候會在Client 做 cache或是做一些資料的管理都很必須會用到,我們來看看今天的範例 建立SQL Lite 資料庫 ...

  6. [Java Web] 5、JSP (1) 注释 & Scriptlet

    >_<" 在JSP中支持两种注释的语法操作,一种是显式注释,这种注释客户端是允许看见的,另外一种是隐式注释,此种注释客户端是无法看见的. 显式注释语法: <!-- 注释内容 ...

  7. 2014-3-5 星期三 [New Change && New Start]

    昨日进度: [计算方法]:起晚啦,迟到一点,有点困,可能因为睡得太晚吧! [无课]:制作IEEE标准在JAVA中的应用. [组成]:-- [多媒体]:-- [人工智能]:-- [寝室]:学习API. ...

  8. SharePoint 2013 REST 以及 OData 基础

    这篇文章会介绍: 简单的介绍REST,OData OData实现细节 OData在SharePoint 2013中的实现 为什么REST很重要 过去几年基于REST的webservice在IT企业越来 ...

  9. PHP将XML转成数组

    如果你使用 curl 获取的 xml data$xml = simplexml_load_string($data);$data['tk'] = json_decode(json_encode($xm ...

  10. 在ASP.NET MVC5中建置以角色为基础的授权机制

    在前一篇贴文中,已探索过如何在MVC5中自定ASP.NET Identity,接下来要来试试在MVC5中如何运用 ASP.NET Identity来设定一个以 "角色"为基础的授权 ...