经常有人在思考买什么手机的时候,会在Android 的还是苹果之间比较。那今天就来简单科普下什么是Android , 以及与苹果IOS相比有什么优缺点
Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets.
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
从2008年10月发布第一款Android 系统手机,到2017年坐上全球第一大操作系统的金交椅,到底是什么力量促进它一路高歌发展如此迅猛 ?
Linux Kernel 内核层
处于最底层的Linux内核层提供了基本的系统功能,例如流程管理、内存管理、设备管理、电源管理等。它还提供许多驱动,例如显示驱动、摄像头驱动、键盘驱动、wifi驱动、内存驱动等。
如果你想从事Android驱动开发,那就应该研究Android的Linux内核。
系统运行库层
这一层大部分都是用C/C++写的。这一层为上层提供它们所需的Java类库和运行环境。如果你是从事Android系统开发的,那就应该研究Android的系统库和Android运行时。
从图中可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时。
- 系统库
它是连接应用程序框架层与Linux内核层的重要纽带。Android包含一些 C/C++库,这些库能被 Android 系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。
以下是一些核心库:
- Android运行时
Android应用程序都在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分。
核心库提供了Java API中的大多数功能,同时也包含了Android的一些核心API。
Dalvik虚拟机是Google公司自己开发的用于Android平台的Java虚拟机,它适合内存和处理器速度有限的系统。不同于JDK运行 .class 文件,Dalvik虚拟机运行 .Dex 文件(由 .class 转换而来)。
在Android中可以同时运行多个Dalvik实例,并且每个Dalvik应用都是一个独立的Linux进程。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。
很长时间以来,Dalvik虚拟机一直被用户指责为拖慢Android运行速度、不如IOS的根源。不过Google在2014年的I/O大会上推出了Android L,删除了Dalvik,由传闻已久的ART代替,表现更佳。
应用程序框架层
这一部分用Java编写,开发人员可以直接使用其提供的组件来进行快速的应用程序开发。若是从事Android应用程序开发,那应该研究Android的应用框架层和应用程序层。
框架层由多个系统服务组成,应用层的程序时刻都在与这些系统服务打交道。每一次构造窗口、处理用户交互事件、绘制界面、获得当前地理信息,都是在各个系统服务支持下实现的。该层是Android应用开发的基础,开发人员大部分情况是在和它打交道。
应用程序框架层包括:
应用程序框架层提供了许多高级服务的Java类的形式。应用程序开发人员可以通过实例化这些类来调用这些服务。
应用程序层
Android应用层由运行在Android设备上的所有应用程序(APP)共同构成,它不仅包括通话、短信、联系人等系统应用,还包括其他后续安装到设备中的第三方应用。
由上述架构设计可以看出:
1) 应用使用Java 程序编写,使很多现存的Java 应用很容易移植到Android 平台上来,有利于形成巨大的应用生态系统;
2) 完全开源,并且给予Linux 开源内核,有利于各大硬件厂商适配自己的CPU, 外部设备等相关的硬件,形成硬件多元化生态系统;
3) 开源架构,便于世界性开源社区开发人员参与进来,不断促进自身系统的迭代升级;
而与此同时, 竞争对手,苹果IOS系统是完全封闭的操作系统,不利于更多的厂商参与进来;而Windows Mobile 同样采用封闭操作系统,而且收取一定的费用。
与苹果IOS 系统相比,速度慢一直成为诟病:
由于Dalvik被指责为拖慢应用程序运行速度的罪魁祸首,Google 花了两年的时间来开发执行效率更高更省电的ART(Android Runtime),用以代替Dalvik。
最后说一下Dalvik和ART的不同,ART执行程序的方式与Dalvik完全不同: