一.体系结构
- 基于Linux内核的软件平台和操作系统
- 采用堆栈的架构,共分为4层。
Tables | Are |
---|---|
第四层:应用程序(Application) | 邮件客户端 通讯录 日历 浏览器等 |
第三层:应用程序框架层(Framework) | ActivityManager windowManager ContentProviders ViewSystem PackageManager TelephonyManager ResourseManager LocatioManager NotificationManager |
第二层:中间件层 | 函数库: (Libraies) Surface Media SQLite Manager Framework OpenGL/FS FreeType WebKit SGL SSL Libc Android运行时: ( Android Runtime ) 核心库 Dalvik虚拟机 |
第一层:Linux内核 (Linux Kernel) | 安全机制 内存管理 进程管理 网络协议栈 电源管理 wifi驱动 显示驱动 |
Android 平台底层使用Linux3.0内核,是硬件和其他软件堆栈之间的一个抽象隔离层。提供安全机制……驱动程序等功能。
-
内核之上提供一组基于c/c++的函数库,可通过应用程序框架调用这些函数库。
*SurfaceManager ,支持显示子系统的访问,为应用程序提供2D,3D图像层的平滑连接。
*MediaFramework,多媒体框架,实现音频、视频的播放、录制。广泛支持多种音视频格式。
*SQLite,轻量级的关系数据库引擎
*OpenGL ES, 基于硬件的3D图像加速
*FreeType, 位图与矢量字体渲染
*WebKit, web浏览器引擎
*SGL, 2D图像引擎
*SSL, 数据加密与安全传输的函数库
*Libc, 标准c运行库,是Linux系统中底层的应用程序开发接口。 Android 运行时由核心库和Dalvik虚拟机构成。核心库提供Android系统的特有函数功能和Java语言的基本函数功能。实现了基于Linux内核的线程管理和底层内存管理。
-
应用程序框架,提供了Android平台基本的管理功能,和组件重用机制,包括Activity管理、窗体管理、包管理、电话管理、资源管理、位置管理、通知消息管理、View系统和内容提供者等。
*ContentProvider,用来共享私有数据,实现跨进程的数据访问
*ResourceManager,允许应用程序使用非代码资源,入图像、布局、本地化字符串等
*NotificationManager, 允许应用程序在状态栏显示提示信息。
*ActivityManager, 用来管理应用程序的生命周期。
*WindowManager, 用来启动应用程序的窗口。
*LocationManager, 用来管理与地图相关的概念
*FelephonyManager, 用来管理与电话相关的概念
*PackageManager, 用来管理安装在Android系统中的应用程序。 应用程序层提供了一系列核心应用程序,包括电子邮件客户端、浏览器、通讯录、地图等。
二.虚拟机
虚拟机的区别:
JVM: .java –> javac –> .class –> jar –> .jar
架构: 堆栈
DVM: .java –> javac –> .class –> dx.bat –> .dex
架构: 寄存器(cpu上一块高速的缓存)