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
构建的。