一、Android简介
Android是一种基于Linux内核(不包含GUN组件)的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
主要参数表:
参数 | |
---|---|
上线时间 | 2008年9月23日 |
系统家族 | 类Unix、Linux |
内核类型 | 宏内核(Linux内核) |
二、Android系统的组成
大体为三部分组成:1、BootLoader 2、Linux内核 3、根文件系统
三、Android系统的分层
可以分为四层:
Android采用分层的架构,分为四层,从高层到底层分为
1、应用程序层(app+System apps),
2、应用程序框架层(Java APIFramework),
3、系统运行库和运行环境层(Libraries + android Runtime)
4、Linux核心层(HAL+ Linux Kernel),
也可以分为五层:
从上到下依次是
1、应用层
2、应用架构层
3、系统运行库层
4、硬件抽象层
5、Linux内核层:
如下图:
其中上四层 [ APP层、Framework层、系统运行库和运行环境层 、HAL层]属于用户态,最底层Linux内核属于用户层。如下图:
下面将具体介绍下各层都有什么
四、Android系统各层的主要内容
1、应用层
系统内置的应用程序以及非系统级的应用程序都属于应用层,负责与用户进行直接交互,通常都是用Java进行开发的。
2、应用架构层(Framework)
应用框架层为开发人员提供了开发应用程序所需要的API,我们平常开发应用程序都是调用这一层所提供的API,当然也包括系统应用。这一层是由Java代码编写的,可以称为Java Framework。
3、系统运行库层(库+虚拟机)
从Android系统框架图上可以看出,系统运行库层分为两部分,分别是 C/C++ 程序库和 Android 运行时库,具体内容参照Android系统五层架构
4、硬件抽象层(HAL层)
Android硬件抽象层HAL总结
Android HAL(Hardware Abstract Layer)硬件抽象层,从字面意思可以看出是对硬件设备的抽象和封装,为Android在不同硬件设备提供统一的访问接口。HAL处于Android framework和Linux kernel driver之间,HAL存在的意义有以下2个方面:
1、HAL屏蔽了不同硬件设备的差异,为Android提供了统一的访问硬件设备的接口。
2、HAL层帮助硬件厂商隐藏了设备相关模块的核心细节。
5、Linux内核层:
与之前学的Linux差不太多。
Android 的核心系统服务基于Linux 内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。