Android-系统-框架

概述

  • Android基于Linux Kernel,但不是Linux,是Linux的一个变种;
  • Android系统框架整体分为五层:Linux内核层,硬件抽象层,系统运行库层,应用程序框架层和应用程序层;

分层

ANDROID_Technology_Stack.png
Linux Kernel
  • Android依赖于Linux 2.6版内核提供的核心系统服务,例如安全,内存管理,进程管理,网络栈,驱动模块等;
  • Android对内核进行了增强
    • 硬件时钟(Alarm)
    • 内存分配与共享(Ashmeme)
    • 低内存管理器(Low Memory Killer)
    • Kernel调试(Kernel Debugger)
    • 日志设备(Logger)
    • Android IPC机制(Binder)
    • 电源管理(Power Management)
HAL
Native Libraries & Android Runtime
  • 系统运行库层包括程序库和Android运行时两部分;
  • 程序库
    • 包含一些C/C++库,可以被Android系统中的不同组件使用,通过应用程序框架为开发者提供服务;
    • Surface Manager:对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的无缝融合;
    • Media Framework:基于PacketVideo OpenCORE,该库支持多种格式的音频和视频的回放和录制,同时支持静态图像文件,包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG;
    • SQLite:功能强劲的轻型关系型数据库引擎;
    • Opengl ES:支持OpenGL ES1.x和OpenGL ES2.0,该库可以使用硬件3D加速或者使用高度优化的3D软加速
    • SGL:底层的2D图形引擎,Android使用skia作为其核心的图形引擎;
    • FreeType:位图(bitmap)和矢量(vector)字体显示;
    • Webkit:Web浏览器引擎;
    • SSL:安全通信相关技术处理,为网络通信提供安全及数据完整性的一种安全协议;
    • Libc:Android并没有使用标准的glibc作为C库,而是采用了Google自己开发的Bionic Libc,专门为基于嵌入式Linux设备定制的;
  • Android运行时
    • Android运行时又包括核心库和虚拟机两部分;核心库提供了Java语言核心库的大多数功能,主要通过JNI向应用程序框架提供调用底层程序库的接口;虚拟机为应用程序的运行环境;
Java API Framework
  • 应用程序框架层提供了可以完全访问核心应用程序锁使用的API框架;
  • Activity Manager:管理应用程序生命周期并提供常用的导航回退功能;
  • Window Manager:管理所有开启的窗口程序;
  • Content Providers:使应用可以访问另一个应用程序的数据;
  • View System:视图系统;
  • Notification Manager:使应用程序可以在状态栏中显示自定义的提示信息;
  • Package Manager:管理所有安装在Android系统中的应用程序;
  • Resource Manager:提供各种资源供应用程序使用;
  • 硬件服务
    • Telephony Manager:电话拨打和接口等相关功能;
    • Location Manager:管理地图服务的相关功能;
    • Blutooth Service:蓝牙服务的相关功能;
    • WIFI Service:WIFI服务的相关功能;
    • USB Service:USB服务的相关功能;
    • Sensor Service:传感器服务的相关功能;
Applications
  • Android系统会包含一些系统App;
  • 用户可以安装第三方App;

Linux

  • Linux优势
    • 强大的内存管理和进程管理;
    • 基于权限的安全模式
    • 支持共享库;
    • 经过认证的驱动模型;
    • Linux是开源项目;

你可能感兴趣的:(Android-系统-框架)