一、Android系统
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。
二、Android已发布版本
Android在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是:阿童木(AndroidBeta),发条机器人(Android 1.0)。后来由于涉及到版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。甜点命名法开始于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) [8-9]
从Android 10开始,Android不会再按照基于美味零食或甜点的字母顺序命名,而是转换为版本号,就像Windows操作系统和iOS系统一样 [10] 。
三、Android系统的特点
(1).开放性:
在优势方面,Android平台首先就是其开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
(2).丰富的硬件:
这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带iPhone上使用、联系人等资料更是可以方便地转移。
(3).跨平台:
由于使用Java进行开发,Android继承了Java跨平台的优点。任何Android应用几乎无需任何修改就能运行于所有的Android设备。包括但不限于手机,平板,手环,车载系统,智能家居。
(4).方便开发
Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。
(5).Google应用
在互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。
缺点:
(1).太碎片化:
纷繁复杂的屏幕尺寸,分辨率,不同版本且订制开发的Android系统,各个厂家硬件,虚拟菜单等,给开发者带来一定的复杂性。
(2).兼容性问题:
由于各大厂商对系统的定制,导致一些第三方的功能在不同的安卓手机上出现不同的兼容性要求。
四、Android 8.0的系统根目录结构图
五、Android系统架构
Android从下往上层主要分为4层,如同网络的七层协议,这样做的好处是屏蔽本层与下层的差异:
(1).linux内核层(Linux Kernel)
(2).系统运行时库层 (Libraries and Android Runtime)
(3).应用程序框架层(Application Framework)
(4).应用程序层 (Application)
- linux内核层(Linux Kernel)
- 硬件抽象层
在linux内核层和系统运行时库层之间还有一层硬件抽象层(Hardware Abstract Layer,HAL),它是对硬件设备的具体实现加以抽象。鉴于许多硬件设备厂商不希望公开其设备驱动的源代码,如果能将android的应用框架层与linux系统内核的设备驱动隔离,使应用程序框架的开发尽量独立于具体的驱动程序,则android将减少对Linux内核的依赖。HAL由此而生,它是对Linux内核驱动程序进行的封装,将硬件抽象化,屏蔽掉了底层的实现细节。
- 系统运行库层
由系统类库和Android运行时组成。
- 系统类库(Libraries)
系统类库大部分由C/C++编写,提供的功能通过Android应用程序框架来调用。