2 Android系统开发环境搭建
2。1 Android体系结构概述
图2-l Android系统架构图
第一层:Linux操作系统和驱动(Linux kernel):由C语言实现[1]。
Androidde的核心系统服务是依赖于Linux2。6内核的,它的特点主要有:可靠安全性,存在进程管理、网络协议、内存管理、驱动模型的主要功能。同时Linux内核有时也被人们称为是软件栈和硬件之间的抽象层,Android的主要功能是为了能够服务于软件开发人员的需求。
系统C库是专门为基于嵌入式Linux的设备定制的库。多媒体库:基于PackerVideo的OpenCore;系统C库同时多种常用的音频、视频格式回放和录制也能够支持。
Suface Manager:显示子系统管理器,并且为多个应用程序提供2D和3D图层的无缝融合。
LibWebCore是Web浏览器引擎并且还支持Android浏览器,3libraries:基于OpenGL ESl。0 API的实现;该库3D加速。
FreeType:它是位图(bitmap)和矢量(vector)。
第二层:Android运行环境(ANDROID RUNTIME):提供了Java编程语言核心库大部分的功能,它是由基础的Java类库和Dalvik Java虚拟机组成。
Dalvik是Android中使用的Java虚拟机,每一个Android应用程序都有自己独立的Dalvik虚拟机实例。Dalvik是一个可以同时运行多个虚拟机。执行文件的后缀名为。dex的可执行文件,该格式的文件是对于那些比较小的内存使用做了优化。由于虚拟机是基于寄存器的,并且所有的类都是Java编译器编译的,然后再通过SDK中的“dx”转化成。dex格式。
第三层:Android应用框架(ANDROIDFRAMEWORK)。
在Android系统中,开发人员能够访问核心应用程序所使用的API框架。
第四层:Android应用程序(APPLICATIONS)。
Android的程序是使用Java语言编写的。开发的Android应用程序和Android的是在同一个层次,它们都是在Android系统的API中构建的[2]。
2。2 Android系统四大核心组件
1。Android系统的核心组件之Activity。
一个Android应用将会包含多个Activity,一个Activity通常显示一个可视化的界面,普通用户接触最多的也是Activity。虽然这些不同activity一起工作,但每一个activity都是独立运行的。
应用程序的设计是决定activity要完成什么样的功能。每个程序都有一个在它启动后首先出现在客户面前的 activity。在首先出现在用户的activity中再启动一个新的activity,就可以实现从一个activity转换到新的activity。每个activity都有一个用户界面的窗口。
显示activity窗口是一个像数据结构中的树一样具有层次关系的。父视图是包含一些子视图,它还管理子视图的布局。那些位于叶节点的视图直接影响应用户的操作。因此activity与用户的接口是视图[3]。
2。Android系统的核心组件之Service。
Service的主要运行环境是在后台。每个service都扩展自类Service。
Service应用当中最好的例子就是通过多媒体播放器播放音乐。在播放器程序中不止有一个activity,用户就是用这些 activity选择并播放音乐。但音乐的回放不仅仅只有一个activity,这就是为什么有时候我们退出音乐播放器的界面,进行其它操作时,音乐仍然可以进行播放的原因。具体操作当中,在其它界面进行操作时音乐还可以播放,多媒体播放器activity这时会启动一个service在后台播放音乐。Android系统可以让音乐回放的service一直运行,即使在该应用程序activity退出以后。Android系统中的应用程序可以连接到运行中的service。当连接到时,它可以用这个service的接口同这个service进行通信。所以为了不让它们阻塞其它组件或用户界面,通常这些service会派生一个线程来执行它的任务。