最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

安卓系统架构分析

IT圈 admin 19浏览 0评论

2024年6月4日发(作者:水正浩)

1、Android系统架构图:

分析:

第一层:

Linux

操作系统和驱动

(Linuxkernel):

C

语言实现。

Android核心系统服务依赖于Linux2.6内核,包括:安全性、内存管理、进程管

理、网络协议、驱动模型。

Linux

内核也作为硬件和软件栈之间的抽象层。

Binder(IPC)

驱动、除了标准的Linux内核外,Android还增加了内核的驱动程序:

显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、

WiFi

驱动、蓝牙驱动、

电源管理。

第二层:本地框架和

Java

运行环境

(LIBRARIES

ANDROIDRUNTIME)

本地框架是有C/C++实现。包含C/C++库,被Android系统中不同组件使用,它

们通过

Android

应用程序框架为开发者进行服务。

系统C库:(libc)从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式

Linux

的设备定制的库。

多媒体库:基于PackerVideo的OpenCore;该库支持多种常用的音频、视频格式

回放和录制,支持多种媒体格式的编和解码格式。

SufaceManager:显示子系统管理器,并且为多个应用程序提供2D和3D图层的

无缝融合。

LibWebCore:一个最新的Web浏览器引擎,支持Android浏览器,以及一个可

嵌入式的

Web

视图。

SGL:Skia图形库,底层的2D图形引擎。

3Dlibraries

:基于

OpenGLES1.0API

的实现;该库可以使用硬件

3D

加速(如果

可用),或者使用高度优化的3D软加速。

FreeType

:位图

(bitmap)

和矢量

(vector)

字体显示。

Android运行环境

(ANDROIDRUNTIME):

提供了Java编程语言核心库的大多数

功能

,

DalvikJava

虚拟机和基础的

Java

类库组成。

Dalvik是Android中使用的Java虚拟机,每个Android应用程序都在自己的进

程中运行,都拥有一个独立的

Dalvik

虚拟机实例。

Dalvik被设计成一个可以同时高效运行多个虚拟机实例的虚拟系统。执行后缀

名为

.dex

Dalvik

可执行文件,该格式的文件

a

针对小内存使用做出了优化。同时虚拟机是基于寄存器的,所有的类都是有JavJava

工具

dx”

编译器编译,然后通过

SDK

中的

“dx

转化为.dex格式由虚拟机执行。

Dalvik

虚拟机依赖于

Linux

内核的一些功能,比如线程机制和底层内存管理机制。

第三层:Android应用框架(ANDROIDFRAMEWORK)

在Android系统中,开发人员也可以完全访问核心应用程序所使用的API框架。

包含的框架入上图(不在陈述)

第四层:Android应用程序(APPLICATIONS)

注意

:Android

应用程序都是有

Java

语言编写的。用户开发的

Android

应用程序和

Android的核心应用程序是同一层次的,它们都是基于Android的系统API

构建的。

2024年6月4日发(作者:水正浩)

1、Android系统架构图:

分析:

第一层:

Linux

操作系统和驱动

(Linuxkernel):

C

语言实现。

Android核心系统服务依赖于Linux2.6内核,包括:安全性、内存管理、进程管

理、网络协议、驱动模型。

Linux

内核也作为硬件和软件栈之间的抽象层。

Binder(IPC)

驱动、除了标准的Linux内核外,Android还增加了内核的驱动程序:

显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、

WiFi

驱动、蓝牙驱动、

电源管理。

第二层:本地框架和

Java

运行环境

(LIBRARIES

ANDROIDRUNTIME)

本地框架是有C/C++实现。包含C/C++库,被Android系统中不同组件使用,它

们通过

Android

应用程序框架为开发者进行服务。

系统C库:(libc)从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式

Linux

的设备定制的库。

多媒体库:基于PackerVideo的OpenCore;该库支持多种常用的音频、视频格式

回放和录制,支持多种媒体格式的编和解码格式。

SufaceManager:显示子系统管理器,并且为多个应用程序提供2D和3D图层的

无缝融合。

LibWebCore:一个最新的Web浏览器引擎,支持Android浏览器,以及一个可

嵌入式的

Web

视图。

SGL:Skia图形库,底层的2D图形引擎。

3Dlibraries

:基于

OpenGLES1.0API

的实现;该库可以使用硬件

3D

加速(如果

可用),或者使用高度优化的3D软加速。

FreeType

:位图

(bitmap)

和矢量

(vector)

字体显示。

Android运行环境

(ANDROIDRUNTIME):

提供了Java编程语言核心库的大多数

功能

,

DalvikJava

虚拟机和基础的

Java

类库组成。

Dalvik是Android中使用的Java虚拟机,每个Android应用程序都在自己的进

程中运行,都拥有一个独立的

Dalvik

虚拟机实例。

Dalvik被设计成一个可以同时高效运行多个虚拟机实例的虚拟系统。执行后缀

名为

.dex

Dalvik

可执行文件,该格式的文件

a

针对小内存使用做出了优化。同时虚拟机是基于寄存器的,所有的类都是有JavJava

工具

dx”

编译器编译,然后通过

SDK

中的

“dx

转化为.dex格式由虚拟机执行。

Dalvik

虚拟机依赖于

Linux

内核的一些功能,比如线程机制和底层内存管理机制。

第三层:Android应用框架(ANDROIDFRAMEWORK)

在Android系统中,开发人员也可以完全访问核心应用程序所使用的API框架。

包含的框架入上图(不在陈述)

第四层:Android应用程序(APPLICATIONS)

注意

:Android

应用程序都是有

Java

语言编写的。用户开发的

Android

应用程序和

Android的核心应用程序是同一层次的,它们都是基于Android的系统API

构建的。

发布评论

评论列表 (0)

  1. 暂无评论