应用层:
提供了一些核心应用程序包,用来存放应用程序,主界面,联系人,浏览器,日历等。
android应用程序的界面,主要是由java程序编写,其中还可以包含各种资源文件(放置在res目录)中,Java程序及相关资源经过编译后,将生成一个APK包(android应用程序安装包)。
框架层:android的应用程序框架为应用程序开发者提供API,实际上是一个应用程序的框架。包含了UI程序中所需要的各种控件。
一个android应用程序可以利用应用程序框架中的以下几个部分:Activity,Broadcast,Service,Content Provider。
核心库与运行环境本层内容大多使用C++实现的。
各种库包括:
C语言标准库:通过Linux的系统调用来实现。
多媒体框架(MediaFramework):两大功能:音频,视频的回放;音频视频的记录。
SGL:2D图像引擎。
SSL(secure socket layer):位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。
OpenGL ES 1.0:对3D的支持。
界面管理工具:管理显示子系统的功能。
SQLite:一个通用的嵌入式数据库。
WebKit:网络浏览器的核心
FreeType:位图和矢量字体的功能。
各种库一般以系统中间件的形式提供的。
运行环境:
主要指虚拟机技术-Dalvik
Dalvik和JVM的不同,它执行的不是Java标准的字节码(bytecode),而是Dalvik可执行格式(.dex)中的执行文件。JVM是基于栈的虚拟机,而Dalvik是基于寄存器的虚拟机,可以根据硬件实现优化。
Linux内核层android对操作系统的使用包括核心和驱动程序两个部分,android的Linux核心是Linux 2.6内核。
主要驱动包括:显示驱动,FLash内存驱动,照相机驱动,音频驱动,WIFI驱动,键盘驱动,蓝牙驱动,能源管理。
Binder驱动:android的一个特殊驱动程序提供进程间的通信。
Android系统的分区结构 分区是逻辑层存储单元用来区分设备内部的永久性存储结构,不同厂商和平台有不同的分区布局。 常见的几个分区有:Boot Loader分区:相当于电脑的BIOS,在手机进入系统之间初始化软硬件环境,加载硬件设备,最终让手机成功启动。
Boot分区:存储着Android的Boot镜像,包含Linux Kernel与initrd等文件。(Boot通常是由一个被称为启动引导程序的特殊代码完成的,它位于系统ROM中,用来完成定位内核代码在外存的具体位置、按照要求正确装入内核至内存并最终使内核运行起来的整个系统启动过程。)
Splash分区:存储系统启动后第一屏显示的内容,例如一个公司的Logo。
Radio分区:基带所在的分区,存储着一些与通信质量相关的Linux驱动,如电话,GPS,蓝牙,WIFI驱动等。
Recovery分区:存储这一个mini型的Android Boot镜像文件,主要作用是用来做故障修复和系统恢复的。
System分区:存储着Android系统的镜像文件,镜像文件中包含着android的Framework,Libraries,Binaries和一些预装的应用。挂载到/system目录下。
User Data分区:设备的内部存储分区,如应用产生的图片,声音等数据文件,挂载到/data目录下。
Cache分区:存储各种实用的文件,如恢复日志和OTA下载的更新包。
Summary作者:云袖er