1 Linux 内核
安卓平台是基于linux内核,并且移除GNU GPL授权约束部分,安卓将驱动从内核移到用户空间,将linux的驱动和内核分开内核包括安全,存储器管理,程序管理,网络堆栈等。
2 硬件抽象层(HAL)
是以封闭源码形式提供硬件驱动模块。HAL是把安卓框架和linux内核分开,让内核尽量独立,让安卓框架开发尽量不考虑驱动程序的影响。
3 安卓 Runtime
每个应用都在其自己的进程中运行,并且有自己的安卓 Runtime(ART)。
4 原生C/C++库
许多的安卓系统核心组件和服务有原生代码构建,比如ART和HAL,需要C和C++编写原生库,安卓平台提供Java框架API,比如Java OpenGL API能够访问OpenGL ES,支持应用中绘制2D和3D图形。
5 Java API框架
通过Java语言编写API使用安卓OS 的整个功能集,API创建安卓需要的构架模块,包括以下组件和服务:
- 丰富和扩展视图系统,构建应用的UI,包括列表,网格,文本框,按钮,网络浏览器等。
- 资源管理器,访问非代码资源,如本地化字符串,图形和布局文件。
- 通知管理器,让所有应用在状态栏显示自定义提醒。
- Activity管理器,管理应用的生命周期,提供常见的导航返回栈。
- 内容提供程序,让应用访问其他的应用。
6 系统应用
系统自带一套应用软件。
7 安卓四大应用组件
- 活动(Activity)
Activity是所有程序的根本,所有的程序都在activity中运行,是安卓最基本的模块之一,一个安卓应用一般有多个activity组成,在多个activity之间的安卓应用可以进行互相跳转,把跳转之前的信息存放在堆栈中,
- 服务(Service)
是安卓系统的一种组件,跟Activity级别差不多,但是不能自已运行,只能在后台运行,可以和其他组件进行交互,service是没有界面的长生命周期的代码。
- 广播接收器(BoardcastReceiver)
是一种运用在应用程序之间传输信息的机制。
- 内容提供者(Content Provider)
是安卓提供的第三方的应用数据的访问方案。