Android(安卓)

Android(安卓)

话题相关词汇:Android安卓安卓开源移动操作系统
43 篇话题相关文章,更新时间:

Android(读音:英:['ændrɔɪd],美:[ˈænˌdrɔɪd]),在香港通用原名“Android”,只有在中国大陆和台湾等华人地区使用非官方名称“安卓”,是一个基于Linux内核与其他开源软件的开放源代码的移动操作系统,由谷歌成立的开放手持设备联盟持续领导与开发。

Android Inc.于2003年10月由安迪·鲁宾、利奇·米纳尔、尼克·席尔斯、克里斯·怀特在加州帕罗奥图创建。Android最初由安迪·鲁宾等人开发制作,最初开发这个系统的早期方向是创建一个数字相机的先进操作系统,但是后来发现相机市场规模不够大,加上智能手机发展趋势快速成长,于是Android成为一款面向智能手机的操作系统。于2005年7月11日Android Inc.被美国科技企业Google收购。

2007年11月,Google与84家硬件制造商、软件开发商及电信营运商成立开放手持设备联盟来共同研发Android,随后,Google以Apache免费开放源代码许可证的授权方式,发布了Android的源代码,开放源代码加速了Android普及,让生产商推出搭载Android的智能手机,Android后来更逐渐拓展到平板电脑及其他领域上。

2010年末数据显示,仅正式推出两年的Android操作系统在市场占有率上已经超越称霸逾十年的诺基亚Symbian系统,成为全球第一大智能手机操作系统。

在2014年Google I/O开发者大会上Google宣布过去30天里有10亿台活跃的Android设备。

2017年3月,Android全球网络流量和设备超越Microsoft Windows,正式成为全球第一大操作系统。

截至2022年5月,根据StatCounter统计,除了美国、英国、加拿大、挪威、瑞典、丹麦、瑞士、科索沃、日本、台湾和澳大利亚外,在其他所有国家和地区Android都是最被广泛使用的智能手机操作系统。

历史

成立

2003年10月,有“Android之父”之称的安迪·鲁宾、利奇·米纳尔、尼克·席尔斯、克里斯·怀特在美国加利福尼亚州帕罗奥图共同成立了Android科技公司(英文:Android Inc.),鲁宾把Android项目描述为“有极大的潜能以开发更智能的移动设备,以更了解其用户的位置及偏好。”该公司早期的方向是为数字相机开发先进的操作系统,此亦是2004年4月该公司向投资者介绍的基础。尽管Android科技公司的创始人和员工过去都具有各自的科技成就,但是Android科技公司的经营只显露出它在智能手机软件的方面,该公司随后认为相机市场不足以实现其目标,并且在5个月之后努力把Android转移到一款可跟Symbian及微软Windows Mobile互相媲美的手机操作系统。

在Android科技公司成立初期,鲁宾在吸引投资者方面遇到困难,他也为公司花光所有钱,使公司面临着被驱逐的景况。就在此时,鲁宾的一位密友,斯蒂弗·帕尔曼(Steve Perlman)给他一个里面装有1万美元现金的信封,此后不久,此笔未披露的金额被视为种子资金。然而帕尔曼拒绝鲁宾所给他的股份,因他并非是以投资的方式给鲁宾这笔钱,他表示:“我这样做是因为我相信这件事,并且我想帮安迪。”

Android命名由来

Android一词最早出现于法国作家维利耶·德·利尔-阿达姆·利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃(L'Ève future)》中。他把外表像人的机器人取名为Android。

Android标志

Android是一个全身绿色的机器人,半圆形的头部,有两支天线和空白的点作为眼睛。它的头部与身体之间有空白的区域,相似于一枚有平底的鸡蛋,两侧各有两个圆角矩形,作为它的双臂。Android的标志是由Ascender公司设计,颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象征。当中的文字使用了Ascender公司专门制作的称之为“Google Droid”的字体。有时候,它会以纯文字的标志展示。

Google的收购及发展

2005年7月11日,Google以高于$5,000万美元的价钱收购了Android科技公司,使其成为Google旗下的一部分。Android的关键人物包括安迪·鲁宾、利奇·米纳尔和克里斯·怀特,以及所有Android科技公司的员工都一并加入Google,作为收购的一部分。当时并没有人知道Google为何会作出这项收购,引来许多的猜测,后来证实Google正是借助该次收购正式进入移动领域。根据前Google CEO施密特的说法,收购Android目的是抗衡微软,试图阻止微软在移动市场复制桌面市场的成功。在Google,由鲁宾领导的团队开发了一个基于Linux内核驱动的移动操作系统的平台,该开发项目便是Android操作系统。Google向手机制造商及手机网络供应商推出该平台,承诺提供一个灵活可靠并可升级的系统,为Android提供一个广阔的市场。Google组织了一系列硬件及软件的合作伙伴,并向运营商示意指公司开放到各种程度的合作。

2006年12月,《华尔街日报》和英国广播公司(BBC)报导了Google有机会进入移动领域的传闻,Google有可能推广移动领域下的各种Google服务,并且将推出一款名为Google电话的自有品牌智能手机。另有传闻指出,按照Google的作风,将有可能呈现出新的智能手机制造商和运营商模式。传闻指其早期原型跟BlackBerry手机非常相似,没有触摸屏和物理QWERTY键盘,但这其实也是针对微软而做的,因为当时的Windows Mobile手机有很多都是这样的设计。然而2007年苹果公司推出iPhone,这令Android创始人安迪·鲁宾对原型机大为不满,意味着Android系统的设计“不得不回到草稿重新来过”。Google后来修改了Android系统的规范文档,指出“支持触摸屏”,虽然“产品的设计是以离散物理按钮作为假设,因此触摸屏不能完全取代物理按钮”。

2007年9月,Google提交了多项移动领域的专利申请。但并没有人知道,Google将会推出的是一款名为Android的智能手机操作系统。更多的猜测是,Google会推出一款像iPhone一样的自有品牌智能手机系列。

2007年9月,数字杂志《Information Week》报导了一项Evalueserve的研究报告,指Google已在移动电话领域上提交了多份专利申请。

2007年11月5日,在Google的领导下,成立了开放手持设备联盟(Open Handset Alliance),那是包括Google在内的科技公司联盟,其他成员包括HTC、摩托罗拉、Samsung等设备制造商,无线运营商则包括Sprint及T-Mobile,芯片制造商高通及德州仪器,目标是为移动设备开发“首个真正开放和全面的移动设备平台”。随后,其他厂商加入,包括Broadcom、Intel、LG、Marvell等。联盟开放手持设备联盟的创建目的是为了创建一个更加开放自由的移动电话环境。而在开放手持设备联盟创建的同一日,联盟对外展示了他们的第一个产品:一部搭载了以Linux 2.6为核心基础的Android操作系统的智能手机。该年内,开放手持设备联盟正面对着另外两个其他的开源码的竞争对手,包括Symbian基金会和LiMo基金会,LiMo基金会开发了一个基于Linux的移动操作系统,就如Google。

2008年12月9日,新一批成员加入开放手持设备联盟,包括ARM、华为、索尼等公司。

自2008年以来,Android已有许多更新以逐步改进其操作系统,并增加了新功能及修复了以前版本的错误。每个主要版本的名称都以甜品或含糖的小食并按字母顺序来命名,最初的几个Android版本按此顺序称为“纸杯蛋糕(Cupcake)”、“甜甜圈(Donut)”、“闪电泡芙(Eclair)”和“优格霜淇淋(Froyo)”。

为了跟iPhone 3G能互相媲美,诺基亚和黑莓手机于2008年均宣布有关触摸屏的智能手机的信息,Android的焦点最终也转向触摸屏。第一款运行Android系统的商用智能手机是HTC Dream,亦名为T-Mobile G1,该智能手机于2008年9月23日发布。

同时,一个负责持续发展Android操作系统的开源代码项目成立了AOSP(Android Open Source Project)。除了开放手持设备联盟之外,Android还拥有全球各地开发人员组成的开源社群来专门负责开发Android应用程序和第三方Android操作系统来延长和扩展Android的功能和性能。

随着2013年Android发布新版本奇巧巧克力,Google解释“由于这些设备使我们的生活如此甜蜜,每个Android版本都以甜品来命名”,虽然Google的发言人在接受CNN访谈时指:“这有点像内部团队的事情,我们更愿意做多一点—我该怎样说呢—我会说在这个问题上有点难以捉摸的。”

2010年,Google推出了Nexus系列的设备,他们与不同的合作设备制造商一起生产新设备并推出新的Android版本。该系列被形容为“透过引入新软件迭代和硬件标准使其在Android的历史中发挥了关键作用,并成为不会因"历代的更新"导致软件膨胀而闻名”。在2013年5月的Google开发者大会上,他们宣布了Samsung Galaxy S4的特别版,特别版在于它搭载了原生Android,并承诺能快速接收新的系统更新。设备将成为“Google Play Edition”的开始,其他设备也会随之而来,包括HTC One (M7)以及Moto G。2015年,Google Play Edition版步入了历史。

从2008至2013年,雨果·巴拉担任Android产品发言人,参与Google年度开发人员会议的Google开发者大会。他于2013年8月离开Google,并随即加入中国手机制造商小米。在他离任不足六个月前,Google时任CEO赖利·佩吉在一篇博客文章中宣布,鲁宾从Android部门转移到Google的新项目,而桑德尔·皮蔡将会成为Android的新主管。皮蔡本人最终转换了职位,随着Google重组大型联合的Alphabet集团,他在2015年8月成为了Google的新任CEO,让浩史·洛克海默成为Android的新任负责人。

2014年6月,Google发布了Android One,那是一组“硬件参考模型”,这将容许(设备制造商)以低成本轻松打造高质量手机。同年9月,Google宣布推出首款在印度发布的Android One手机。然而科技网站《Recode》在2015年6月报导该项目“令人失望”,引用指“消费者和制造伙伴不情愿”及“搜索公司不奏效因从未破解硬件”。Google计划于2015年8月重推Android One,一周之后,该公司宣布非洲成为该计划的下一个地点。2017年1月,《信息(The Information)》报导称Google正在将其低成本的Android One计划扩展至美国,尽管《边缘(The Verge)》指该公司可能不会生产实体的设备。

2016年10月,Google发布智能手机Pixel,作为Google推出的第一款手机,并且在更广泛推出之前,专门展示某些软件功能,例如Google助理。Pixel手机取代了Nexus系列。

2019年8月23日,Google宣布从Android Q开始不再以甜品命名,且直接称Android Q为Android 10。

2021年9月27日起,Android2.3.7及以下的Android版本无法登录Gmail、YouTube、Google地图等相关App,也无法创立或登录Google账号。

系统特点

界面

Android的默认用户界面主要基于直接操作,透过触控松散地对应现实动作以作出输入,例如滑动、点击、捏动和反向挤压,随着虚拟键盘,以操控屏幕上的对象。游戏控制器及物理键盘都能透过蓝牙或USB得到支持。在回应用家的输入方面,设计旨在提供立即流畅的触摸界面,经常使用设备的振动功能向用户提供触觉反馈。内部硬件,例如是加速规、陀螺仪、距离传感器都能被某些应用程序来回应用户的操作,例如根据设备的方向来把屏幕由纵向调整为横向,或容许用户透过旋转设备,在赛车游戏中驾驶车辆。

当Android设备启动就会进入主画面,那是设备的主要导航及信息“枢纽”,类似于个人电脑的桌面。Android的主画面通常由应用程序图标及小工具(widget)组成,应用程序图标启动相关的应用程序,而小工具则会实时显示,并会自动更新内容,例如天气预报、用户的电子邮件,或是直接在主画面上看新闻摘要。主画面可以由若干页面组成,用户可以在这些页面之间来回滑动。Google Play上提供的第三方应用程序,而其他的应用程序商店可以广泛使用重新定义的主画面主题包,甚至模仿其他操作系统的外观,例如Windows Phone。大多数制造商会定制他们Android设备的外观和功能,以从竞争对手中脱颖而出。

屏幕顶部是状态栏,显示有关设备及其连接的信息。用户可把状态栏“拉下”,以显示应用程序显示的重要信息,或屏幕更新的通知。通知是“当用户的应用程序在非使用时所提供简短、及时和相关的消息。”当点击了,用户会被引导到该app内与该通知相关的屏幕。从Android Jelly Bean开始,可扩展通知“允许用户透过点击通知上的图标,以便它扩展和显示从通知中得知的更多信息以及有可能的应用操作。”

“所有应用程序”的屏幕将会所有已安装的应用程序,用户可以将应用程序从列表拖曳到主画面上。“最近”的屏幕让用户在最近使用过的应用程序之间进行切换。

应用程序

应用程序(简称apps)是扩展设备功能的软件,都是利用Android软件开发工具包(SDK)编写的,通常是Java编程语言。Java可以与C语言或C++结合使用,并且可以选择非默认的执行时库共享,以允许获得更好的C++支持。虽然Google的Go是有一组有限的应用程序接口(API),然而它也支持编程语言。2017年5月,Google宣布支持Kotlin编程语言。

SDK包含一套全面的开发工具,包括调试器、函数库、基于虚拟机镜像的仿真器、文档,示例代码和教程。最初,Google支持的集成开发环境(IDE)是使用Android开发工具(ADT)插件的Eclipse;在2014年12月,Google基于IntelliJ IDEA而发布Android Studio,作为Android应用程序开发的主要IDE。其他可用的开发工具,包括应用程序的本地开发包(NDK),或是用于C或C++中的扩展,MIT应用开发者,那是让新手程序员的视觉环境,以及各种跨平台移动应用程序框架。2014年1月,Google推出了一个基于Apache Cordova的框架,把Google Chrome、HTML5及网络应用程序移植到Android,包装于本机应用程序的外壳中。

Android拥有越来越多第三方应用程序的选择,用户可以透过下载和安装应用程序的APK(Android应用程序包),或利用应用程序商店来下载,允许用户在那里进行安装、更新和移除。Google Play是安装在Android设备上的主要应用程序商店,那些程序都符合Google的兼容性要求,并获得Google移动服务软件许可。Google Play商店允许用户浏览、下载及更新Google和第三方开发者发布的应用程序。

由于Android系统的开放性质,使它吸引许多第三方应用程序市场的竞争,及由于违反了Google Play商店的政策或是其他原因而不允许发布的应用程序替代品,第三方应用程序商店的例子包括是亚马孙应用商店、GetJar及SlideMe。另一个替代市场F-Droid,旨在提供仅在自由和开源许可下分发的应用程序。

内存管理

由于Android设备通常采用电池供电,因此Android旨在管理流程以将耗电降至最低。当应用程序未使用时,系统会暂停其操作,虽然可以在关闭期间立即使用,但它并不会使用电池电源或CPU资源。当内存不足时,系统将会自动隐藏地开始关闭长时间内处于非活跃状态下的进程。Lifehacker在2011年的报告指出,第三方任务杀手应用程序是弊大于利。

硬件支持

Android的主要硬件平台为ARM架构(包括ARMv7及ARMv8-A ),在更高端版本的Android中也正式支持x86及x86-64的架构。非官方的Android-x86的项目在得到官方正式支持之前为x86架构提供支持。ARMv5TE和MIPS32/64架构于过去得到支持,但在后来的Android版本中遭到删除。自2012年以来,随着拥有英特尔处理器的Android设备开始出现,包括手机及平板电脑。在得到对64位平台的支持同时,Android最初是在64位x86上运行,后来就在ARM64。自从Android 5.0 “Lollipop”以来,除32位变体(32-bit variants)外,还支持所有64位变体(64-bit variants)的平台。

运作Android 7.1的设备对RAM最低要求的范围从最佳硬件的2GB降到最常见屏幕的1GB;最低规格的32位智能手机最小需要512MB。Android 4.4的建议是至少需要512MB的RAM,而对于“低RAM”设备,340MB是必需的最低容量,不包括专用内存的各种硬件组件,例如基带处理器。Android 4.4 需要32位的ARMv7, MIPS或x86的架构处理器(后两者是非官方连接端口),以及与OpenGL ES 2.0兼容的图形处理器(GPU)一同使用。Android支持OpenGL ES 1.1、2.0、3.0、3.1及截至现时为止最新的主要版本3.2及自Android 7.0的Vulkan (API)(和版本1.1适用于某些设备)。某些应用程序可能会明确要求使用某个版本的OpenGL ES,并且运行此类应用程序需要合适的GPU硬件。

Android设备包括了许多可选的硬件部件,包括静止或视频录像机、GPS、方向传感器、专用游戏控制器、加速规、陀螺仪、气压计、磁强计、接近传感器、压力传感器、温度计和触摸屏。某些硬件组件不是必需的,但在某些类别的设备(如智能手机)中成为了标准组件,若存在其他要求,则适用。最初需要一些其他硬件,但那些要求都经已放宽或完全取消。例如,由于Android最初是作为手机操作系统而开发的,因此必须麦克风等那些硬件,而随着时间的推移,这些手机功能变成可选的项目。Android曾经需要一台自动对焦的相机,这款相机已经放宽到成为固定焦距相机,若是现存的话,当Android开始在数字视频转换盒(俗称机顶盒)上使用时,相机就能完全被丢弃了。

Android除了在智能手机和平板电脑上运作外,还可以在一些附有键盘和鼠标的普通PC硬件上运作。除了可在商用硬件上使用外,Android也有类似于PC硬件友好的版本,可以从Android-x86的项目中免费提供,包括个人订制的Android 4.4版本。使用作为Android SDK一部分的仿真器,或第三方的仿真器,Android也可以在x86架构上非本机地执行。中国的一些公司基于Android,正在构建PC与移动设备的操作系统,是“Google Android与Microsoft Windows之间的直接竞争。”中国工程学院指出,随着中国禁止在政府电脑上使用Windows 8,数十家公司正在定制Android系统。

软件开发

Android是由Google开发的,直至准备发布前最新的修改及更新,在这一点上源代码可供Android开源项目(AOSP)使用,这是一个由Google领导的开源计划。AOSP代码可于无需的修改选定设备中找到,主要是Google Nexus及Google Pixel系列的设备。反过来说,那些开源码是由代工生产定制和调整以在他们的硬件上执行。此外,Android的源代码并不包含某些硬件组件所需专有的驱动程序,因此大多数的Android设备(包括Google自己的设备)最终都会附带着自由及开放源码软件及专有软件的组合,伴随着用于进入Google服务所需的软件,都会落入后者的一类。

更新时间表

名称版本号发行日期API等级安全性更新状态
Android 1.0旧版本,不再支持: 1.02008年9月23日1不支持
Android 1.1旧版本,不再支持: 1.12009年2月9日2不支持
Android Cupcake旧版本,不再支持: 1.52009年4月27日3不支持
Android Donut旧版本,不再支持: 1.62009年9月15日4不支持
Android Eclair旧版本,不再支持: 2.0 – 2.12009年10月26日5 – 7不支持
Android Froyo旧版本,不再支持: 2.2 – 2.2.32010年5月20日8不支持
Android Gingerbread旧版本,不再支持: 2.3 – 2.3.72010年12月6日9 – 10不支持
Android Honeycomb旧版本,不再支持: 3.0 – 3.2.62011年2月22日11 – 13不支持
Android Ice Cream Sandwich旧版本,不再支持: 4.0 – 4.0.42011年10月18日14 – 15不支持
Android Jelly Bean旧版本,不再支持: 4.1 – 4.3.12012年7月9日16 – 18不支持
Android KitKat旧版本,不再支持: 4.4 – 4.4.42013年10月31日19 – 20不支持
Android Lollipop旧版本,不再支持: 5.0 – 5.1.12014年11月12日21 – 22不支持
Android Marshmallow旧版本,不再支持: 6.0 – 6.0.12015年10月5日23不支持
Android Nougat旧版本,不再支持: 7.0 – 7.1.22016年8月22日24 – 25不支持
Android Oreo旧版本,不再支持: 8.0 – 8.12017年8月21日26 – 27不支持
Android Pie旧版本,不再支持: 92018年8月6日28不支持
Android 10旧版本,仍被支持: 102019年9月3日29支持
Android 11旧版本,仍被支持: 112020年9月8日30支持
Android 12旧版本,仍被支持: 122021年10月4日31 – 32支持
Android 13当前版本: 132022年8月15日33支持
Android 14未来版本: 142023年Q334不适用

格式:

旧版本

旧版本,仍被支持

当前版本

最新的预览版

未来版本

Google每年都会宣布对Android进行重大的增量升级。程序更新可以透过空中编程以无线传输于设备上安装。最新的主要版本是在2020年9月发布的Android 11。

Android与其主要的竞争对手苹果公司的iOS相比,Android的更新通常会明显的延迟以让各种设备安装。除了Google的Nexus和Pixel品牌的设备外,更新通常会在新版本发布的几个月后到达,或者根本没有。这部分是由于Android设备中硬件各不相同,每次升级必须专门定制,那是个耗费时间和资源的过程。制造商经常会优先考虑他们最新的设备并遗下旧设备。在收到制造商的更新后,无线运营商可以让设备额外延迟推出,以便于升级发送给用户之前,商户能透过进一步根据自己品牌的需求而定制及在他们的网络上进行广泛的测试。由于一个制造合作伙伴没有为驱动程序提供必要的更新,故此会有一些情况下无法进行升级。

随着新版本的操作系统,Android设备中硬件的广泛变化会导致软件升级有严重的延误,而补丁通常需时几个月才能到达消费者手中,有时甚至根本没有。制造商和运营商缺乏售后支持服务受到消费者群及科技媒体的广泛批评。一些评论员指出了一点,指这个行业有一个金融刺激而不会为他们的设备升级,由于缺乏为现有设备更新,故推动购买新产品,这种态度被形容为“侮辱”。《卫报》抱怨指更新的分发方法很复杂只是因为制造商和运营商都是这样设计。2011年,Google与众多业内人士合作宣布推出“Android更新联盟”,承诺在每台设备发布后18个月内提供及时更新,然而,自宣布以来,关于那个联盟并没有另外一个官方的说法。

2012年,Google开始将操作系统的某些方面(特别是其核心应用程序方面)脱钩,这样他们就可以通过Google Play商店独立地为操作系统作更新。其中一个组件—Google Play服务,是个闭源的、系统级的程序,可为Google服务提供应用程序接口,为执行Android Froyo或更高版本的设备上自动安装更新。通过这些特性,Google可以透过Play服务添加新的系统功能及更新应用程序而毋需将升级分发到操作系统本身,因此,Android Jelly Bean包含相对较少面向用户的变化,对平台改进及细微变化更为侧重。

2016年5月,彭博报导称Google正在努力让Android保持最新状态,包括加快安全更新率、推出技术的解决方案、减少对手机测试的要求,并对电话制造商进行排名,试图利用“羞辱”他们来让行为变得更好。正如《彭博》所说:“随着智能手机变得越来越强大,复杂和可攻击,让最新的软件能与硬件密切合作变得越来越重要。”Android的领导人浩史·洛克海默承认指“这不是一个理想的情况”,他进一步评论指缺乏更新是“Android上安全性最薄弱的环节”。无线运营商在报告中被描述指那是“最具挑战性的讨论”,因为运营商的网络测试审批时间较慢,尽管有一些运营商包括威讯无线及Sprint,已经缩短了他们各自的审批时间。HTC的时任执行官贾森·麦肯齐(Jason Mackenzie)于2015年称每月的安全性更新是“不切实际”,而Google试图说服运营商从完整的测试程序中排除安全补丁。为了进一步说服,Google分享了与其Android合作伙伴更新设备的顶级手机制造商的一份清单,并正在考虑将名单向公众发布。手机制造商Nextbit的联合创始人及前Android开发人员Mike Chan说,“解决这个问题的最佳方法是对操作系统进行大规模的重组架构”或Google可以投资培训制造商和运营商“成为优秀的Android人民”。

2017年5月,随着Android Oreo发布,Google推出了Project Treble,旨在使制造商能够更轻松,更快捷,及更低成本地将设备更新到Android的最新版本。Project Treble通过新的“供应商界面”将供应商实施与Android OS框架分开(由硬件制造商所写供设备专用的较低级别软件)。在Android 7.0及更早版本中,并不存在正式的供应商界面,因此设备制造商必须更新大部分Android代码,以将较新版本的操作系统移至设备中。借助Project Treble,新的稳定供应商界面可以进入Android特定部分的硬件,使设备制造商能够简单地通过更新Android操作系统框架来为设备提供新的Android版本,而“毋须硅制造商的任何额外工作。”

2017年9月,Google的Project Treble团队透露,作为改善Android设备安全生命周期努力的一部分,Google已经设法让Linux基金会同意延长Linux长期支持(LTS)的内核分支的生命周期至少两年,对于未来版本的LTS内核,历史上已经持续了6年,并从Linux内核4.4开始。

Linux内核

Android的内核是根据Linux内核的长期支持的分支,具有典型的Linux调度和功能。截至2018年,Android的目标是Linux内核的4.4、4.9或是4.14版本。实际的内核取决于单个设备。

Linux内核的Android的变种具进一步改进了由Google实施在典型的Linux内核开发周期之外实现的架构变化,比如包含类似组件的设备树(device trees)、ashmem、ION,以及不同的内存不足(OOM)的处理。除此之外,Google为了能让Linux在移动设备上良好的运行,对其进行了修改和扩展。Android去除了Linux中的本地X Window System,也不支持标准的GNU库,这使得Linux平台上的应用程序移植到Android平台上变得困难。Google也有某些功能贡献回到Linux内核,特别是一种称为“唤醒锁(wakelocks)”的电源管理功能,它最初被主线内核开发人员拒绝,部分原因是因为他们认为Google并没有表现出维护他们自己代码的任何意图。2008年,Patrick Brady于Google I/O上演说题为“Anatomy & Physiology of an Android”,并提出Android HAL的架构图。HAL以*.so扩展名的形式存在,可以把Android框架跟Linux内核隔开,这种中介层的方式使得Android能在移动设备上获得更高的执行效率。这种独特的系统结构受到Linux内核开发者葛雷格·克罗哈曼及其他核心维护者称赏。Google还在Android的核心中正式加入了自己开发制作的一个名为唤醒锁(wakelocks)的功能,该功能用于管理移动设备的电池性能,但是该功能并没有被加入到Linux内核的主线开放和维护中,因为Linux内核维护者认为Google没有向他们展示这个功能的意图和代码。Google于2010年4月宣布他们将会聘请两名员工跟Linux内核社团合作,但目前Linux内核对于稳定分支维护者的葛雷格·克罗哈曼,他于2010年12月说他担心Google不再试图让他们的代码更改包含在主流Linux中。Google的工程师帕特里克·布雷迪(Patrick Brady)曾在该公司的开发者大会中表示过“Android不是Linux”,而他在周刊《Computerworld》补充指“让我替你简化一下,要是没有Linux,这里就没有Android”。《Ars Technica》写道:“尽管Android是创建在Linux内核之上的,但该平台与传统的Linux堆栈桌面几乎没有共同之处。”

2010年2月3日,由于Google在Android核心开发方面和Linux社群方面开发的不同步,Linux内核开发者葛雷格·克罗哈曼把Android的驱动程序从Linux内核“状态树”(staging tree)上除去。2010年4月,Google宣布将派遣2名开发人员加入Linux内核社群,以便重返Linux内核。2010年9月,Linux内核开发者Rafael J. Wysocki添加了一个修复程序,使得Android的“wakelocks”可以轻松地与主线Linux内核合并。 2011年8月,Linux内核最早作者的林纳斯·托瓦兹说:“Android和Linux最终都会重新回到一个共同的内核,但它可能不会持续4-5年”。2011年12月,葛雷格·克罗哈曼(Greg Kroah-Hartman)宣布启动Android的主流项目,其目的是要将一些Android驱动程序、补丁及功能重新放进Linux内核中,从Linux 3.3开始。经过从前多次的尝试合并后,Linux在3.5内核中,包括自动休眠和唤醒锁功能功能。其界面是相同的,但是上游的Linux实现了容许两种不同的中止模式:存储器(Android使用的传统中止模式)及磁盘(已知桌面上的冬眠)。Google维护着一个公共代码存储库,包含着他们对Android的Rebasing到最新稳定的Linux版本的实验工作。

Android设备的闪存被分成几个分区,例如/system用于操作系统本身,而/data是用于用户数据和应用程序的安装。跟Linux桌面发行版相比,Android设备的拥有人都没有给予超级用户的进入操作系统的权限,以及例如/ system是只读存储器的敏感分区。然而,文件系统层次结构标准是可以透过利用Android中的安全漏洞来获取,那是开源社区经常使用它来增强其设备的功能,恶意的一方还可以透过安装电脑病毒及恶意软件来恶意获取系统资料。

根据Linux基金会的说法,Android是个Linux发行版,该基金会由Google的开源部门主管克里斯·迪博纳及几位记者组成,其他人例如Google的工程师帕特里克·布拉迪(Patrick Brady)等,布拉迪表示在传统类Unix系统的Linux发行意义上,Android并不是Linux;Android不包括GNU C函数库(它利用 Bionic作为替代C数据库),以及Linux发行版中常见的一些其他组件。

随着2017年Android Oreo的推出,Google基于安全考虑,开始要求新附带系统单片机的设备具有Linux内核版本4.4或更高版本,现有的设备升级到Android Oreo,以及与旧的系统单片机一起推出的新产品,均不受此规则所限。

软件堆栈

在Linux内核之上,有一些由C所写的中间件、函数库和应用程序接口,以及运行包含Java兼容库的应用框架上应用程序。Linux内核的开发则继续独立于Android的其他源代码项目。

截至5.0版本,Android利用Dalvik虚拟机作为程序虚拟机,它与实时的跟踪编译(JIT)来执行Dalvik“DEX-代码”(Dalvik的可执行程序),这通常是由Java字节码一同翻译而来。继基于跟踪的JIT的原则,除了解读大多数应用程序代码外,Dalvik执行编译及每当应用程序启动时,选择本机执行的频繁执行代码段(痕迹)。Android 4.4引入Android Runtime(ART)作为新的运作环境,在安装应用程序时,它会使用提前编译(AOT)来把应用程序字节码完全编译为机器语言。在Android 4.4中,ART是一项实验性功能,默认情况下不激活;它成为Android 5.0的下一个主要版本中唯一的运作选项。2015年12月,Google宣布Android的下一个版本将会切换到基于OpenJDK项目的Java实行方式。

Android的C标准库及Bionic都是由Google专门为Android而开发的软件,作为BSD标准C程序库代码的推导。Bionic本身已跟特定于Linux内核的几个主要特点而设计。使用Bionic而不是GNU C函数库(glibc)或uClibc的主要好处是:它运行时间的足迹较小,以及对低频CPU进行优化。与此同时,Bionic根据BSD许可条款而获得许可,当中Google找到更适合Android的整体许可模式。

针对不同的许可模式,Google于2012年底将Android中的蓝牙堆栈从GPL许可的BlueZ转移到Apache许可的BlueDroid。

Android默认情况下并没有本机X窗口系统,也不支持整套标准GNU库。这使现有Linux应用程序或程序库都难以移植到Android,直至Android的Android原生开发包的r5版本完全以C或C++编写的应用程序以获得支持 由C所编写的程序库也可以透过注入一个小垫片及使用Java本地界面(JNI)以在应用程序中使用。

自Android Marshmallow发布以来,一系列指令实用程序的“玩具盒”取代了之前Android版本中类似“Busybox”系列(当Android于默认情况下不提供命令行界面时,它主要供应予应用程序使用)。

Android也有另一个操作系统,名为“Trusty操作系统”,作为“Trusty”当中的一部分,软件组件在移动设备中支持著一个可信执行环境(TEE)。“Trusty和Trusty API是 可调整的......”Trusty OS的应用程序可以由C或C++所编写(C++的支持是有限的),他们可以进入一个小型的C程序库......所有Trusty应用程序都是单线程的;多线程的用户空间目前并不支持......第三方应用程序的开发并非支持当前版本,而操作系统和处理器上使用软件,为“受保护的内容执行DRM框架”。TEE还有许多其他用途,例如移动支付、银行业的保安、全磁盘加密、多重身份验证,设备重置保护、重播保护的持久性存储、无线显示受保护的内容(强制转换)、安全的PIN和指纹处理,甚至是恶意软件检测。

开源社区

Android的源代码是由Google在开源许可下发布,其开放的性质鼓励著一个庞大的开发者社区及发烧友利用开源码作为社区驱动项目的基础,它可为旧设备提供更新、为高级用户增加新功能,或最初随附其他操作系统的设备引入Android系统。这些社区开发的版本通常比较透过官方制造商/运营商的渠道更快为设备带来新功能和更新的,亦具有相当质量的水平;为不能再接收官方更新的旧设备提供持续性支持;或把Android带到正式发布使用其他操作系统的设备上,例如TouchPad。社区发布经常出现Root前并包含由原始供应商并未提供的修改,例如让设备内处理器超频或是调高/低电压的能力。CyanogenMod是社区中使用最广泛的固件,惟现已停产并由LineageOS继任。

从历史上看,设备制造商及移动运营商通常都不支持第三方固件的开发。制造商对使用非官方软件的设备功能不正常,以及由此产生的支持费用表示担忧。此外,如CyanogenMod般经修改的固件有时也会提供例如Tethering等...的功能,否则运营商将收取额外费用。因此,许多设备中常见的技术障碍,包括锁定启动程序及限制访问root的权限都是常见于许多设备中。然而,随着社区开发的软件越来越受欢迎,美国国会图书馆馆长在发表声明之后,允许移动设备进行越狱,制造商和运营商经已对第三方开发软件的立场软化,包括HTC、摩托罗拉、三星及索尼,他们提供支持和鼓励发展。因此,随着时间的推移,由于越来越多的设备随附着已解锁或可解锁的启动程序,绕过硬件限制的规避而安装非官方固件的需要降低了,这类似于Nexus系列手机,虽然他们通常要求用户放弃为设备进行保修。然而,尽管制造商已经接受,但美国的一些运营商仍然要求手机被锁定,此让开发人员和客户感到沮丧。

安全和隐私

公共机构的监督范围

2013年9月,美国及英国的情报机构—美国国家安全局(NSA)及英国政府通信总部(GCHQ)分别披露作为更广泛大规模监控披露(2013年至今)的一部分,他们可以进入iPhone、黑莓手机及Android设备中,访问用户的数据。据报导,他们几乎能够阅读所有智能手机上的信息,包括短信、位置、电邮及备忘录。2014年1月,进一步的报告显示情报机构拥有拦截个人信息传输的能力,他们透过社交网络及其他流行的应用程序如《愤怒鸟》,以用于广告和其他商业原因而收集用户的个人信息。根据《卫报》的报导,GCHQ有不同应用程序和广告网络的Wiki风格指南,以及可以从每个数据中抽取不同的信息。在该周后期,芬兰的愤怒鸟开发者Rovio娱乐宣布,鉴于这些启示,他们正重新考虑与其广告平台的关系,并呼吁更广泛的同业也应这样做。

这些文件显示情报机构进一步努力拦截从Android和其他智能手机中Google地图的搜索及查询,以收集大量的位置信息。尽管《卫报》指出“技术部门是如何收集和使用信息,特别是对于美国以外的人,他们所享有的隐私保护比美国人少,这些最新的披露也可能会引起公众越来越多的关注”,然而NSA及GCHQ坚持认为他们的活动都符合所有相关的国内和国际法律。

维基解密公布了2013-2016年代号为Vault 7的泄露文件,当中详细说明了中央情报局(CIA)进行电子监控和网络战的能力,包括损害大多数智能手机的操作系统(包括Android)的能力。

常见的安全威胁

由于Android操作系统的自由和普及性,一些恶意程序和电脑病毒也随之出现。2010年8月,卡巴斯基病毒实验室报告指发现到Android系统上首个木马程序,并将其命名为“Trojan-SMS.AndroidOS.FakePlayer.a”,这是一个通过短信方式感染智能手机的木马程序,并且已经感染了一定数量的Android设备。除了透过短信的感染方式,这些Android木马程序还可以伪装成一些主流的应用程序,并且还可以隐藏于一些正规的应用程序之中。

来自杀毒公司趋势科技的研究,他们列出最常见Android固件的类型为践踏优质服务,在未经用户同意或甚至是用户不知情下从受感染的手机发送短信至具附加费的电话号码。其他恶意软件于设备上显示不需要或侵入性广告,或将用户的个人信息发送至未经授权的第三方。据报导,Android上的安全威胁正在呈几何级数式地增长;然而,Google的工程师辩论著安保公司出于商业原因而夸大Android系统上的恶意软件和病毒威胁,并指责安保行业玩弄恐惧而向用户推销病毒防护软件。Google坚持危险的恶意软件其实是非常罕见的,而芬安全曾进行的一项调查显示,只有0.5%的Android恶意软件是来自Google Play商店。

尽管Google通过定期的检查撤除这些存在于Google Play商店上的恶意程序和病毒,但是这并不能完全阻止其他病毒通过第三方网络的方式产生并且传播。2015年8月,Google宣布Google Nexus系列中的设备将会开始每月收到安全性补丁。Google还写道:“Nexus设备将会在至少两年内继续获得重大更新,而安全性补丁从设备透过Google Store购买起的18个月内,或从初始可用性起计算三年以上的安全补丁。”接下来的10月,剑桥大学的研究人员得出结论,由于缺乏更新和支持,87.7%使用中的Android手机有已知但未修补安全漏洞。2015年8月,《Ars Technica》的荣恩·阿马德奥(Ron Amadeo)也写道:“Android原先设计最重要的是被广泛采用。Google从头开始,由0%的市场占有率,所以它很高兴放弃控制权并让每个人于采纳的桌上占一席位......现在,尽管Android拥有全球智能手机市场约75-80%的市场占有率—使它不仅是世上最流行的移动操作系统,亦可说是现时最流行的操作系统。因此,安全性已成为了一个大问题。当Android生态系统没有设备要更新,指令链的设计回归,但Android仍然沿用软件更新,它只是起不了作用。”随着Google每月更新时间表的消息出来后,包括三星和LG在内的一些制造商承诺每月发布安全性更新。但是正如杰瑞·希尔登布兰德(Jerry Hildenbrand)于2016年2月的《Android中央》所指,“相反,我们在几种极少数机型的特定版本中得到了一些更新,还有一堆破碎了的承诺”。

2017年3月,在Google的安保博客的帖子上,Android的安保主管阿德里安·路德维希(Adrian Ludwig)及梅尔·米勒(Mel Miller)写道:“在2016年,来自200多家制造商,有超过735,000,000个设备获得平台的安全性更新”,并且“我们的运营商及硬件合作伙伴帮忙为这些更新扩展了部署,在2016年最后一个季度为全球排名首50位的超过一半设备发布更新”。他们还写道:“截至2016年底,大约有一半使用中的设备在过去的一年并没有接收到平台的安全性更新”,并指他们的工作将继续专注于精简安全性更新程序,以便制造商进行部署。此外,对于《TechCrunch》的评论中,路德维希表示,安全更新的等待时间已从“6至9星期缩减至数天”,截至2016年底,在北美约有78%的旗舰设备都获得最新的安全性更新。

修补核心操作系统中发现的错误通常都不会送达到老旧及低价设备的用户手上。然而,Android的开源特性容许安保承包商采用现有设备,并把它们改编用于高度安全性的用途上,例如:三星跟通用动力合作,透过他们的开放核心实验室的收购,以在“Knox”的项目上重建“果冻豆”(Android 4.4)。

Android的智能手机能够报告Wi-Fi接入点的位置(在电话用户四处移动时遇到),构建包含数亿个此类进入点物理位置的数据库。这些数据库构成了用于智能手机中电子地图的定位,让他们使用应用程序如Foursquare、Google定位、Facebook定位,并能提供基于该位置的广告。第三方的监控软件,例如TaintDroid,那是由学术研究资助的项目,在某些情况下,可以检测到用户的个人信息何时从应用程序发送至远程服务器。

目前Android操作系统上已经拥有不同公司的杀毒软件来防止设备中毒,例如Avast、F-Secure、Kaspersky、Trend Micro、Symantec、金山毒霸等防护软件也已经发布了Android版本。

某些病毒,目前经过Cross-Compile的测试,证实它们在Linux上无法正常运作。

2018年11月,知名Android软件Magisk的开发者topjohnwu在XDA上发帖称,现在很多Android手机存在系统漏洞,该漏洞可使第三方应用程序在不被用户授权的情况下监控其它程序的运行,其中可能涉及到个人隐私的泄露问题,值得关注。

技术性保安功能

Android系统具有沙盒机制。沙盒于系统中是一个分离的区域,该区域无法获取系统的其他资源,除非在安装应用程序时,用户明确地授予其获取资源的权限。然而,这一限制对于出厂时预先安装的应用程序则可能无法实现。例如预先安装的相机应用程序,在没有完全禁用相机的情况下,无法关闭麦克风的权限。这个情况在Android的版本7和8当中也有效。所有的应用程序都可先被简单地解压缩到沙盒中进行检查,并且将应用程序所需的权限提交给系统,再将其所需权限以列表的形式展现出来供用户查看。例如一个第三方的浏览器需要“连接网络”的权限,或者一些软件需要拨打电话,或发送短信等。用户可以根据所需权限来考虑自己是否需要安装,应用程序只能在用户同意之后才能进行安装。

2012年1月,美国国家安全局发布了SE Android(原本名为Security Enhanced Android,后来改名为SE for Android或Security Enhancements for Android)的开放源码项目及代码,使Android系统支持强制访问控制(Mandatory Access Control)以增加系统安全性。

自2012年2月起,Google使用其恶意软件扫描仪Google Bouncer监察和扫描在Google Play商店上的应用程序。2012年11月,Google于Android Jelly Bean推出“验证应用程序”的功能,作为操作系统的一部分,扫描来自Google Play和第三方来源的所有应用程序,以防止恶意行为。“验证应用程序”最初只在安装期间进行,然而它在2014年的更新后不断地扫描应用程序,并在2017年透过“设置”中的选项,让用户可见到该功能。

在安装“验证应用程序”前,Google Play商店会显示一系列应用程序所需的要求,查阅这些权限后,用户可以选择接受或拒绝,但必须要在接受的情况下才能安装应用程序。

在Android Jelly Bean中,其原生应用程序管理机制App Ops首次被引入,但并未开放让一般用户使用,直至Android Marshmallow,系统激活其原生应用程序的权限控制(并非App Ops),它容许用户在程序安装后仍能对特定类别的权限使用进行开关,若应用程序的某组权限使用被关闭并准备进入相应权限的方式时,系统会询问用户是否容许。

在Android Marshmallow之前,其权限系统是以“一刀切”的方式进行,应用程序开发商会申请一些非必需的进入权限,或是申请把用户的隐私信息作暗中收集、使用、发送至开发商的服务器;高端用户可以透过获取root权限增加控制程序或修改程序的安装文件,以仔细限制程序的使用权限,或当中涉及数据的运用,然而程序对权限只能在安装时选择“全部同意/全部拒绝”的选项经常为人诟病。

在Marshmallow中,应用程序不再在安装时自动授予其所有指定权限,它会以“选择加入系统”来代替。当应用程序请求授予某一权限时,系统会就是否授予该权限询问用户。应用程序会记着所授权限,授权设置亦可由用户随时更改。但是,预先安装的应用程序不能总是以此方法卸载。在某些情况下,用户可能无法拒绝预先安装的应用程序的某些权限,甚至无法禁用它们。就如Google Play的应用程序,无法卸载或禁用。任何强制停止的尝试的结果只会导致应用程序自动重启。新权限仅供利用软件开发工具包(SDK)为Marshmallow开发的应用程序使用,旧的应用程序将继续使用以前沿用没有中间或妥协的方式。对于这些应用程序,其权限仍然可以被撤销,但这可能会妨碍它们正常运作,并会因此显示警告。

2013年8月,Google发布了Android设备管理器,那是一项于同年12月发布的Android应用程序,它容许用户利用他们的Android设备作远程跟踪、定位及抹除的服务,该应用程序于2017年5月重命名为“查找我的手机”。在2016年12月,Google推出可信联系人的应用程序,让用户在紧急情况下要求获取亲人的位置追踪。

许可证

Android操作系统的源代码是开源码:那是由Google开发的,在发布新版Android的同时公开发布源代码,一切代码为公开免费的。Google发布了大部分的源代码(根据开放手持设备联盟所开发的非Copyleft的Apache许可证2.0下,允许修改和再分配,剩下的Linux内核部分则延续GPL第2版的许可),当中包括网络和电话解决方案堆栈。该许可证并不授予“Android”的商标权利,所以设备制造商和无线运营商必须根据个人合同向Google获得许可。Google也会与硬件制造商合作生产旗舰设备(Nexus系列的一部分),它以包含新版本的Android为特色,然后在该设备发布后公开其源代码。Google也不断发问卷和开放修改清单、更新情况及代码来让任何人看到并且提出意见和评论,以便按照用户的需求改进Android操作系统。Android版本中唯一没有立即发布其源代码的是仅限于平板电脑3.0使用的“蜂窝(Honeycomb)”版本,其原因是根据安迪·鲁宾于Android的官方博客文章指,是因为该版本是为了摩托罗拉Xoom而仓促开发,他们并不希望第三方试图把适用于智能手机的Android版本套用在平板电脑上以创造“非常糟糕的用户体验”。

只有基础的Android操作系统(包括一些应用程序)才是开源软件,任何厂商都不须经过Google和开放手持设备联盟的授权随意使用Android操作系统;大多数Android设备都附带着大量的专有软件,例如是Google移动服务,当中包括Google Play商店、Google搜索,以及Google Play服务 — 那是一个提供与Google提供的服务应用程序接口集成的软件层。这些应用程序必须由设备制造商从Google得到许可,并且只能在符合其兼容性指引及其他要求的配备设备上,任何厂商都不能在未授权的情况下在其产品上使用Google的标志和应用程序。除非生产商能证明其生产的设备符合Google兼容性定义文件(CDD),才能在智能手机上预载属于Google的应用程序。所有符合Google生产规定的智能手机厂商才可以在其产品上印有“With Google”的标志。由制造商生产的定制,认证的Android发行版(例如是TouchWiz及HTC Sense),也可以使用他们自己的专有软件,以及新增并不包括在Android操作系统中的stock应用程序,以替换Android中某些stock应用程序。对于设备中的某些硬件组件,这里可能还需要二进制点的驱动程序的使用。

对制造商的影响力

Google仅将其移动服务软件以及Android的商标授权予符合Android兼容性计划中指定的Google的兼容性标准,因此这使操作系统本身有着重大变化的Android分支(不包括任何Google的非免费组件)跟其所需的应用程序保持不兼容,并且必须随附替代软件,以替代Google Play商店中的市场。此类Android分支的例子有亚马孙的Fire OS(那是用于为亚马孙服务的Kindle Fire系列平板电脑)、诺基亚X软件平台(诺基亚X家族的分支,主要用于为诺基亚及微软服务),以及由于在某些地区一般都无法使用Google服务(例如中国大陆),故排除了Google应用程序的其他分支。2014年,Google也开始要求所有授权使用Google移动服务软件的Android设备的启动画面上显示一个突出的“由Android提供支持”的标志。Google还强制执行了在设备上设置Google移动服务及优惠捆绑计划,包括强制捆绑整个Google主要应用程序包,和Google搜索的快捷方式,以及Google Play商店的应用程序必须以默认配置或在主画面的默认配置附近。

从前在Android的早期版本中使用AOSP代码的一些股票应用程序及组件,例如搜索、音乐,日历及位置API都被Google遗弃,以支持透过Play商店分发的非免费替代品(Google搜索、Google Play音乐及Google日历)和Google Play服务,它们不再是开源的。此外,某些应用程序的开源变体还排除非自由版本中存在的功能,例如相机中的全景照片(Photosphere),和在默认主画面上的Google即时信息(由“Google Now Launcher”的专有版本专用,其代码嵌入于主要Google应用程序的代码中)。这些措施可能旨在阻止分叉并鼓励符合Google商业许可的要求,作为大多数操作系统的核心功能(以及第三方软件)依赖于Google独家授权的专有组件,并且它需要大量的开发资源来开发一套替代包和API来复制或把它们替换。不使用Google组件的应用程序也会处于功能劣势,因为他们只能使用操作系统本身包含的API。

2018年3月,据报导Google开始阻止“未经认证”的Android设备使用Google移动服务软件,并显示一条警告指,“设备制造商已预载了未经Google认证的Google应用程序及服务”。自定义ROM的用户能够将他们的设备ID以他们的Google账户注册来删除此障碍。

包括大多数Android OEM的开放手持设备联盟的成员,被禁止签订生产运行Android分支的设备的合同;2012年,宏碁被Google强行中断生产运行由阿里巴巴集团开发的AliOS的设备,威胁其若不停止则要将其从联盟中移除,因为Google认为该平台是Android的不兼容版本。阿里巴巴集团为这些指控进行辩护,争辩指其操作系统是Android的独特平台(主要使用HTML5应用程序),但是它集成了Android平台的部分内容,容许向后兼容第三方Android软件。事实上,这些设备确实附带了一个提供Android应用程序的应用商店;然而,它们大多数都是盗版软件。

系统架构

中介软件

操作系统与应用程序的沟通桥梁,并用分为两层:函数层和虚拟机。

Bionic是Android改良libc的版本。Android包含了Chrome流览器引擎。Surface flinger是就2D或3D的内容显示到屏幕上。Android使用工具链为Google自制的Bionic Libc。

Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。

Android使用Skia为核心图形引擎,搭配OpenGL/ES。Skia与Linux Cairo功能相当,但相较于Linux Cairo,Skia功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia也是Google Chrome的图形引擎。

Android的多媒体数据库采用SQLite数据库系统。数据库又分为共享数据库及私用数据库。用户可透过ContentProvider类别获取共享数据库。

Android的中间层多以Java实现,4.4版之前使用特殊的Dalvik虚拟机。Dalvik虚拟机是一种“寄存器类型”的Java虚拟机,变量皆存放于寄存器中,虚拟机的指令相对减少。5.0版起改用Android Runtime(ART)。

Dalvik虚拟机可以有多个实例,每个Android应用程序都用一个自属的Dalvik虚拟机来执行,让系统在执行程序时可达到优化。Dalvik虚拟机并非执行Java字节码,而是执行一种称为.dex格式的文件。

硬件抽象层(HAL)

Android的硬件抽象层是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Android framework与Linux kernel隔开,让Android不至过度依赖Linux kernel,以达成“内核独立”(kernel independent)的概念,也让Android framework的开发能在不考量驱动程序实现的前提下进行发展,以达到垄断GPU市场的目的。

HAL stub是一种代理人的概念,stub是以*.so档的形式存在。Stub向HAL“提供”操作函数,并由Android runtime向HAL获取stub的操作,再回调这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即module ID,就可以获取操作函数。

编程语言

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并没有用户层驱动(user space driver)这种东西。所有的驱动还是在内核空间中,并以HAL隔开著作权问题。bionic/libc/kernel/ 并非标准的内核头文件(kernel header files)。Android的内核头文件是利用工具由Linux内核的头文件所产生的,这样做是为了保留常量、数据结构与宏。

Android的核心基于Linux,除了核心之外,则是中介层、数据库元和用C/C++编写的API以及应用程序框架。Android的应用程序通常以Java数据库元为基础编写,运行程序时,应用程序的代码会被即时转变为Dalvik dex-code(Dalvik Executable),然后Android操作系统通过使用即时编译的Dalvik虚拟机来将其运行。

目前Android的Linux kernel控制包括安全、存储器管理、进程管理、网络堆栈、驱动程序模型等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo是Android用来辅助Git工作的一个工具。

应用程序

Google Play

Google透过前身为Android Market的网上商店平台Google Play,提供应用程序和游戏供用户下载,是Android的官方应用商店。截至2013年7月,Google Play官方认证应用程序数量突破100万,超过苹果App Store成为全球最大应用商店。中文App名称为“Play 商店”

2009年2月,Google推出Android Market线上应用程序商店,用户可在该平台网页寻找、购买、下载及评级使用智能手机应用程序及其他内容。第三方软件开发商和自由开发者则可以通过Android Market发布其开发的应用程序。在2011年12月,Android Market上的应用程序下载量超过100亿次。同时,全球已有1亿3千万部Android设备在Android Market即现在的Google Play上下载过软件。

只有通过Google许可并且认证的厂家才能在其产品设备上安装Google服务框架和Google Play。同时受到部分地区和国家的政策影响,Google根据部分地区和国家的政策对Google Play上的内容进行了过滤,因此各地区和国家看到的内容不一样。此外,受到部分地区和国家的电信运营商的影响,Google Play在部分地区和国家可能不可使用。

Google Play内的付费程序在许多国家与地区内提供,如美国、英国、瑞典、德国、斯里兰卡、泰国、越南、香港、台湾等。由于受到谷歌退出中国大陆事件影响,目前Google Play的服务还没有扩展到中国大陆地区,但大陆用户仍可通过国际信用卡和相关的免费软件来完成购买。需要注意的是,通过这种方法购买的软件可能不会得到当地承认的发票。

除了Google的Google Play之外,还有其他公司的应用程序市场,如亚马孙公司的Amazon Appstore,三星公司的三星应用商店,Fetch,AppBrian,与中国国内的酷安、豌豆荚等。

此外,Google Play还提供在Android系统后台对安装的应用程序进行验证的服务,以最大程度防范恶意软件的侵害。

2014年11月,Google已表示将支持中国开发者开发Google Play应用。

程序开发

在早期的Android应用程序开发中,通常通过在Android SDK(Android软件开发包)中使用Java作为编程语言来开发应用程序。开发者亦可以通过在Android NDK(Android Native开发包)中使用C语言或者C++语言来作为编程语言开发应用程序。同时Google还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的Visual Basic语言。此外,Google还推出了Google App Inventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。

移植到Chrome OS

2016年5月20日,Google在Google I/O上表示,将会把 Google Play商店和Android App带到Chrome OS中,使Chrome OS可以执行Android APP增加推行Chromebook和Chromebox的动力,解决该平台应用程序不足的问题;此外Chromebook在美国市场出货量已经超越苹果Mac。

Google把Android应用程序集成进Chrome OS有市场传言Google的目的是想将两者合并,但Android、Chrome OS 与Google Play部门的资深副总裁Hiroshi Lockheimer在专访中驳斥外界传言,称并不会将两者合并,Chrome OS更像是一台电脑,以桌面、文件管理、鼠标和键盘为基础,再搭配App,而Android则是以触控App为核心,两者的市场模式不同并不会尝试合并。

在中国大陆的情况

在中国大陆生产并售卖,或在境外生产、由当地代理商入口、在中国大陆售卖的装有Android操作系统的智能手机(俗称行货),部分会把境外版常附带的部分Google应用程序(包括Google服务框架)删除,替换为中国大陆功能相同或相似的应用,即使这些设备已获得Google兼容性认证及使用授权(CTS及GMS)。而部分手机(如搭载MIUI的小米手机)会在搭载Google服务框架的同时提供禁用的选项,以达到省电的需要。因此,中国大陆用户往往需要自行重装Google程序(部分品牌还需要将手机root之后重新刷入Google服务框架)才能使用Google相关的应用服务。能使用Google服务的标志是可以在系统设置中的法律信息选项中找到“Google法律信息”选项。如果没有,则此机已删除Google服务框架。但通过非正式管道流入中国大陆贩售市场的Android设备(俗称水货),则基本不受此影响(但部分设备的Android系统内则被一些非正规供货商额外预装了某些应用程序,可能会精简Google服务框架等组件)。而在中国大陆生产,并在境外销售的装有Android操作系统的智能手机,亦不受此影响,但少数装有Android操作系统的智能手机(例如华为近期推出的机型,由于美国制裁不能预装Google服务),仍然需要自行重装程序才能使用Google相关的应用服务。

市场

Android于2007年亮相时获得的反应冷淡,虽然Google曾与备受尊敬的科技公司合作组建开放手持设备联盟,分析师们对此留下深刻印象,但当时仍不清楚手机制造商是否愿意用Android取代现有的操作系统。对于开源码的想法,基于Linux开发平台引起了人们的兴趣,但面对着来自智能手机市场的老牌企业(如诺基亚和微软),以及正在开发中的Linux移动操作系统作为其竞争对手。这些老牌厂商持着怀疑的态度,诺基亚被引述说:“我们不认为这是一种威胁”,而微软Windows Mobile团队成员指“我不明白他们将会产生的影响”。

从那时起,Android已经发展成为使用最广泛的智能手机操作系统,及成为“最快的可用移动体验之一”。评审强调了操作系统的开源性质是其定义优势之一,它容许例如诺基亚(诺基亚X家族)、亚马孙(Kindle Fire)、巴诺书店(Nook)、Ouya、百度及其他复刻软件和发布他们运行自己的Android定制版本的硬件。结果是,科技网站《科技艺术》把其描述为:对于没有自己的移动平台的公司来说,“几乎是推出新硬件的默认操作系统”。这种开放性和灵活性也出现在最终用户的层面:Android容许设备作广泛的定制,他们的拥有者及应用程序可以从非Google的应用程序商店和第三方网站中获得。这些被引用为Android手机较其他手机的主要优势之一。

尽管Android很受欢迎,包括其激活率是iOS的三倍,有报告指Google仍未能利用他们的其他产品及网络服务成功地将Android变成分析师所预期的赚钱机器。《The Verge》建议指由于广泛的定制及非Google应用程序及服务的激增,使Google正在失去对Android的控制权,亚马孙的Kindle Fire系列使用的是Fire OS,这是一款经过大量修改的Android分支版本,它不包含或支持任何Google的专有组件,并要求用户从Google Play商店的竞争对手亚马孙应用商店中获取软件。2014年,为了提高Android品牌的知名度,Google开始要求具有其专属组件的设备在启动屏幕上显示Android的标志。

Android遇到“碎片化”的情况,那是在各种Android设备出现的情况,无论是硬件变化还是其运行软件上的差异而言,让开发整个生态系统中一致的应用程序任务较其竞争平台上硬件和软件变化较少的iOS更难,例如,根据2013年7月的开源信号,这里有11,868个Android的设备型号,众多不同的屏幕尺寸,同时使用8种Android操作系统,而绝大多数的iOS用户已升级到操作系统的最新版本。如AppleInsider的评论家断言硬件和软件的碎片化,推动着Android透过大量的低端、低价的产品使用旧版的Android使用率不断上升。他们维持这一点,迫使Android开发人员编写“最平庸的消费者群体”以获取尽可能多的用户,然而他们在设备上仅利用较少比例的最新硬件或软件功能,这样他们的动机似乎太少。然而,开发Android及iOS应用程序的OpenSignal得出的结论是,尽管碎片化的情况可能会使软件开发更加棘手,然而Android在全球更广泛的影响力增加了潜在的回报。

市场份额

2009年的第二季,市场研究公司Canalys估计,Android占全球智能手机操作系统市场的2.8%。根据本土市场研究公司ComScore的数据显示,2009年11月时,Android在美国的智能手机操作系统市场的占有率为5.2%,在2010年2月时,这个数字变成了9.0%,而在2010年第三季度末时,Android已经占据了美国市场的21.4%的份额。到了2010年5月,Android拥有全球智能手机市场的10%,超越了Windows Mobile,而在美国,Android占有28%的份额,超越了iOS。在2010年第四季,其全球份额已经增长占市场的33%,成为最畅销的智能手机平台,超越了Symbian。根据comScore的数据,Android在美国于2011年4月成为最畅销的平台,以31.2%的智能手机份额超越BlackBerry OS。

对于第三方市场的流行,部分Android用户不愿意付费购买应用程序,转而直接下载已被黑客破解的软件。2010年8月,有游戏开发者针对其作品进行的调查指出,在下载盗版方面,亚洲玩家占97%,欧洲玩家占70%,而北美玩家占47%。

截止至2011年6月,Google表示每天透过Google服务器以激活的Android设备多达到了55万部,并且以每周4.4%的速度增长。2011年8月1日,Canalys的数据显示,Android已占据美国48%的智能手机市场的份额。

2011年7月,Google表示每天有550,000个Android设备被激活,高于5月份的每天有400,000个,在当时为止已超过1亿个设备被激活,每周增长4.4%。2012年9月,每天激活130万个设备,在当时为止已激活5亿台设备。截至2011年第三季,高德纳估计超过一半(52.5%)的智能手机销量是属于Android的。

2011年10月13日,Google表示全球市场上有1.9亿部Android设备透过Google认证,而在2011年11月16日,全球市场上已有2亿部Android设备透过Google认证。然而,配备Android操作系统的平板电脑在所有Android设备中占的比例却只有1.8%,只有380万Android蜂巢平板被售出,远远低于苹果公司iPad的销量。

Android的市场会因地区而有差异。2012年5月,根据市场调查公司的数据显示,Android于全球智能手机操作系统中的份额已经过半,达到了60%,即全球有一半的智能手机正在使用Android。2012年7月,美国使用Android“13岁以上的移动用户”高达52%,在中国则上升至90%。2012年6月,Google在2012 Google I/O大会上表示全球市场上有4亿部Android设备被启动,每日启动约100万部。另一方面Android系统的平板电脑的市占率为45.8%,相较之下iOS的市占率为52.8%。截至2012年第三季,根据研究公司IDC的数据,Android占据了75%的全球智能手机市场,总共有7.5亿个设备被激活,而在2013年4月,Android每天有150万次激活。截至2013年5月 (2013-05),Android在中国的市占率为71.5%,超越其竞争对手苹果公司的50%,在全世界的市占率接近70%。;同时,Google Play商店中已有480亿个应用程序经已被安装;在Google I/O上,桑德尔·皮蔡宣布9亿台Android设备已被激活。2013年9月,已有10亿个Android设备被激活。2013年,Android系统的平板电脑市占率高达61.9%,超过iOS的36%。

在大多数市场中,包括美国,Android设备占智能手机销量的一半以上,“只有在日本,苹果公司才能名列前茅”(根据2013年9月至11月的数字)。在2013年底,自2010年的四年内已销售超过15亿部Android智能手机,使Android成为最畅销的手机和平板电脑操作系统。预计到2014年底,Android智能手机将有30亿个的销售量(包括前几年)。据Gartner研究公司称,自2012年以来,Android的设备每年都超越所有竞争者。在2013年,它超过了Windows的比率为2.8比1,或说是5.73亿。截至2015年 (2015-Missing required parameter 1=month!),Android拥有所有操作系统中最大的现有用户群;自2013年以来,销售并使用它的设备也超过使用Windows、iOS及Mac OS X合并起来的数字。

根据StatCounter,只是仅跟踪浏览网页的用途,Android是自2013年8月以来最受欢迎的移动操作系统。Android在印度和其他几个国家是最受欢迎的网页浏览操作系统(除日本和朝鲜外,几乎整个亚洲)。根据StatCounter,Android是在所有非洲国家中最多使用的移动设备系统,它并表示“在一些国家中,手机使用率已经超越桌面,包括印度,南非和沙特阿拉伯”,几乎所有非洲国家已经是这样做了(包括埃及在内的7个国家除外),例如埃塞俄比亚和肯尼亚,其中包括平板电脑的移动使用率为90.46%(仅限Android占所有用途的75.81%)。

虽然西方世界中的Android手机通常包括Google专有的附加组件(如Google Play)到其他开源操作系统,然而在新兴市场的事实并非如此;“ABI Research声称,在2014年第二季中,全球共有6,500万个设备使用开源的Android,高于第一季的5,400万台”;根据国家,估计只基于AOSP源代码的手机百分比放弃Android商标的地区:泰国(44%)、菲律宾(38%)、印尼(31%)、印度(21%)、马来西亚(24%)、墨西哥(18%)、巴西(9%)。

根据2015年1月Gartner的报告指,“Android在2014年有超过了10亿个设备,并将于2015年继续以双位数字的速度增长,较去年同期增加了26%。”这是操作系统在一年内达到超过十亿最终用户的首次;在2014年达到接近11.6亿的最终用户,Android的出货量超越iOS及OS X加起来的四倍,亦高于Microsoft Windows的三倍以上。Gartner预计整个手机市场将“在2016年达到20亿个设备”,当中包括了Android。法哈德·文奥描述统计数据,并于《纽约时报》中写道:“今天所售出的每两台电脑中,就有一台正在运行Android。 “它”已成为了世上主导的电脑平台。”据高级分析软件Statistica估计,2015年以Android作为智能手机安装基础的数量为18亿个,这是预算全球智能手机总数的76%。根据2012年、2013年、2014年的销售数字,Android拥有所有移动操作系统中最高的安装量,并自2013年以来,成为了整体销售最畅销的操作系统,接近所有PC的安装数字。

2015年9月,Google宣布Android每月活跃用户数量为1.4亿,这在2017年5月每月活跃用户上升变成2亿。

在2014年第二季,Android在全球智能手机出货市场的份额为84.7%,创下了新纪录。截至2016年第三季,全球市场份额已增长至87.5%,抛离其主要竞争对手的iOS只有12.1%的市场份额。

截至2016年5月 (2016-05),Google Play商店中的应用程序已下载超过65亿次。截至2017年2月 (2017-02),Google Play商店已发布了超过270万个Android应用程序,操作系统的成功使技术公司之间兴起所谓的“智能手机专利战”的一部分,并使其成为专利诉讼的目标。根据StatCounter于2017年4月的报告,Android超越了Microsoft Windows,成为最受欢迎的总互联网使用的操作系统。从那时起它一直保持着多元化。

平台使用率

平板电脑各操作系统比例

操作系统2012年销售量2012年市占率2013年销售量2013年市占率
Android53,341,25045.8%120,961,44561.9%
iOS61,465,63252.8%70,400,15936.0%
Windows1,162,4351.0%4,031,8022.1%
其他379,0000.3%41,5980.1%

用户使用系统版本比例

此Android版本的细目表只根据截至2019年5月7日的七天内进入Google Play商店的设备资料,因此,这些统计数据并不包括没有进入Google Play商店的各种Android分支的设备,例如是亚马孙的Kindle Fire。

发行日期版本操作系统名称API等级运作所需比率发行设备
000000002018-08-06-00002018年8月6日9Pie旧版本,仍被支持: 28ART10.4%Sony Xperia XZ3、 Pixel 3、Pixel 3 XL
000000002017-12-05-00002017年12月5日8.1Oreo旧版本,仍被支持: 27ART5.8%Sony Xperia XZ1、Pixel 2、Pixel 2 XL
000000002017-08-21-00002017年8月21日8.0旧版本,仍被支持: 26ART13.4%
000000002016-10-04-00002016年10月4日7.1Nougat旧版本,仍被支持: 25ART10.3%LG V20、Pixel、Pixel XL
000000002016-08-22-00002016年8月22日7.0旧版本,仍被支持: 24ART19.0%
000000002015-10-05-00002015年10月5日6.0Marshmallow旧版本,不再支持: 23ART21.6%Nexus 5X、Nexus 6P、HTC One A9
000000002015-03-09-00002015年3月9日5.1Lollipop旧版本,不再支持: 22ART14.7%Nexus 6、Nexus 9
000000002014-11-03-00002014年11月3日5.0旧版本,不再支持: 21ART 2.1.03.6%
000000002013-10-31-00002013年10月31日4.4KitKat旧版本,不再支持: 19Dalvik (及ART 1.6.0)7.8%Nexus 5
000000002013-07-24-00002013年7月24日4.3Jelly Bean旧版本,不再支持: 18Dalvik0.5%Nexus 7
000000002012-11-13-00002012年11月13日4.2旧版本,不再支持: 17Dalvik1.6%Nexus 7、Nexus 4、Nexus 10
000000002012-07-09-00002012年7月9日4.1旧版本,不再支持: 16Dalvik1.1%
000000002011-10-19-00002011年10月19日4.0Ice Cream Sandwich旧版本,不再支持: 15Dalvik0.3%Galaxy Nexus
000000002011-02-09-00002011年2月9日2.3Gingerbread旧版本,不再支持: 10Dalvik 1.4.00.3%Nexus S

格式:

旧版本

旧版本,仍被支持

当前版本

最新的预览版

未来版本

截至2019年5月 (2019-05),有80%的设备已有OpenGL ES 3.0或更高的配置。

专利纠纷

盗版应用

一般来说,付费的Android应用程序很容易被盗版。在2012年5月的《Eurogamer》的访问中,《足球经理系列》的开发者表示,在他们的游戏“掌上足球经理”上,盗版玩家与合法玩家的比例为9:1。然而,并非所有开发者都同意盗版率是一个问题;例如,在2012年7月,游戏《上弦骑士》的开发者表示,他们的游戏盗版率仅为12%,大部分盗版来自中国大陆,那里的人们无法从Google Play购买应用程序。

在2010年,Google发布了一款用于验证在应用程序内使用授权购买的工具,但开发人员抱怨说对破解软件而言,这是还不足够及微不足道的。Google回应指该工具,特别是其初始版本,旨在作为开发人员根据他们的需求进行修改和构建的示例框架,而并非完整的盗版解决方案。Android的Jelly Bean引入了加密付费应用程序的功能,因此它们只能在购买它们的设备上使用。

专利争议

《PC世界》杂志网站2011年9月22日报道,Android卷入1000多件专利诉讼中。

2011年8月,Google斥资125亿美元收购摩托罗拉移动(Motorola Mobility)及其拥有的约2.45万份专利组合。

Android的Gameloft应用程序打开后,必须透过安装必备文件来使用。

与甲骨文公司的Java纠纷

关于甲骨文公司就Android所使用的开发语言平台Java为最引人关注的权利纠纷事件。

2010年8月,甲骨文公司就开始对Google无授权使用Java语言实现侵犯了公司的专利在美国加州北区地方法院提起控诉,要求高达90亿美元的赔偿,其中牵涉了原供职于Sun公司的Java开发人员在转职Google开发Android的Java实现使用了原公司的实现,API界面的实现是否具有专利著作权性,Android的Java实现是否对甲骨文公司的Java移动平台系列产品做成冲击而形成不正当垄断等问题。

2012年5月的诉讼结果为陪审团支持Google的诉求,认为API只是系统或操作的方法,不受著作权保护。2012年10月甲骨文公司上诉,2014年5月,美国联邦巡回上诉法院认为API属于“电脑程序”仍受著作权保护,判决Android侵犯了甲骨文公司Java的著作权,但并不排除Google对其拥有合理使用性的权利。2014年10月Google向美国最高法院申请调卷令,请求最高院介入。2015年6月29日调卷令被拒绝,发往旧金山联邦法院进行审理。

2016年5月,旧金山联邦法院陪审团认定Android实现Java的API命名结构属于合理使用,不构成侵权,最终判Google胜诉。

2016年8月22日,Google在Android 7.0 Nougat中将专利的JDK替换成开源方案的OpenJDK,以彻底解决Java的专利问题。

2021年4月5日,美国联邦最高法院以6票对2票的表决结果,裁定Google使用Java编程语言开发Android移动操作系统,属“合理使用”,不构成侵权。

该裁定认为Google在开发Andriod系统中,复制、使用部分Java API代码作为应用程序接口的行为,属于宪法保障“创造性进步”原则的合理范围。大法官斯蒂芬·布雷耶指出,若将甲骨文所欲执行的主张进行明确立法将损害公众利益,如同把计算机程序码变成“限制未来应用程序实现创造力的枷锁”。不过,对于API代码是否享有著作权保护,最高法院并未作出明确回答。

针对裁决,Google表示,这是“创新、相互操作性、计算机科学”一次共同的重大胜利,“更重要的是,API代码几乎没有创造力,只是开发人员用以调用、或是调用使用编程语言支持其他指令的一种速记,因此,对于侵权行为的主张是不合理的”。甲骨文则再次重申Google偷走Java代码的指控,并表示本次Google的胜利,“完全是基于Google在整个市场、经济支配中的优势地位”。

分支平台

Android Wear OS

Android Wear OS是专为智能手表等可穿戴式设备所设计的一个Android系统分支。

Android TV

Android TV是专为家用电视所设计的一个Android系统分支。

Android Auto

Android Auto是专为汽车所设计的一个Android系统分支。

Android Automotive

是Android操作系统的变体,也是一款专为车辆仪表板中的使用而量身定制系统分支。

Android Go

Android Go是针对低端设备量身订作的Android系统分支。

吉祥物

Android的吉祥物为绿色的安卓机器人,设计者为Irina Blok。纽约时报的Pagan Kennedy在2013年发布了一篇关于安卓机器人的文章。文中提到了Irina在设计安卓机器人之初研究了许多科幻类玩具和太空电影。文章还指出Irina的最终灵感来自于厕所标志。厕所标志线条简洁,全世界的人都认识。安卓机器人完美地继承了这些特性。