进行白盒测试,主要验证系统是否实现了在需求分析中分析出的主要功能模块。
最后是结束语和致谢。
第二章 系统搭建
2.1 Android系统架构分析
Android是一个移动设备的软件平台, Android的架构是由Linux内核、C/C++函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的。它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用[1]。
图2.1 Android架构的五个部分
图2.1显示的是Android架构的五个主要部分[1][2][8][9]。
(1)关键应用程序
Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
(2)应用程序框架
在Android SDK中,定义了让开发者使用与核心应用程序相同API的权限应用程序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能为其它应用程序所使用。但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、置换组件。目前所有的应用程序是由服务及系统来组成,包含有:
l) 一套强大和可扩展的视图系统:用来建构一个应用程序的基本组件,包括在开发系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的Web浏览器。
2) 内容提供者:使应用程序可以访问另一个应用程序的数据(如联系人数库),或者共享它们自己的数据。
3) 资源管理器:提供各种非程序代码的资源让应用程序去使用。例如:本字符串、图形文件或排版相关的布局文件。
4) 通知管理器:提供应用程序在状态栏中显示应用程序自定义的提示信息。
5) 活动管理器:管理所有应用程序的生命周期及提供常用的导航回退功能。例如:启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。
6) 视窗管理器:用来管理所有启动程序的视窗。
7) 位置管理器:用来管理地图服务的相关功能。
8) 电话管理器:用来管理用户拨打与接听电话的相关功能。
9) 包管理器:管理所有安装在Android系统内的包。
(3)类库
在Android中包含一些C/C++的类库,这些类库能被Android系统中不同的组件来使用。开发者可以通过应用程序框架使用这些功能。部分核心类库列表如下:
1) surface Manager:主要的功能是让开发者可以去存取/显示系统及管理的功能,在[显示]与[存取操作]间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整合。例如:在2D、2D显示上的合成、叠合动作。
2) 3Dlibraries:主要是依openGLES1.0规范所定义的3D绘图引擎。该库使用硬件加速(当硬件可用时),可以将硬件的3D功能做最佳化的处理显示。
3) SGL:主要是处理有关显示2D方面的绘图引擎。
4) Media Frame work:主要是以packetVideo公司的OpenCORE为基础所发展的多媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。例如:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式
5) Free Type:主要是用来显示点阵图和处理向量字形的。
6) SSL:(secureSocketsuyer),中文名为"安全套接层协议层",它是网景公司提出的基于WEB应用的安全协议,当前版本为3.0。SSL协议指定了一种在应用程序协议(如HTTP、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP胆协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Proto col):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Hand shake proto col):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议提供的服务主要有:①认证用户和服务器,确保数据发送到正确的客户机和服务器;②加密数据以防止数据中途被窃取;③维护数据的完整性,确保数据在传输过程中不被改变。
7) SQLite:SQLite是一套开放性的关联式资料库,能够被所有应用程序使用的轻量级的关系数据库引擎。
8) web Kit:是一个先进的网页浏览器引擎,被用来构建Android浏览器和内嵌的web视图,也可以让开发者利用这个引擎来做不同的应用。
9) lib c:就是一个BSD标准C类库。但是,针对Linux嵌入式装置进行过最佳化的调整。
(4)Android运行时组件
虽然Android是用Java语言来开发、撰写应用程序,但却不使用Java运行时组件来执行Java程序,而是使用了由Google自行研发的Android运行时组件来执行程序。Android运行时组件包括两个重要的部分,一个是核心类库,另一个是Dalvik虚拟机。
Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 "dx" 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
(5)Linux内核
Android 的核心系统服务依赖于 Linux 内核,如安全性、内存管理、进程管理、网络协议和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。
2.2 Android平台的搭建
基于Android的程序设计不仅需要Java的基础更重要的是有Android有其独特的编程环境,也就是在Java集成编程环境Eclipse中加入ADT插件。表2-1就是平台搭建表。
需要说明的是,我此次编程的操作系统是Windows XP。
表2-1平台搭建表
操作系统 Windows XP JDK SUN JDK 7.0 Eclipse Eclipse Java Development Tools 4.3.2 Android SDK Android-sdk-windows
2.2.1 Java JDK的安装以及环境变量的配置
首先需要安装Java,所有的Android开发工具都需要它,编写Android程序也需要使用Java语言[2][5][6]。
首先从SUN下载网站下载最新的Sun JDK7.0。
下载完成后,需要安装成功,可以随意选择安装文件夹,也可使用默认的文件夹。然后依次按下一步进行安装。
最后一步就是要配置环境变量。步骤如下:
第一步,我的电脑-->属性-->高级-->环境变量;
第二步,配置用户变量:
(1)新建 JAVA_HOME :C:\Program Files\Java\jdk1.7.0_45 (JDK的安装路径);
(2)添加 PATH :%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin ;
(3)新建CLASSPATH :.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 。
第三步,测试环境变量配置是否成功:开始-->运行--〉CMD,键盘敲入: JAVAC、JAVA 若出现相应的命令,而不是出错信息,即表示配置成功。配置图如图2.2-图2.4所示。
图 2.2 配置环境变量
图 2.3 配置环境变量
图 2.4配置环境变量
2.2.2 Eclipse的安装
下一步就是要安装Android开发工具Eclipse了,可从官方网站eclipse.org/downloads/进行下载。如图2.5所示,下载结束即可安装使用。
图 2.5 Eclipse下载界面
2.2.3 Android SDK的安装
上一篇:
安卓操作系统下嵌入式图像分析软件开发与移植---毕业论文
下一篇:
试论APP广告在手机中的应用