昆明理工大学智能终端软件设计及开发课程报告题目:android系统来电防火墙APP之编码与软件测试模块设计与实现学院:信息工程与自动化学院专业:计算机科学与技术姓名:李力学号:201010803116指导教师:游进国日期:2013年12月28日目录一、摘要··········································································3二、绪论··········································································32.1ANDROID的系统介绍·······················································32.2ANDROID平台与其它平台的比较········································42.3设计目标·····································································42.4来电防火墙设计原则······················································42.5来电防火墙功能····························································42.6本文所做的主要工作······················································6三、系统分析与设计··························································63.1系统功能分析································································63.2创建数据库文件·····························································73.3系统界面设计实现··························································83.3.1可视化控件设置·························································83.3.2布局·········································································83.4Eclipse环境搭建··························································93.4.1开发环境搭建····························································93.4.2创建模拟器······························································12四、程序界面与代码实现··················································134.1用户界面····································································134.2主程序模块································································1774.3程序测试····································································19五、结束语·····································································21一、摘要本设计是基于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和操作系统进行了