丑话说前头:
说真的,我是小白一个,离大牛十万八千里,接触了Android个把月,我也就知道Activity和一些简单控件的使用,对于底层的,我是真的一点都不懂,啥内核?啥体系?既然不懂,那就整理一遍吧,总会理解的,理解万岁!!!
Android特征:
- 提供访问硬件的API函数,简化像摄像头、GPS等硬件的访问过程
- 具有自己的运行时和虚拟机
- 提供丰富的界面控件供使用者之间调用,加快用户界面的开发速度,保证Android平台上程序界面的一致性
- 提供轻量级的进程间通讯机制Intent,使跨进程组件通信和发送系统级广播成为可能
- 提供了Service作为无用户界面,长时间后台运行的组件
- 支持高效、快速的数据存储方式
Android体系结构:
采用软件堆层的架构,共分为四层
Linux内核
- 硬件和其他软件堆层之间的一个抽象隔离层
- 提供安全机制、内存管理、进程管理、网络协议堆栈、和驱动程序等
中间件层
由函数库和Android运行时构成
- 函数库,主要提供一组基于C/C++的函数库
Surface Manager,支持显示子系统的访问,提供应用程序与2D、3D图像层的平滑连接 Media Framework,实现音视频的播放和录制功能 SQLite,轻量级的关系数据库引擎 OpenGL ES,基于3D图像加速 FreeType,位图与矢量字体渲染 WebKit,Web浏览器引擎 SGL,2D图像引擎 SSL,数据加密与安全传输的函数库 Libc,标准C运行库,Linux系统中底层应用程序开发接口
- Android运行时
- 核心库,提供Android系统的特有函数功能和Java语 言函数功能
- Dalvik虚拟机,实现基于Linux内核的线程管理和底层内存管理
应用程序框架
- 提供Android平台基本的管理功能和组件重用机制
Activity Manager,管理应用程序的生命周期 Windows Manager,启动应用程序的窗体 Content Provider,共享私有数据,实现跨进程的数据访问
Package Manager,管理安装在Android系统内的应用程序
Teleghony Manager,管理与拨打和接听电话的相关功能 Resource Manager,允许应用程序使用非代码资源
Location Manager,管理与地图相关的服务功能
Notification Manager,允许应用程序在状态栏中显示提示信息
应用程序
- 提供一系列的核心应用程序
- 包括电子邮件客户端、浏览器、通讯录和日历等