Android体系结构和虚拟机

时间:2022-12-23 18:20:17

一.体系结构

  • 基于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驱动 显示驱动

  1. Android 平台底层使用Linux3.0内核,是硬件和其他软件堆栈之间的一个抽象隔离层。提供安全机制……驱动程序等功能。

  2. 内核之上提供一组基于c/c++的函数库,可通过应用程序框架调用这些函数库。

    *SurfaceManager ,支持显示子系统的访问,为应用程序提供2D,3D图像层的平滑连接。
    *MediaFramework,多媒体框架,实现音频、视频的播放、录制。广泛支持多种音视频格式。
    *SQLite,轻量级的关系数据库引擎
    *OpenGL ES, 基于硬件的3D图像加速
    *FreeType, 位图与矢量字体渲染
    *WebKit, web浏览器引擎
    *SGL, 2D图像引擎
    *SSL, 数据加密与安全传输的函数库
    *Libc, 标准c运行库,是Linux系统中底层的应用程序开发接口。

  3. Android 运行时由核心库和Dalvik虚拟机构成。核心库提供Android系统的特有函数功能和Java语言的基本函数功能。实现了基于Linux内核的线程管理和底层内存管理。

  4. 应用程序框架,提供了Android平台基本的管理功能,和组件重用机制,包括Activity管理、窗体管理、包管理、电话管理、资源管理、位置管理、通知消息管理、View系统和内容提供者等。

    *ContentProvider,用来共享私有数据,实现跨进程的数据访问
    *ResourceManager,允许应用程序使用非代码资源,入图像、布局、本地化字符串等
    *NotificationManager, 允许应用程序在状态栏显示提示信息。
    *ActivityManager, 用来管理应用程序的生命周期。
    *WindowManager, 用来启动应用程序的窗口。
    *LocationManager, 用来管理与地图相关的概念
    *FelephonyManager, 用来管理与电话相关的概念
    *PackageManager, 用来管理安装在Android系统中的应用程序。

  5. 应用程序层提供了一系列核心应用程序,包括电子邮件客户端、浏览器、通讯录、地图等。

二.虚拟机

虚拟机的区别:

JVM: .java –> javac –> .class –> jar –> .jar
架构: 堆栈

DVM: .java –> javac –> .class –> dx.bat –> .dex
架构: 寄存器(cpu上一块高速的缓存)