Android系统架构

来源:互联网 发布:java中的集合 编辑:程序博客网 时间:2024/05/01 19:25

作者:郭孝星
微博:郭孝星的新浪微博
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
Github:https://github.com/AllenWells

Android系统的整体结构如下图所示:

这里写图片描述

一 Linux内核层

Android核心驱动模块

这里写图片描述

二 硬件抽象层

设备驱动分为内核空间和用户空间。

  • 内核空间:负责硬件访问逻辑(GPL)
  • 用户空间:负责参数和访问流程控制(Apache LIcense)

用户空间设备驱动即为硬件抽象层,如下所示:

这里写图片描述

三 系统运行库层

3.1 系统类库

这里写图片描述

Android NDK(Native Development Kit)即Android原生库,Android原生库为C/C++语言提供了编程接口。使用原生库无法访问应用层框架API,兼容性可能无法保障,Android原生库采用非类型安全的程序语言C、C++编写,更容易产生安全漏洞,原生库的bug也可能直接影响应用程序的安全性。

3.2 运行时

3.2.1 核心库

核心库提供了Java SE的多数功能,并提供Android的核心API。

3.2.2 Dalvik虚拟机

Dalvik虚拟机是基于Apache的Java虚拟机,并被改进以适应低内存,低处理器的移动设备环境,Dalvik虚拟机依赖于Linux内核,实现进程隔离和线程调度管理、安全和异常管理,垃圾回收等功能。

Dalvik虚拟机和Java虚拟机的区别

  • Dalvik基于寄存器,Java虚拟机基于栈.
  • Dalvik经过优化,允许在有限的内存空间同时高效地运行多个虚拟机实例。每一个Dalvik作为一个独立的Linux进程运行,都拥有一个独立的Dalvik虚拟机实例。

四 应用程序框架层

这里写图片描述

0 0
原创粉丝点击