Android structure
来源:互联网 发布:windows多用户同时登录 编辑:程序博客网 时间:2024/05/17 22:47
1、
Android系统架构图:
分析:
第一层:Linux操作系统和驱动(Linux kernel):由C语言实现。
Android核心系统服务依赖于Linux2.6内核,包括:安全性、内存管理、进程管理、网络协议、驱动模型。Linux内核也作为硬件和软件栈之间的抽象层。
除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、电源管理。
第二层:本地框架和Java运行环境(LIBRARIES 和 ANDROID RUNTIME)
本地框架是有C/C++实现。包含C/C++库,被Android系统中不同组件使用,它们通过Android应用程序框架为开发者进行服务。
系统C库:(libc)从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式Linux的设备定制的库。
多媒体库:基于PackerVideo的OpenCore;该库支持多种常用的音频、视频格式回放和录制,支持多种媒体格式的编和解码格式。
Suface Manager:显示子系统管理器,并且为多个应用程序提供2D和3D图层的无缝融合。
LibWebCore:一个最新的Web浏览器引擎,支持Android浏览器,以及一个可嵌入式的Web视图。
SGL:Skia图形库,底层的2D图形引擎。
3D libraries:基于OpenGL ES1.0 API的实现;该库可以使用硬件3D加速(如果可用),或者使用高度优化的3D软加速。
FreeType:位图(bitmap)和矢量(vector)字体显示。
Android运行环境(ANDROID RUNTIME):提供了Java编程语言核心库的大多数功能,由Dalvik Java虚拟机和基础的Java类库组成。
Dalvik是Android中使用的Java虚拟机,每个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Dalvik被设计成一个可以同时高效运行多个虚拟机实例的虚拟系统。执行后缀名为.dex的Dalvik可执行文件,该格式的文件
针对小内存使用做出了优化。同时虚拟机是基于寄存器的,所有的类都是有Java编译器编译,然后通过SDK中的“dx”工具
转化为.dex格式由虚拟机执行。
Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。
第三层:Android应用框架(ANDROIDFRAMEWORK)
在Android系统中,开发人员也可以完全访问核心应用程序所使用的API框架。
包含的框架入上图(不在陈述)
第四层:Android应用程序(APPLICATIONS)
注意:Android应用程序都是有Java语言编写的。用户开发的Android应用程序和Android的核心应用程序是同一层次的,它们都是基于Android的系统API构建的。
- Android structure
- Android project structure
- Android NDK Makefile structure
- Android source tree structure
- android source code structure
- Android API Demo structure
- [Android--Structure]App基础
- android data structure And algorithm
- structure
- Android studio 中 Project Structure 的使用
- Android的工程结构(The structure of Android Project)
- android(2)——Structure of an Android Application
- Android Wear - App Structure for Android Wear(应用结构)
- 安卓工程结构Basic Android project structure
- Android API Guides 之 App Manifest(1) - Structure
- Android Studio 之 Gradle与Project Structure详解
- [Android--Structure]App系统权限permission与安全security
- Android Studio 之 Gradle与Project Structure详解
- Android listView滑动刷新代码(分页功能)
- ConcurrentHashMap解析
- clock 、times 、gettimeofday
- fedora14 编译android2.3 找不到zlib.h
- QTP SystemUtil对象
- Android structure
- Test Case for JS
- 仿新浪微博的ListView下拉更新功能
- 安装tslib中遇到的错误:./autogen.sh: 4: autoreconf: not found
- 请放慢浮躁的脚步——毕业季的感悟
- listView下拉刷新(仿sina微博Android客户端效果)
- JS constructor属性
- ABAP--关于ABAP流程处理的一些命令的说明(stop,exit,return,check,reject)
- 十六周任务二