图2-1 Android系统版本一览
2.1.2 Android系统结构
Android作为一种基于Linux平台和开源手机操作系统的名称,主要包括操作系统、中间件性质的framework、用户界面和应用软件四个部分,可将其看做是一个针对移动平台的软件堆栈[6]。
图2-3 Android系统结构
图2-3完整的显示了其官方架构,其系统结构主要由以下几部分组成:
(1)Linux内核。Linux内核作为基础(目前是Linux2.6),用来为上层提供诸如网络服务、存储服务、内存等的底层服务。
(2)基础内核之上是提供了大多数功能的Android本地库。与本地库平行的是一个Dalvik虚拟机(dvm)。虚拟机是Android所有应用程序运行的平台,它使用用户ID来保证程序间的安全隔离。
(3)用Java实现的framework层位于本地库与虚拟机之上,负责运行最上层的应用软件,并且提供了模块和功能的管理,以及实现一些如读写SIM卡联系人之类的基本功能。
(4)整体结构的最上层是Application层,包含所有由Java编写的Android应用程序,它们与用户进行交互,通过framework提供的icc(inter component communication)机制进行组件之间的通信。
Android的用户可以在各种市场或平台上下载安装发布的程序,而这些程序都是由Java编写,将Dalvik字节码和各种程序所需数据资源文件整合成一个apk包(格式与zip一样),再将apk包放在电子市场平台上以供用户下载。一个或多个模块构成Android程序,模块之间和应用程序之间都通过Intent进行通信,常见的几种Android程序模块[20]如下,模块之间关系如图2-4所示:
(1) Activity。此模块在应用程序中可以包含一个甚至多个,是实现用户与程序交互功能的可视界面。通常在xml文件中定义Activity界面,再通过setContentView方法加载。
(2)Service。Service与Windows服务类似,没有用户界面,主要为其他程序提供后台操作功能,或进行后台监控形成对某些应用的触发。此模块并没有用户界面。
(3)Broadcast Receiver。与Service模块一样,Broadcast Receiver也是没有用户界面的,它的功能主要是对Broadcast进行响应从而引起触发,以手机短信接收为例,短信接收时系统发出响应的Broadcast,此时与短信有关的应用程序便可通过注册一个Receiver接收该响应,从而触发短信操作界面。
(4)Content Provider
此模块是对数据库或文件的封装。以URI作为数据标识,提供读写操作。如联系人模块的ContactProvider为其他需要对联系人数据进行操作的应用程序提供联系人的读写操作,即是完成对SQLite数据库的封装。但Content Provider某些时候在提供数据时也需要该应用具有相应的权限。
2.1.3 Android系统开发环境
Android系统的开发是建立在Java基础之上,其开发工具主要有JDK(Java Development Kit)、Eclipse、ADT(Android Development Toolkit)、和Android SDK[7]。其开发环境主要包括以下几部分:
Java环境是Android系统开发的基础,在JDK下载安装后,需要进行环境变量配置。在“系统变量”界面处新建“JAVA_HOME”变量名,JDK安装目录作为其变量值。然后再新建一个“CALSSPATH”变量,“.;%JAVA_HOME%/lib/rt.jar;%JAVA_HOME%/lib/tools.jar”作为其变量值。最后在系统变量中找到“PATH”变量,将“%JAVA_HOME%/bin;”加在其变量值的最前面。环境变量配置完成后,进入运行cmd,输入“javac”检测是否配置成功。
Eclipse是基于Java的可扩展开发平台,由于其安装便捷、易于操作的特点,经常作为Android系统开发的文本编辑器。将Eclipse压缩包进行下载后,只需解压即可使用。 基于权限的Android恶意程序预过滤方法研究(4):http://www.youerw.com/jisuanji/lunwen_17526.html