智能终端软件设计及开发课程报告.docx
《智能终端软件设计及开发课程报告.docx》由会员分享,可在线阅读,更多相关《智能终端软件设计及开发课程报告.docx(25页珍藏版)》请在冰豆网上搜索。
智能终端软件设计及开发课程报告
昆明理工大学
智能终端软件设计及开发课程报告
题目:
android系统来电防火墙APP之编码与
软件测试模块设计与实现
学院:
信息工程与自动化学院
专业:
计算机科学与技术
*************
学号:
************
**********
日期:
2013年12月28日
2.1ANDROID的系统介绍3
一、摘要
本设计是基于Android系统的智能手机来电防火墙,主要功能是过滤来电号码。
该系统包括来电拦截、拦截电话的添加和修改、拦截电话来电时的提示方式、拦截电话的回拨。
该来电防火墙总体上分三大模块:
用户界面UI设计、数据库设计和来电后搜索数据库拒接。
用户界面UI的设计主要有两种方法,一种是在XML文件中静态设置,另一种是在Java代码中动态设置,该设计主要用的是第一种方法。
该设计的数据库采用的是SQLite,SQLite是一款轻型的嵌入式数据库,资源占有率非常的低。
程序的代码主要是以Java为主,结合Android自己特有的类来完成整体的设计。
本系统作为手机来电处理的主要功能之一,它的设计直接影响到手机的性能和友好性,另外,Android是一个开放的操作系统,它已被众多的手机厂商采用。
本手机来电防火墙主要是作为拒接电话设计的。
通过黑名单的新增、修改和删除,来对手机来电进行管理。
如果来电号码不在黑名单中,则按照手机默认的情景模式响应;如果来电号码在黑名单中,则直接挂断该电话,并且弹出一个对话框提示用户:
来电在黑名单中,已拒接!
二、绪论
2.1ANDROID的系统介绍
Android系统是Google公司推出的一款开放平台,Android以linux2.6为内核,系统稳定安全,应用程序使用Java语言来开发,缩短了软件开发周期,现在已经被许多的手机厂商采用。
Android是一个真正意义上的开放性移动设备综合平台,它包括操作系统、用户界面、中间件和一些关键的平台应用,拥有移动电话工作所需的全部软件。
Android最大特点在于它是一个开放的体系结构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验,Android里面具有非常丰富的图形系统,提供对多媒体功能的支持和非常强大的浏览器。
Android的主要特点体现在以下几点[2]:
(1)应用程序架构:
在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。
(2)Dalvik虚拟机器:
在Android平台上所使用的Java虚拟机,不是Sun公司的标准Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面的兼容性的同时,针对移动手机进行了大幅度优化,占用资源更小,运行效率更高。
(3)集成的浏览器:
集成的浏览器是Android内建的浏览器,是以WebKit的浏览引擎为基础所开发的。
WebKit是一个开源浏览器网页排版引擎。
配合Android手机的功能,可以在浏览网页时,达到更好的效果。
(4)优化的绘图能力:
在程序里可以用到的绘图功能分为2D和3D两个方面。
在2D方面,Android提供了一套特有的类库(SGL);而在3D方面则是使用OpenGLES1.0(OpenGLforEmbeddedSystems)规范的类库。
它们是一种非常快的图形引擎,并且支持硬件加速。
(5)SQLite数据库:
SQLite提供结构化的数据存取。
SQLite是一款轻型的数据库,它的实际目标是嵌入式,目前已经在很多嵌入式产品中使用了它,它占用的资源很低。
它能够支持Windows、linux、Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如PHP,Java等,还有ODBC接口,同样比起Mysql,PostgreSQL来讲,它的处理速度比它们都快。
它无需安装和管理配置,它是一个存储在单一磁盘文件中的完整数据库,占有空间只有250KB,但支持数据大小最高达2TB。
虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。
同时它还支持事务功能和并发处理等等。
SQLite也是一套开放性的关联式资料库。
其特点在于轻量性方面的设计结构,更适合在手机上使用。
(6)多媒体的支持能力:
主要用于播放媒体文件。
这同时包括对音频和视频的支持,并支持“播放URI地址(即统一资源识别地址)”模式——在网络上直接播放的流媒体。
另外支持各种通用的静态图像格式,例如:
JPG、PNG、GIF等格式。
(7)GSM技术:
GlobalSystemforMobileCommunication,即全球移动通信系统,是第二代移动通信技术,其开发目的是让全球各地可以使用一个移动电话网标准,让用户使用一部手机就能行遍全球。
GSM技术是属于手机硬件方面的发展,也是在开发Android应用程序时可以突出的特点之一。
(8)蓝牙、EDGE、3G和Wi-Fi:
蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。
EDGE是一种从GSM到3G的过渡技术,它主要是在GSM系统中采用了一种新的调制解调方法,即最先进的多时隙操作和SPSK调制技术。
Wi-Fi(WirelessFidelity),即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。
该技术使用的是2.4GHz附近的频段,该频段目前尚属无须许可的无线频段。
其目前可使用的标准有两个,分别是IEEE802.11a和IEEE802.nb。
这些通讯能力也是属于手机硬件方面的发展,也是在开发Android应用程序时可以突出的特点之一。
(9)丰富的开发环境:
AndroidSDK提供了相当完善的程序开发环境,其开发环境包括设备模拟器、调试工具、内存和性能检测等方面的评估功能,另外也提供可用于EclipseIDE的开发插件界面。
2.2ANDROID平台与其它平台的比较
首先看一下Symbian,它存在着以下的致命不足:
Symbian的主导者为诺基亚、索尼爱立信等传统的手机厂商,因此虽然Symbian非常成熟,但是基本上还带有浓厚的保守色彩,应用软件与我们日常的PC软件有较大的理念差异。
再者Symbian与互联网的结合给人感觉仍不够紧密,互联网应用更多只是作为陪衬存在。
Android平台与此相反,移动互联网是它最重要的应用,无论系统内核、应用软件还是硬件设计,几乎都是围绕着快捷的移动互联网应用所展开的,同时Android与PC平台存在先天的基因联系,可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。
与Android拥有相同属性的还有微软的WindowsMobile,然而臃肿的Windows平台饱受垢病,真正喜欢它的用户并不多。
至于iPhone,它只是苹果公司的封闭平台,用户无法在iPhone中自行安装应用程序。
所有的东西都应该苹果自己设计制造,从而确保利润不被第三方分享。
苹果自己为iPhone开发了嵌入式系统以及完整的应用,但它干脆都不宣扬iPhone的软件设计,而是将iPhone作为一个包含软硬件卖点的手机产品出售。
同样,苹果式的奢华与时尚让iPhone大获成功,以至于成为手机市场的风向标。
与苹果相反,Android则是走完全开放的道路,这种模式的巨大优点在PC软件领域已为业界所公认。
自由软件高度活跃,错误可以被快速修改,新的应用和新的创意可以不断出现。
自由的属性让Android的错误可以快速的修正,从而提高系统的可靠性与安全性。
Android平台的另外一个优势是标准化和跨平台。
作为开发平台,可以为任何手机厂商自由选择一厂商对代码做出修改,那么修改的结果必须迅速返回,确保系统的统一性。
其次,Android的应用都基于Java开发,Java具有一次编写、到处运行的跨平台属性,换句话说,开发者只要编写一遍程序,就能够实现在所有Android设备中运行,真正做到了硬件无关性,这显然大幅度降低了开发者的负担。
再者,Android提供标准化的API和SDK开发包,手机厂商可以根据需要自行开发或收纳已有的程序,从而打造出富有特色的Android平台。
这对手机厂商来说,它可以完全不管软件技术之内的问题,快速整合出适合自己的一套平台,然后将精力集中在硬件设计上面,可以在短时间内快速推出新品,对开发者来说,标准化的Android绝对是令人愉快的选择。
Android和操作系统进行了紧密地整合,从而可以方便地使用操作系统的功能。
并且从图形应用界面的开发上来看,Android可以使用配置文件来描述图形控件的布局,用Java代码编写实际响应代码,比用AWT/Swing编写图形应用程序要方便得多。
当然由于Android已经提供了大量现成的应用API和应用工具,使得常规智能手机功能的开发变得非常容易和简单。
2.3.设计目标
本手机来电防火墙是以拒接电话为主要的设计目标,通过黑名单的新增、修改和删除,对手机来电进行管理。
如果来电号码不在黑名单中,则按照手机默认的情景模式响应;如果来电号码在黑名单中,则直接挂断该电话,并且弹出一个对话框提示用户:
来电在黑名单中,已拒接。
2.4来电防火墙设计原则
本系统在设计的时候要考虑的因素主要遵循以下几条原则:
(1)目的明确。
一个好的程序必须有明确合理的、适用的目的。
本程序的主要目的是实现对号码的屏蔽。
(2)功能实用。
一个软件所提供的功能应该是切合实际需求的。
本程序实现的是在黑名单中的号码来电后,直接将其挂掉,有很好的实用价值。
(3)界面简单。
软件界面设计简洁,美观,人性化,满足用户的基本要求。
2.5来电防火墙功能
该来电防火墙总体上分三大模块:
用户界面UI设计、数据库设计和主程序模块。
用户界面UI的设计主要有两种方法,一种是在XML文件中静态设置,另一种是在Java代码中动态设置,该设计主要用的是第一种方法。
该设计的数据库采用的是SQLite,SQLite是一款轻型的嵌入式数据库,资源占有率非常的低。
程序的代码主要是以Java为主,结合Android自己特有的类来完成整体的设计。
2.6本文所做的主要工作
本来电防火墙界面设计主要采用的是静态的XML文件设置,后台数据库是用的SQLite,通过用户UI与数据库连接将前后台连接起来,本文主要做了以下工作:
第一章绪论对Android平台进行简单介绍,描述了Android的发展、前景和优势,总体对Android的认识。
第二章主要介绍在本次程序开发中所使用的两种技术—XML、SQLite本为今后的程序设计工作做好铺垫。
第三章对数据库和程序的设计进行了介绍。
第四章对程序的各个模块进行详细介绍,并且对设计的调试和测试以及设计过程中出现的问题进行了介绍。
结束语是对这一段时间的设计进行总结,总结一下自己的经验和教训。
三、系统分析与设计
本来电防火墙在Eclipse下编译完成,并使用XML脚本语言结合Java代码编写整体程序,前台界面设计采用的是XML静态文件,并且在代码中有相应的动态设置,后台数据库采用了SQLite,并通过一系列的设计使来电防火墙逐步趋于完善。
3.1系统功能分析
本来电防火墙主要包括三个模块:
用户界面UI、数据库模块和主程序模块。
本手机来电防火墙主要是作为拒接电话设计的。
通过黑名单的新增、修改和删除,来对手机来电进行管理。
如果来电号码不在黑名单中,则按照手机默认的情景模式响应;如果来电号码在黑名单中,则直接挂断该电话,并且弹出一个对话框提示用户:
来电在黑名单中,已拒接。
本手机来电防火墙的三个模块如下图3-1所示:
图3-1来电防火墙系统结构图
本手机来电防火墙开发的时候,我首先绘制的是所有用户界面UI的整体框架图,如3-2所示:
图3-2整体框架图
3.2创建数据库文件
本程序中,后台数据库用的SQLite数据库,只用到了黑名单这一个表格。
黑名单主要是用来保存拒接号码的。
包括编号、号码简介两个字段。
其中_id(编号)设定为主键,number(号码)是必要字段,编码是自动获取,从1开始以整数上升。
黑名单表结构如表3-1所示:
表3-1用户注册表
字段
数据类型
长度
允许空
_id
整型
1
否
number
整型
4
否
3.3系统界面设计实现
本程序的用户界面设计采用的是XML文件,涉及到主界面,黑名单界面等实现。
3.3.1可视化控件设置
可视化控件[4]是直接与用户交互的对象。
Android除了支持自定义控件以外,自身也提供了非常丰富的各种可视化控件。
这些控件大都已经完整地实现其功能,所以一般情况下开发人员只需要设置它们的属性,就可以定义一个可交互的用户界面控件了。
设置控件属性的方法有两种:
一种是在XML文件中静态设置,另一种则是在Java代码中动态设置。
要创建用户界面,首先我们必须了解的是View类。
View类是可视化控件的基类,它主要提供了控件绘制和事件处理的方法。
而可视化控件,是指重新实现了View的绘制和事件处理方法并且最终与用户交互对象,如文本显示、按钮等。
ViewGroup类也是继承自View类,其最大的特点是可以有子控件。
子控件是View类的对象,当然也可以是ViewGroup类的对象,即ViewGroup可以嵌套。
实际上,这是采用了设计模式中的Composite模式,系统把对象以树形结构组织起来,从而达到了“部分——整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。
在Android中除了想Listview这种需要有子控件的控件类继承自ViewGroup以外,还有Layout类也同样继承自ViewGroup。
需要说明的是,布局默认情况下并不直接显示给用户,其主要功能在于控制子控件在屏幕上摆放的位置。
所以通常可见的Android程序都是可视化控件和布局组成的。
3.3.2布局
当我们手握着一些已经被设置好了的控件的时候,就该思考怎样按照你的设计把他们放在Android设备的屏幕上了。
Layout就是负责管理控件在屏幕的位置的类。
AndroidSDK已经内置了几种简单的布局[2]模型,通过这几种布局模型的组合、嵌套并设置子控件的布局参数,我们完全可以构建出各种复杂的用户界面。
1.线性布局[6]
线性布局应该是应用程序中最常用的布局方式,他提供了控件水平或者垂直排列的模型,同时我们可通过设置子控件的weight布局参数控制各个控件在布局中的相对大小。
2.表格布局
表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,也可为一个View的对象。
TableRow可添加子控件,每添加一个子控件为一列。
3.相对布局
相对布局的子控件会根据它们所设置的参照控件和参数进行相对布局。
参照控件可以是父控件,也可以是其他子控件,但被参照的控件必须要在参照它的控件之前定义。
4.单帧布局
单帧布局最简单的布局模型,在这种布局下每个添加的子控件都被放在布局的左上角,并覆盖在前一个控件的上层。
5.坐标布局
坐标布局的子控件需要制定相对于此坐标布局的横、纵坐标值,否则将会像FrameLayout那样被排在左上角。
手机应用需要适用于不同的屏幕大小,而这样布局模型不能自适应屏幕尺寸大小,所以应用的相当少。
3.4Eclipse环境搭建
数据库的连接方式主要有两种:
ODBC连接和OLEDB连接。
3.4.1开发环境搭建
1.开始Eclipse[3],然后选择Help>SoftwareUpdates>FindandInstall,如图3-3
图3-3FindandInstall
2.对话框出现后,选择Searchfornewfeaturestoinstall点击Next。
如图3-4
图3-4Searchfornewfeaturestoinstall
3.点击NewRemoteSite。
如图3-5
图3-5NewRemoteSite
4.在对话框中,输入远程站点的名字,输入站点如下:
https:
//dl-点击Ok
5.你可以看到新的站点添加到搜索列表中(并检查),点击Finish。
6.在下面的搜索结果对话框,选择复选框AndroidPlugin>DeveloperTools。
它将会检查特性:
"AndroidDeveloperTools"和"AndroidEditors"。
Android编辑器的特性是可选的,但我们推荐安装它,如果你选择安装,需要前面提到的WST插件,点击Next。
如图3-6:
图3-6搜索结果对话框
7.阅读许可协议,然后选择接受许可协议,点击Next。
8.点击Finish。
9.ADT插件没有签名,你可以点击“InstallAll“来安装所有东西。
10.重启Eclipse。
3.4.2创建模拟器
1.打开Eclipse—windows—AndroidSDKandAVDManager[4]。
如图3-7:
图3-7创建模拟器
从“AndroidSDKandAVDManager”窗口的左侧选择“VirtualDevices”。
1)选择“New”。
2)输入一个AVD名称。
3)选择一个Target。
4)输入模拟的SDCard的容量大小。
5)选择一个外观皮肤Skin。
1.让模拟器外观大小像G1,MyTouch3G,Hero,等手机设备。
保留默认的skin设置值。
2.模拟MotorolaDroid。
选择WVGA854。
3.模拟其他的设备。
选择列表内其他的选项。
6)然后“CreateAVD”。
四、程序界面与代码实现
4.1用户界面
(1)该模块主要是各个用户界面的。
程序主界面如4-1所示:
图4-1主程序界面
该界面通过mian.xml文件来静态的实现,mian.xml代码如下:
xmlversion="1.0"encoding="utf-8"?
>
android="
android:
orientation="vertical"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
gravity="center"
>