Android系统架构图学习
来源:互联网 发布:阿里云发票 编辑:程序博客网 时间:2024/06/05 06:27
Android系统架构图
Android采用分层的系统架构,由下往上,分别如下
- linux内核层
- 硬件抽象层
- 系统运行时库层
- 列表内容
- 应用程序框架层
- 应用程序层
Linux操作系统内核
Android以Linux操作系统内核为基础,实现以下核心系统功能。
- 硬件设备驱动
- 进程和内存管理
- 网络协议栈
- 电源管理
除此以外,Android还增加了一些面向移动设备的特有功能
- 低内存管理LMK(Low Memory Killer)
- 匿名共享内存(Ashmem: Anonymous Shared Memory)
- 进程间通信Binder机制
这些功能的增强,进一步提升了Android在内存管理、进程间通信等方面的安全性。
硬件抽象层产生原因
Android之前的版本,并不存在硬件抽象层。鉴于硬件厂商并不希望公开其设备驱动的源代码,Google对此将Linux内核驱动程序进行封装,屏蔽掉底层的实现细节,向上提供统一的接口,这就是硬件抽象层。
硬件抽象层
HAL(Hardware Abstraction Layer)
HAL规定了一套应用层对硬件层的读写和配置的统一接口,本质上是将硬件的驱动分为用户空间和内核空间,其中内核驱动程序运行在内核空间,HAL运行在用户空间。下图中的Stub,以so库的形式存在,可以理解为proxy。上层通过调用标识获得HAL的相关Stub,进而取得相应操作。
系统运行时库层
系统运行时库,由系统类库和Android运行时构成。
系统类库,基本上用C/C++编写
基本功能说明如下:
Android NDK(Native Development Kit)
使得应用程序可以不依赖Dalvik虚拟机进行开发。
Android运行时核心库提供android.os, android.net, android.media等核心API,而Dalvik虚拟机依赖Linux内核,实现进程隔离与线程调度管理、安全与异常管理、垃圾回收等功能,并被改进以适应低内存、低处理器速度的移动设备环境。
应用程序框架层
一系列的Android应用程序所需的类库
作用:
- 使得开发人员可以快速地进行程序开发
- 可以通过继承实现个性化的扩展。
举例:
如Activity Manager负责主线程ActivityThread的创建、Activity生命周期的维护,并为窗口提供交互的接口。
应用层
与用户直接交互的应用程序
如SMS短信、图片浏览器、地图以及开发人员所开发的应用程序。
- Android系统架构图学习
- android系统架构学习
- Android系统架构学习
- android 系统架构学习
- android 系统架构学习
- Android系统架构学习
- 学习笔记:Android系统架构
- Android系统架构学习笔记
- android 系统架构图
- Android:系统架构图
- Android系统架构图
- Android系统架构图
- android系统架构图
- Android系统架构图
- Android系统架构图
- android系统架构图
- Android系统架构图
- Android学习1--Android系统架构
- apache mq 发送消息
- Android 蓝牙(有线)耳机监听的问题
- Redis简介
- JavaScript基础题
- SSH框架之Spring的引入、专业术语、概述
- Android系统架构图学习
- Winserver 2008事件日志-事件ID详解
- PO VO POJO BO在项目中的区别
- CentOS安装skynet问题总结
- 一个mybatis的配置文件
- OpenGL之glUniform函数
- ubuntu关闭登陆密码
- Svn常用命令总结[转载]
- Java Thread(线程)案例详解sleep和wait的区别