安卓是一种基于linux内核(不包含gnu组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由google公司和开放手机联盟领导及开发。
是一种基于 linux 内核(不包含 gnu 组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由 google 公司和开放手机联盟领导及开发。 操作系统最初由 andy rubin 开发,主要支持手机。2005 年 8 月由 google 收购注资。2007 年 11 月,google 与 84 家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良 android 系统。随后 google 以 apache 开源许可证的授权方式,发布了 android 的源代码。第一部 android 智能手机发布于 2008 年 10 月。android 逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011 年第一季度,android 在全球的市场份额首次超过塞班系统,跃居全球第一。 2013 年的第四季度,android 平台手机的全球市场份额已经达到 78.1%。2013 年 09 月 24 日谷歌开发的操作系统 android 在迎来了 5 岁生日,全世界采用这款系统的设备数量已经达到 10 亿台。
2014 第一季度 android 平台已占所有移动广告流量来源的 42.8%,首度超越 ios。但运营收入不及 ios。
系统简介
android 一词的本义指“机器人”,同时也是 google 于 2007 年 11 月 5 日
宣布的基于 linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。
android 一词最早出现于法国作家利尔亚当(auguste villiers de l’isle-adam)在 1886 年发表的科幻小说《未来夏娃》(l’ève future)中。他将外表像人的机器起名为 android。
android 的 logo 是由 ascender 公司设计的,诞生于 2010 年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,android 小机器人便诞生了。其中的文字使用了 ascender 公司专门制作的称之为“droid ” 的字体。android 是一个全身绿色的机器人,绿色也是 android 的标志。颜色采用了 pms 376c 和 rgb 中十六进制的#a4c639 来绘制,这是 android 操作系统的品牌象徵。有时候,它们还会使用纯文字的 logo。
2012 年 7 月美国科技博客网站 businessinsider 评选出二十一世纪十款最重要电子产品,android 操作系统和 iphone 等榜上有名。
(android logo 相关图片相册图片来源:)
发展历程
2003 年 10 月,andy rubin 等人创建 android 公司,并组建 android 团队。
2005 年 8 月 17 日,google 低调收购了成立仅 22 个月的高科技企业 android 及其团队。安迪鲁宾成为 google 公司工程部副总裁,继续负责 android 项目。
2007 年 11 月 5 日,谷歌公司正式向外界展示了这款名为 android 的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由 34 家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与 84 家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(open handset alliance)来共同研发改良 android 系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,google 以 apache 免费开源许可证的授权方式,发布了 android 的源代码。
2008 年,在 googlei/o 大会上,谷歌提出了 androidhal 架构图,在同年 8 月 18 号,android 获得了美国联邦通信委员会(fcc)的批准,在 2008 年 9 月,谷歌正式发布了 android 1.0 系统,这也是 android 系统最早的版本。
2009 年 4 月,谷歌正式推出了 android 1.5 这款手机,从 android 1.5 版本开始,谷歌开始将 android 的版本以甜品的名字命名,android 1.5 命名为 cupcake(纸杯蛋糕)。该系统与 android 1.0 相比有了很大的改进。
2009 年 9 月,谷歌发布了 android 1.6 的正式版,并且推出了搭载 android 1.6 正式版的手机 htc hero(g3),凭借着出色的外观设计以及全新的 android 1.6 操作系统,htc hero(g3)成为当时全球最受欢迎的手机。android 1.6 也有一个有趣的甜品名称,它被称为 donut(甜甜圈)。
2010 年 2 月,linux 内核开发者 greg kroah-hartman 将 android 的驱动程序从 linux 内核“状态树”(“staging tree”)上除去,从此,android 与 linux 开发主流将分道扬镳。在同年 5 月份,谷歌正式发布了 android 2.2 操作系统。谷歌将 android 2.2 操作系统命名为 froyo,翻译完名为冻酸奶。
2010 年 10 月,谷歌宣布 android 系统达到了第一个里程碑,即电子市场上获得官方数字认证的 android 应用数量已经达到了 10 万个,android 系统的应用增长非常迅速。在 2010 年 12 月,谷歌正式发布了 android 2.3 操作系统 gingerbread (姜饼)。
2011 年 1 月,谷歌称每日的 android 设备新用户数量达到了 30 万部,到 2011 年 7 月,这个数字增长到 55 万部,而 android 系统设备的用户总数达到了 1.35 亿,android 系统已经成为智能手机领域占有量最高的系统。
2011 年 8 月 2 日,android 手机已占据全球智能机市场 48%的份额,并在亚太地区市场占据统治地位,终结了 symbian(塞班系统)的霸主地位,跃居全球第一。
2011 年 9 月,android 系统的应用数目已经达到了 48 万,而在智能手机市场,android 系统的占有率已经达到了 43%。继续在排在移动操作系统首位。谷歌将会发布全新的 android 4.0 操作系统,这款系统被谷歌命名为 ice cream sandwich(冰激凌三明治)。
2012 年 1 月 6 日,谷歌 android market 已有 10 万开发者推出超过 40 万活跃的应用,大多数的应用程序为免费。android market 应用程序商店目录在新年首周周末突破 40 万基准,距离突破 30 万应用仅 4 个月。在 2011 年早些时候,android market 从 20 万增加到 30 万应用也花了四个月。
2013 年 11 月 1 日,android4.4 正式发布,从具体功能上讲,android4.4 提供了各种实用小功能,新的 android 系统更智能,添加更多的 emoji 表情图案,ui 的改进也更现代,如全新的 helloios7 半透明效果。
2015 年,网络安全公司 zimperium 研究人员警告,安卓(android)存在“致命”安全漏洞,黑客发送一封彩信便能在用户毫不知情的情况下完全控制手机。
2018 年 10 月,谷歌表示,将于 2018 年 12 月 6 日停止 android 系统中的 nearby notifications(附近通知)服务,因为 android 用户收到太多的附近商家推销信息的垃圾邮件。
2020 年 3 月,谷歌的 android 安全公告中提到,新更新已经提供了 cve-2020-0069 补丁来解决针对联发科芯片的一个严重安全漏洞。
发行版本
测试版本
android 在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是:阿童木(androidbeta),发条机器人(android 1.0)。后来由于涉及到pg电子麻将胡了单机版的版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。甜点命名法开始于 android 1.5 发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照 26 个字母数序:纸杯蛋糕(android 1.5),甜甜圈(android 1.6),松饼(android 2.0/2.1),冻酸奶(android 2.2),姜饼(android 2.3),蜂巢(android 3.0),冰激凌三明治(android 4.0),果冻豆(jelly bean,android4.1 和 android 4.2),奇巧(kitkat,android 4.4),棒棒糖(lollipop,android 5.0),棉花糖(marshmallow,android 6.0),牛轧糖(nougat,android 7.0),奥利奥(oreo,android 8.0),派(pie,android 9.0)
从 android 10 开始,android 不会再按照基于美味零食或甜点的字母顺序命名,而是转换为版本号,就像 windows 和 ios 系统一样。
1.0 beta
2007 年发布的 android 阿童木。
1.0
主词条:android 1.0
2008 年 9 月,谷歌发布 android1.0。
1.5
主词条:android 1.5
cupcake(纸杯蛋糕):2009 年 4 月 30 日发布。
主要的更新如下:
拍摄/播放影片,并支持上传到 youtube;支持立体声蓝牙耳机,同时改善自动配对性能;最新的采用 webkit 技术的浏览器,支持复制/贴上和页面中搜索;gps 性能大大提高;提供屏幕虚拟键盘;主屏幕增加音乐播放器和相框 widgets;应用程序自动随着手机旋转;短信、gmail、日历,浏览器的用户接口大幅改进,如 gmail 可以批量删除邮件;相机启动速度加快,拍摄图片可以直接上传到 picasa;来电照片显示。
体系架构
android 的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和 linux 内核层。
应用程序
android 会同一系列核心应用程序包一起发布,该应用程序包包括客户端,sms 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用 java 语言编写的。
应用程序框架
开发人员也可以完全访问核心应用程序所使用的 api 框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统, 其中包括;
丰富而又可扩展的视图(views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的 web 浏览器。
内容提供器(content providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据
资源管理器(resource manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(layout files )。
通知管理器 (notification manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
活动管理器( activity manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
系统运行库
android 包含一些 c/c 库,这些库能被 android 系统中不同的组件使用。它们通过 android 应用程序框架为开发者提供服务。以下是一些核心库:
* 系统 c 库 – 一个从 bsd 继承来的标准 c 系统函数库 libc ), 它是专门为基于 embedded linux 的设备定制的。
* 媒体库 – 基于 packetvideo opencore;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括 mpeg4, h.264, mp3, aac, amr, jpg, png 。
* surface manager – 对显示子系统的管理,并且为多个应用程序提 供了 2d 和 3d 图层的无缝融合。
* libwebcore – 一个最新的 web 浏览器引擎用,支持 android 浏览器和一个可嵌入的 web 视图。
系统结构
系统内核
android 是运行于 linux kernel 之上,但并不是 gnu/linux。因为在一般 gnu/linux 里支持的功能,android 大都没有支持,包括 cairo、x11、alsa、ffmpeg、gtk、pango 及 glibc 等都被移除掉了。android 又以 bionic 取代 glibc、以 skia 取代 cairo、再以 opencore 取代 ffmpeg 等等。android 为了达到商业应用,必须移除被 gnu gpl 授权证所约束的部份,例如 android 将驱动程序移到 userspace,使得 linux driver 与 linux kernel 彻底分开。bionic/libc/kernel/ 并非标准的 kernel header files。android 的 kernel header 是利用工具由 linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
android 的 linux kernel 控制包括安全(security),存储器管理(memory management),程序管理(process management),网络堆栈(network stack),驱动程序模型(driver model)等。下载 android 源码之前,先要安装其构建工具 repo 来初始化源码。repo 是 android 用来辅助 git 工作的一个工具。
应用组件
android 开发四大组件分别是:活动(activity): 用于表现功能。服务(service): 后台运行服务,不提供界面呈现。广播接收器(broadcastreceiver):用于接收广播。内容提供商(content provider): 支持在多个应用中存储和读取数据,相当于数据库。
活动
android 中,activity 是所有程序的根本,所有程序的流程都运行在 activity 之中,activity 可以算是开发者遇到的最频繁,也是 android 当中最基本的模块之一。在 android 的程序当中,activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么 activity 就相当于一个网页。在 activity 当中可以添加一些 button、check box 等控件。可以看到 activity 概念和网页的概念相当类似。
一般一个 android 应用是由多个 activity 组成的。这多个 activity 之间
可以进行相互跳转,例如,按下一个 button 按钮后,可能会跳转到其他的 activity。和网页跳转稍微有些不一样的是,activity 之间的跳转有可能返回值,例如,从 activity a 跳转到 activity b,那么当 activity b 运行结束的时候,有可能会给 activity a 一个返回值。这样做在很多时候是相当方便的。
当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性的移除一些没有必要保留的屏幕,因为 android 会把每个应用的开始到当前的每个屏幕保存在堆栈中。
(android 的应用图册图片来源:)
平台优势
开放性
在优势方面,android 平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到 android 联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
开放性对于 android 的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。同时也可以通过一些第三方优化过的系统通过刷机来实现更好的用户体验,如 miui,flyme 等。