欢迎光临散文网 会员登陆 & 注册

第一章 概述(Android四层体系结构)

2018-11-02 13:12 作者:swiss126  | 我要投稿

第一章 概述(Android四层体系结构)

参考资料:

Android应用程序开发》ISBN 9787302283164

参考软件:

Android Studio、Eclipse+ADT、Android SDK、JDK

Android特性

• 应用程序框架支持组件的重用与替换
• Dalvik 虚拟机专为移动设备优化
• 集成的浏览器基于开源的WebKit 引擎
• 优化的图形库包括定制的2D 图形库,基于OpenGL ES 1.0的3D 图形库
 SQLite 用作结构化的数据存储
• 多媒体支持包括常见的音频、视频和静态图像格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG , GIF)
• GSM 电话技术(依赖于硬件)
• 蓝牙Bluetooth, EDGE, 3G, 和WiFi(依赖于硬件)
• 照相机,GPS,指南针,和加速度计(accelerometer)(依赖于硬件)
• 丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse 集成开发环境插件

Android体系结构

1、Android体系结构

(1)Android本身是一套软件堆栈(或称为软件层叠架构),它包含三部分:操作系统、中间件、应用程序。AndroidSDK提供了完备的工具和API,供开发人员在Android平台上使用Java开发应用程序。 

(2)何为软件堆栈?首先要知道堆栈是什么,堆栈的实现思想是先进后出(FILO),也就是说栈底的东西是最先进来的,栈底是封死的,只能进去而不能出来;而栈顶的东西都是最后进来的,由于不是封死的,所以它是朝着栈底方向挪移。将这个堆栈概念提升为软件堆栈,假设地说,栈底就是操作系统,栈顶就是实际的应用程序。换句话说就是软件之间的一种层叠的架构,一层叠一层,最底层的当然还是操作系统。 

(3)Android架构体系: 

2、各层介绍

(1)Linux Kernel

         Google选择了Linux作为Android的底层支撑系统。当前的 Android系统是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核

(2)Android Runtime

 运行时环境可分为核心库和Dalvik虚拟机两部分。

核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、android.net、android.media等等。

Dalvik是Google公司自己设计用于Android平台的虚拟机,它可以简单的完成进程隔离和线程管理,并且可以提高内存的使用效率。

Dalvik和标准Java虚拟机(JVM)首要差别

Dalvik 基于寄存器,而 JVM 基于栈。

基于寄存器的虚拟机对于编译后变大的程序来说,在它们执行的时候,花费的时间更短。(Also of register-based VMs allow faster execution times at the expense of programs which are larger after compilation.)

*Dalvik和Java运行环境的区别

1:Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能

2:Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。

3:不同于Java虚拟机运行java字节码,Dalvik虚拟机运行的是其专有的文件格式Dex

4:dex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度

5:odex是为了在运行过程中进一步提高性能,对dex文件的进一步优化。

6:所有的Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制

7:有一个特殊的虚拟机进程Zygote,他是虚拟机实例的孵化器。它在系统启动的时候就会产生,它会完成虚拟机的初始化,库的加载,预制类库和初始化的操作。如果系统需要一个新的虚拟机实例,它会迅速复制自身,以最快的数据提供给系统。对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域。

(3)Libraries

系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。其主要包含以下几个部分:

SurfaceManager:执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。

MediaFramework:多媒体库,支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H 264、AAC、ARM。

SQLite:轻量级的关系型数据库引擎

OpenGL|ES:根据OpenGL ES1.0 API标准实现的3D绘图函数库

FreeType:提供点阵字与向量字的描绘与显示

WebKit:开源的浏览器引擎,支持CSS,JAVASCRIPT,DOM等脚本语言

SGL:底层的2D图形渲染引擎

SSL:在Andorid上通信过程中实现安全认证

Libc:从BSD继承来的标准C系统函数库,专门为基于embeddedlinux的设备定制

(4)Applications

   应用程序框架层是开发者从事Android应用开发的基础,很多核心应用程序也是通过这一层来实现其核心功能,该层简化了组件的重用,开发人员可以直接使用它提供的组件进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。以下是这次层中,各个部分的功能:

       Activity Manager(活动管理器):管理各个应用程序生命周期以及通常的导航回退功能。

       Window Manager(窗口管理器):管理所有的窗口程序

       Content Provider(内容提供器):通过它可以在不同应用程序之间存取或者分享数据

       View System(视图系统):构建应用程序的基本组件

       Notification Manager(通知管理器):通过它应用程序可以在状态栏中显示自定义的提示信息

       Package Manager(包管理器):Android系统内的程序管理,可以查看Android应用程序以及Activity的相关信息

       Telephony Manager(电话管理器):管理所有的移动设备功能

       Resource Manager(资源管理器):提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件,主题样式,二进制文件等

       Location Manager(位置管理器):提供位置服务

       XMPP Service(XMPP服务):提供Google Talk服务

重点:Android四层体系结构,Dalvik 虚拟机与JVM的区别,dex文件,SQLite数据库



第一章 概述(Android四层体系结构)的评论 (共 条)

分享到微博请遵守国家法律