版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Android的 防盗软件开发The Development of Android Mobile Phone Anti-theft Software Based on Android学 部: 信息 专业: 计算机科学与技术 毕业设计(论文)完成时间: 自 2012 年 12 月 至 2013 年 5 月摘 要当今社会信息量巨大,通信便捷迅速,智能 已成为人们在都市生活中不可或缺的一部分。 也从它诞生初期的简单通信功能,慢慢向娱乐办公等当面发展。2011年的第一季度,Android在全球的市场份额首次超过塞班系统,一跃成为全球第一。正是这飞速的一跃,加快了智能 的普及速度,越来越多的人开始感
2、受到 带给人们无与伦比的便捷与快乐。也正是这一跃,终结了塞班系统在 界的垄断地位,越来越多的公司开始关注Android市场。开源,系统精炼,个性发展,功能性强等等优势无一不吸引着外界的目光。此次软件开发是基于Android平台上的实现。在Android的应用软件开发中, 防盗是一项重要安全技术。在此过程中,利用到Android广播机制、短信发送、server等相关技术,在用户首次运行软件的时候,用户需要设置用户名和密码,经确认后,用户可设置一个安全联系人的 号码(此号码可任意),点击开始防盗后,程序会在后台监听 每一次开启,通过读取当下 的SIM卡IMSI码是否与原 IMSI码相同来判断 是否
3、处于安全状态;如 遗失,在更换 卡后软件检测到非本机SIM卡串号,便由当前 向机主已设置好的安全联系人号码发送一条信息,短信内容包括现用SIM卡串号及当前 的GPS坐标(需保持当前 GPS功能开启及网络信号畅通)。至此,便实现了 防盗的全部功能,便于机主尽快找到遗失的 。关键词:Android;广播机制;短信发送;ServiceAbstractThe huge amount of information in todays society, fast and easy communication, the smart phone has become an integral part of c
4、ity life. Phone initial simple communication functions from its birth, development slowly to the entertainment business face to face. The first quarter of 2011, Android market share in the world for the first time more than Symbian, became the first in the world. It is this rapid leap, accelerate th
5、e speed of the popularity of smart phones, more and more people began to feel the phone to bring people to unparalleled convenience and happiness. It is also this leap, an end to the monopoly of Saipan in the mobile phone sector, more and more companies started to pay attention to the Android market
6、. Open source system refining, personality development, functional advantage does not attract the attention of the outside world.The software development is based on the Android platform implementation. Android application development, mobile security is an important security technology. In this pro
7、cess, the use of the the Android broadcast mechanism, sending SMS, Server and other related technologies, users run the software for the first time when you need to set the user name and password, after confirmation, the user can set a security contact phone number (this can be any number), click on
8、 the Start burglar, the program will listen in the background the phone every time you turn on, by reading the current mobile phone SIM card IMSI code is the same as the original phone IMSI code to determine whether the phone in a safe condition; such as the phone is lost, replace the phone card, th
9、e software detects the SIM card serial number to a non-native, they set good security to the owner by phone contact numbers send a message, the content of the message, including the SIM card serial number and the phones GPS coordinates (need to keep the current the mobile GPS feature is turned on an
10、d the network signal flow). At this point, we realized the full functionality of mobile security, facilitate the owner as soon as possible to find the missing phone.Keywords Android;Broadcast; Send Message; Service目录 TOC o 1-3 h z u HYPERLINK l _Toc354823076 概述 PAGEREF _Toc354823076 h 1 HYPERLINK l
11、_Toc354823077 1 关键技术介绍 PAGEREF _Toc354823077 h 3 HYPERLINK l _Toc354823078 1.1 Android开发技术简介 PAGEREF _Toc354823078 h 3 HYPERLINK l _Toc354823079 四大组件 PAGEREF _Toc354823079 h 5 HYPERLINK l _Toc354823080 2. 需求分析 PAGEREF _Toc354823080 h 8 HYPERLINK l _Toc354823081 可行性研究 PAGEREF _Toc354823081 h 8 HYPERL
12、INK l _Toc354823082 功能需求 PAGEREF _Toc354823082 h 9 HYPERLINK l _Toc354823083 3.相关技术介绍 PAGEREF _Toc354823083 h 10 HYPERLINK l _Toc354823084 开发工具 PAGEREF _Toc354823084 h 10 HYPERLINK l _Toc354823085 运行环境 PAGEREF _Toc354823085 h 11 HYPERLINK l _Toc354823086 开发环境 PAGEREF _Toc354823086 h 11 HYPERLINK l _
13、Toc354823087 4.详细设计 PAGEREF _Toc354823087 h 12 HYPERLINK l _Toc354823088 界面设计 PAGEREF _Toc354823088 h 12 HYPERLINK l _Toc354823089 数据库设计 PAGEREF _Toc354823089 h 16 HYPERLINK l _Toc354823090 5系统功能实现 PAGEREF _Toc354823090 h 16 HYPERLINK l _Toc354823091 程序主要界面实现 PAGEREF _Toc354823091 h 16 HYPERLINK l _
14、Toc354823092 5.2 说明文档界面实现 PAGEREF _Toc354823092 h 17 HYPERLINK l _Toc354823093 5.3 用户登录界面实现 PAGEREF _Toc354823093 h 18 HYPERLINK l _Toc354823094 开启防盗界面实现 PAGEREF _Toc354823094 h 20 HYPERLINK l _Toc354823095 修改密码界面实现 PAGEREF _Toc354823095 h 22 HYPERLINK l _Toc354823096 5.6 定位短信界面实现 PAGEREF _Toc354823
15、096 h 24 HYPERLINK l _Toc354823097 6软件测试和维护 PAGEREF _Toc354823097 h 25 HYPERLINK l _Toc354823098 6.1 各界面测试详情 PAGEREF _Toc354823098 h 25 HYPERLINK l _Toc354823099 6.2 操作测试详情 PAGEREF _Toc354823099 h 27 HYPERLINK l _Toc354823100 总结 PAGEREF _Toc354823100 h 29 HYPERLINK l _Toc354823101 参考文献 PAGEREF _Toc3
16、54823101 h 30 HYPERLINK l _Toc354823102 致 谢 PAGEREF _Toc354823102 h 31概述2007年6月,苹果iPhone问市,在全球掀起一股“苹果风潮”,然而谁也没有想到,在苹果旋风刮起半年之后,谷歌于2007年11月5日正式公布了Android智能操作系统,并且宣布与34家 厂商、运营商成立“开放 联盟(OHA)”,自此这个基于Linux内核的Android系统正式登上历史舞台,不久这个绿色小机器人便开始在全球风靡,风靡之势较苹果有过之而无不及。“开源”这个词对每一个了解Android的人都不陌生,他是Android能够快速成长的最关键
17、因素。Android的开源,打破以往操作系统平台的授权模式,不但降低了厂商的成本,也赋予了他们更多的自由发挥的空间,更提升了他们支持Android的热情,这是Android平台能够快速成熟、快速成长的源泉。Android系统智能 正在成为全球智能 市场增长的新“引擎”。 2013年4月16日谷歌执行董事长埃里克施密特透露,如今每天激活的Android设备已达150万台。去年9月,这一数字为130万台。最新数据显示,安卓系统占据全球智能 操作系统市场76%的份额。谷歌五年前推出Android,现在它已成为谷歌的拳头产品之一。Android是全球最大的移动操作系统,目前全球Android智能 使用
18、量已超过7.5亿台。施密特表示,按当前的发展速度计算,预计6到9个月内Android智能 全球使用量就会突破10亿台,在一两年内达到近20亿部。美国一家为智能 提供安全服务的公司发布了一份惊人的调研数据,该数据称“若丢失的 无法找回的话,2012年美国消费者在智能 上的损失将会是300亿美元”。同时,在2011年,一共定位到900万部丢失的智能 ,相当于每3.5秒就有一部 遗失。那么在中国到底每年会丢失多少部 ?目前我们还没有确切的数据,但是在微博、论坛上经常有用户表示 被盗,大多都是高端智能机,比如Android、iPhone,一旦丢失损失都会在1000元以上,而且 内存储的大量个人隐私信息
19、还有泄露危险。针对 丢失率居高不下的情况,一些国家已经出台了 串号登记政策,在用户反馈 不慎丢失之后,会立即停止相应串号的 所有使用功能。根据不同的国情,我国尚且未启动 用户串号登记的政策,毕竟是一个很庞大的工程,据统计,随着我国3G用户突破1亿,智能 已经成为主导产业链的核心环节,2011年,中国智能 销售量比2012年增加70%。2012年中国智能 市场可能将增长到8000万部。近年来,国内的技术工作者也做了大量的 防盗软件的开发与测试工作。在千讯北京信息咨询刚出版的2012中国防盗追踪 行业发展研究报告中,很明确的指出当下针对 丢失追踪找回方案实施的紧急性,以及中国软件技术工作者为此付出
20、的努力。1 关键技术介绍1.1 Android开发技术简介Android是基于Linux开放性内核的 操作系统,Android系统由操作系统、中间件、用户界面和应用软件组成。他采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。Android的操作系统框架图如图1.1所示。图1.1 Android系统框架图(1)Ja
21、va开发方面Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从结构到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便提高效率并减少资源占用。(2)C/C+开发方面早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步。2010年4月,谷歌正式对开发者发布了Android NDK,NDK允许开发者使用C/C+作为编程语言来为Android开发应用程序。但是,当前版本的NDK在功能上有很多局限性,不过随着NDK不断的完善和发展,相信未来NDK可以做的更
22、多更好。(3)应用程序早期的Android应用程序开发,通常通过Android SDK(Android软件开发包)下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同。此外,谷歌公司还推出了Google App Inventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。(4)安全权限机制Android本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。Android安全架构的核心设计
23、思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑。(5)内核Android采用Linux2.6作为内核,运行在其之上,中间加上一个Dalvik的Java虚拟机,表面上是Android运行库,Android对Linux内核做了修改,以适应其在移动设备上的应用。Androi
24、d应用程序由四个重要组件构成,其分别为:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供商(Content Provider)。其中,Activity用于表现功能;Service是后台服务,不提供界面呈现;Broadcast Receiver用于接受广播;Content Provider是支持在多个应用中存储和读取数据,相当于数据库。ActivityAndroid中,Activity是所有程序的根本,所有程序都在Activity中运行,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。在Androi
25、d的程序当中,Activity一般代表 屏幕的一屏。是用户与 交互最真切的展示,在Activity 当中可以添加一些Button、Check box等控件,点击控件或点击功能按钮的进入、返回均是各个Activity之间的跳转。当前的每一个屏幕保存在堆栈中。Activity 是由Android 系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期,对于Activity,关键是其生命周期的把握。Activity的生命周期执行图,如图1.2所示。图1.2 Activity的生命周期执行图ServiceService是Android系统中的一种组件,它跟Activity的级别差不
26、多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service是没有界面的长生命周期的代码。Service是一种程序,它可以运行很长时间,但是它却没有用户界面。Service的生命周期,如图1.3所示。 图 Service的生命周期 (3)Broadcast Receiver在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而Broadcast Receiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用Broadcast Receiver来让应用对一个外部的事件做出响应。(4)Content Provider 在A
27、ndroid中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件、等等内容,都是不允许其他直接访问的。应用想对外提供的数据,可以通过派生ContentProvider类, 封装成一枚Content Provider,每个Content Provider都用一个uri作为独立的标识,Content Provider屏蔽了内部数据的存储细节,向外提供了上述统一的接口模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更方便的途径。在Android中,ontentResolver是用来发起Content Provider的定位和访问的。不过它仅提供了同步访
28、问的Content Provider的接口。但通常,Content Provider需要访问的可能是数据库等大数据源,效率上不足够快,会导致调用线程的拥塞。因此Android提供了一个AsyncQueryHandler,帮助进行异步访问Content Provider。需求分析Android操作系统被Google收购以后,背靠Google这只行业巨头,经过不断的整合测试,如今已经趋于稳定。其底层编程语言为非常成熟的C/C+,并且采用同样成熟的Java开发语言作为其应用层的编程语言,内核为Linux。在开发平台方面,功能强大的Eclipse完美的保证了程序的已写已读性。2.1.2 市场可行性分析
29、2013年3月26日,市场研究公司尼尔森发布的2013移动消费者报告显示,中国智能 达66%,已经超越美国和英国的普及率,但居于韩国之后。与此同时, 被盗、 丢失等事件在我们身边已经司空见惯,在中国这个大市场下,遗失 的数目着实令人嗔目结舌。现如今市场上类似的 防盗软件也有很多,但大半仅是通过指令来远程控制遗失 ,诸如:自动关机、清除号码簿等,但本软件在定位后使得找回 成为可能。在庞大的中国 用户的背景下,该软件从用户自身利益角度出发,实用性强,操作简单,有很强的市场推广性。2.1.3 经济可行性分析现在,随着智能 市场的不断规划, 应用的利润也不断提高。首先是开发者对市场分析之后做出相应的应
30、用程序,其次是各个 平台的广告利润也在其中,更重要的是消费者对程序员一种态度的转变。另外,在开发阶段的费用方面,由于本软件功能简捷,所以在开发部分不需要投入很多人力,节省了很多成本;同时,Android的开源性也为该软件的开发提供了很多资源,所以在经济可行性方面,本软件能做到节约最大的成本,提供最好的服务,得到最丰厚的回报。根据需求调研结果确定本系统主要包括功能模块有:用户帮助模块、短信接收模块、防盗模块、用户设置模块以及定位模块,如图2.1所示。图 系统功能结构图 (1)用户帮助模块此模块下,用户使用文档的形式浏览该软件的介绍部分、功能介绍部分、操作明细部分,让用户在最短的时间内了解软件的功
31、能和实用性,最大化了用户使用和体验指数。(2)短信接收模块该软件的实现目的即是短信接受,所以短信模块是本软件的一个基础模块,在开启防盗功能后,更换SIM卡后安全联系人接收短信,所以,实现预想功能的前提便是短信的接收。(3)防盗模块本软件核心部分即是防盗模块的实现,在该模块下,用户第一次运行软件进行用户名和密码还有安全联系人等一系列设置成功后,软件通过开机自检,发现与设定的用户 串号不一致时,启动防盗模块,为下一步功能实现做准备。(4)用户设置模块用户设置模块是根据用户需求分析后添加的一个模块,在用户自身需要更换SIM卡的时候,为避免出现由于是机主本身操作,而启动防盗模块,造成不必要的短信发送,
32、此时可将防盗设置为关闭状态;另外,在用户需要修改密码的时候,该模块也为用户设定了修改密码的功能,用户可以随时更改首次设置的密码。(5)定位模块在以上模块相互实现的前提下,定位模块是本软件的最终目标,在检测到当前 串号非机主时,启动防盗模块,之后便是短信模块的启动,由当前 号码给安全联系人发送当前 的位置。为了实现对丢失 的找回,定位模块可以帮助机主以短信呈现定位功能的直观方式第一时间找寻 当前位置,使得防盗找回的思想付诸于实现。Eclipse是一种基于Java的可扩展开源开发平台。就其自身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件
33、集,包括为人熟知的Java开发工具(Java Development Tools,JDT)。虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。Eclipse是开源的,所谓开源软件是通过许可证发型以确保授予用户某些权利的软件。最明显的一点就是源代码必须可用,从而用户可以自由地修改和重新发布软件。开放软件计划(Open S
34、oftware Initiative)是一家非营利机构,它明确定义了开放源码的含义及满足其标准的认证许可证。Eclipse是在OSI认可的Eclipse公共许可证(EPL)1.0 版之下被授予许可证的,EPL旨在促进Eclipse的商业化使用而同时又能对开源作者保持公平。尽管大多数开发人员不会使用Eclipse来开发插件,或基于Eclipse创建新产品,但是Eclipse的开源性质所意味的并不只是使得Eclipse免费可用(尽管便于商业化的许可证意味着插件可能要花钱)。开放源码鼓励创新,并激励开发人员为公共开放源码库贡献代码。其中的原因很多,不过最本质的原因是为这个项目作贡献的开发人员越多,这
35、个项目就会变得对每个人都越宝贵。随着此项目变得日益有用,更多的开发人员将会使用它,并围绕它形成一个社区,就像那些围绕Apache和Linux形成的社区一样。硬件环境:PC机。软件环境:Windows XP,Eclipse Version: Indigo Service Release 1,Android SDK。该系统采用的是Android技术在 上的实现,应用的开发平台是Eclipse和Android SDK,用Android 模拟器呈现,代码编写部分使用的是Java语言,通过Service和Google Map知识完善。 此软件是基于Android2.1的开发与实现,Android是一种以
36、Linux为基础的开放源码操作系统。在Android中,开发者可以使用Java作为编程语言来开发应用程序,由于考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便提高效率和减少资源占用。其中的Activity类用以创建视窗,一个活动中的Activity就是在前景的模式,背景运行的程序叫Service。两者之间通过ServiceConnection和AIDL连结,达到复数程序同时运行的效果。在运行中,如果一个Activity全部画面被其他Activity取代时,该Activity将被停止,甚至会被系统清除。 在开发平台部分,采用的是Eclipse,Eclipse是一
37、个开放源代码的、基于Java的可扩展开发平台,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。 在知识应用部分,主要用到的是Service和Google Map。Service是Android系统中的一种组件,它和
38、Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service的启动有两种方式:context.startService()和context.bindService()。在Google Map API的使用中,Android定义了一个名为com.google.android.map的包,其中包含一系列用于google map上显示、控制和叠层信息的功能类,使用时根据需要使用对应的功能类即可。主界面的设计思路是以最简单明了的形式呈现给用户,进入主界面,内置两个Button按钮,分别为“用户登录”和“说明文档”,用户根据需要点击使用各个功能。程序主界面原
39、型图如图4.1所示。在用户点击进入“说明文档”后,呈现详细的软件说明文档,有效的帮助用户快速了解软件功能。用户说明文档界面原型图如图4.2所示。在用户点击“用户登录”按钮后,进入登录界面,在首次进入时输入用户名及密码,设置成功后点击“OK”按钮,设置成功;点击“CANCLE”则退出登录。用户登录界面原型图如图4.3所示。图4.3 用户登录界面原型图在成功设置用户名及密码后,点击“OK”进入到防盗界面,在该界面下,用户可以在输入框中设置一个安全联系人的号码,用为以后启动防盗后接受短信的用户,在设置成功后点击“开始防盗”,则程序启动防盗模块。此界面下,还提供了一个“修改密码”的Button按钮,为
40、用户随时修改密码提供方面。 防盗界面原型图如图4.4所示。“开始防盗”后,“开始防盗”按钮变更为“停止防盗”按钮,用户可以根据自身需要选择停止防盗,点击“停止防盗”按钮,程序停止,按钮重新变更回之前的“开始防盗”。停止 防盗界面原型图如图4.5所示。图 停止 防盗界面原型图 软件提供给用户修改密码的功能,在用户忘记密码或者是密码使用时间过长想要修改的时候,可通过点击“修改密码”按钮进行操作,在正确输入用户名和密码后点击“OK”按钮修改成功;点击“CANCLE”按钮则退出修改。修改密码界面原型图如图4.6所示。 图 修改密码界面原型图数据库系统作为数据密集型应用的核心,从数据库管理系统的角度去看
41、,数据库系统体系结构采用的是三级模式;从用户的角度出发,数据库系统体系结构可分为集中式结构、分布式结构、客户/服务器结构和浏览器/服务器结构,此为数据库系统外部的体系结构。本软件在输入用户名、设置密码和安全联系人 号码阶段应用到数据库相关知识,为软件的功能实现提供了数据保障。 软件在结合数据库技术更好的帮助软件实现各项操作,在本软件中应用到的数据库有登陆阶段的用户名、密码,在登录成功后,在输入安全联系人号码阶段也需要数据库。5系统功能实现按照最初对软件主界面的构想,在程序中的layout文件中的Main.xml中进行主界面的编译,主界面截图为三星 GT-S5360运行的真实界面,与原型图一致。
42、如图5.1所示。 代码重点函数分析: onCreate函数,在view类中,create是用来生成一个窗口的子窗口,create本身是一个虚函数,由框架调用实现生成窗口的功能。需要注意的是,onCreate()只是在串口显示的时候设置窗口的属性以及风格、位置等相关结构,产生窗口的功能是由create实现,create()负责注册并产生一个窗口。实现代码部分如下: public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.login);but
43、login = (Button) findViewById(R.id.button1);butfile = (Button)findViewById(R.id.button2);butfile.setOnClickListener(new View.OnClickListener() public void onClick(View v) Intent intent=new Intent(LoginActivity.this,lxn.security.activity.FileActivity.class);startActivity(intent););butlogin.setOnClick
44、Listener(new View.OnClickListener() public void onClick(View v) Intent intent=new Intent(LoginActivity.this,lxn.security.activity.MainActivity.class);startActivity(intent););5.2 说明文档界面实现在说明文档实现阶段,通过类文件FileActivity的引用,再在values文件夹下的strings.xml文件中写入对应文档内容。说明文档功能实现如图5.2所示。图5.2 说明文档界面截图代码重点函数分析:Extends是继
45、承父类的函数,只要类不是声明成final或者类定义成abstract的就可以继承。功能实现代码如下: public class FileActivity extends Activity protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.file); 5.3 用户登录界面实现在用户登录的实现上,使用onClick函数,在判断阶段,使用if-else进行判断;在输入阶段提示用户名或密码不能为空。用户登录界面截图如图5.3所示。图
46、5.3 用户登录界面截图代码重点函数分析:onClick是表示控件被点击时执行的函数,响应点击触发控件。功能实现代码如下:public void onClick(View v) / 用户名String username = etusername.getText().toString();/ 密码String password = etpassword.getText().toString();if (.equals(username.trim() | .equals(password.trim() Toast.makeText(MainActivity.this, 用户名或密码不能为空, 4)
47、.show();return;String saveusername = sp.getString(username, );String savepassword = sp.getString(password, );if (username.trim().equals(saveusername)& password.trim().equals(savepassword) init();showDialog.dismiss(); else Toast.makeText(MainActivity.this, 用户名或密码错误, 4).show();return;);butcancle.setOn
48、ClickListener(new View.OnClickListener() public void onClick(View v) MainActivity.this.finish(););builder.setView(view);builder.setTitle(用户登录);showDialog = builder.create();showDialog.show();在防盗界面的实现中,使用etsafenumber函数获取 信息,在点击“开启防盗”和“停止防盗”的Button按钮中intent变更,点击“开启防盗”后按钮变为“停止防盗”,在点击“停止防盗”按钮后,按钮变更为“开启防
49、盗”。开启防盗界面截图如图5.4所示,停止防盗界面截图如图5.5所示。图5.4 开启防盗界面截图图5.5 停止防盗界面截图代码实现部分如下: public void init() setContentView(R.layout.main);etsafenumber = (EditText) this.findViewById(R.id.safenumber);butstart = (Button) this.findViewById(R.id.start);butmodify = (Button) this.findViewById(R.id.modify);String savenumber
50、 = sp.getString(safenumber, );etsafenumber.setText(savenumber);isStart = sp.getBoolean(start, false);if (isStart) etsafenumber.setEnabled(false);butmodify.setEnabled(false);butstart.setText(停止防盗);String subScriberId = tm.getSubscriberId();System.out.println(当前IMIS标示=+subScriberId);butstart.setOnClic
51、kListener(new View.OnClickListener() public void onClick(View v) if (isStart) Editor editor = sp.edit();editor.putBoolean(strt, false);etsafenumber.setEnabled(true);butmodify.setEnabled(true);isStart = false;butstart.setText(开始防盗);editor mit();String subScriberId = tm.getSubscriberId();System.out.pr
52、intln(当前IMIS标示=+subScriberId); else String phoneNumber = tm.getLine1Number();String subScriberId = tm.getSubscriberId();System.out.println(当前IMIS标示=+subScriberId);String safenumber = etsafenumber.getText().toString();该功能与登录功能很相似,在实现上,也是通过跳转弹出窗口Activity的方式来方便用户进行登录修改密码。程序截图如图5.6所示。图5.6 修改密码界面截图代码实现部分
53、如下:public void onClick(View v) String username = etusername.getText().toString();String password = etpassword.getText().toString();if (.equals(username.trim() | .equals(password.trim() Toast.makeText(MainActivity.this, 用户名或密码不能为空, 4).show();return;Editor editor = sp.edit();editor.putString(username,
54、 username);editor.putString(password, password);editor.putBoolean(first, false);editor mit();setPasswordDialog.dismiss();init(););butcancle.setOnClickListener(new View.OnClickListener() public void onClick(View v) if (isFirst) MainActivity.this.finish(); else setPasswordDialog.dismiss();5.6 定位短信界面实现
55、在此部分使用GPS定位功能,在短信接受端可见对方 号码、对方 IMIS码、SIM卡更换信息以及纬度值。短信截图如图5.7所示。 图5.7 短信定位界面截图实现功能代码如下: private Double updateToNewLocation(Location location,Double gps) gps=new Double2; if (location != null) double latitude = location.getLatitude(); double longitude= location.getLongitude(); gps0=latitude; gps1=long
56、itude; else gps0=0.0; gps1=0.0; System.out.println(gps0+ +gps1); return gps; 以上所述便是本软件开发的核心部分,其中截图对应的代码部分为主要功能代码,至此,系统实现部分已经完全结束,功能实现情况良好,运行正常。6软件测试和维护6.1 各界面测试详情6.1.1主界面测试 方案:打开软件后,软件界面能够完整流畅的显示给用户,帮助用户操作。测试用例:打开软件后,测试主界面。点击并进入主界面并查看界面运行情况。测试重点:画面正常,按钮跳转功能实现。真机测试结果:效果良好,点击软件能迅速转入主界面。 方案:点击说明文档后进入该界
57、面。测试用例:点击进入界面后,显示文本形式的说明文档,查看其运行情况。测试重点:文本是否显示正常,下拉条可用。真机测试结果:文本显示正常,下拉条操作正常。 方案:点击用户登录后进入登录界面,在输入框输入用户名及密码。测试用例:跳转成功后,查看输入界面运行情况。测试重点:输入过程是否正常运转,输入成功后点击“OK”按钮完成设置。真机测试结果:输入界面流畅,点击设置完成跳转正常。 方案:在上方输入框中设置安全联系人 号码,并且 号为正常可用号码。测试用例:正确输入安全联系人号码防盗开启。测试重点:设置号码成功或点击“开始防盗”,功能开启。真机测试结果:在点击“开启防盗”后,程序开启防盗模块,运行正
58、常。 方案:点击“修改密码”按钮,进入修改密码界面。测试用例:为避免他人刻意修改软件中的用户名和密码,在修改密码过程中,软件检测所输入用户名正确与否,在正确情况下可修改密码;如若不正确,则不可进行修改操作。测试重点:在输入错误用户名情况下,是否也可修改密码。真机测试结果:只有在正确输入用户名的前提下才可以修改密码,防止他人随意修改密码。6.1.6 SIM卡更换短信接收测试 方案:在更换SIM卡后,安全联系人接受短信情况是否正常。测试用例:在测试阶段,先设置一个安全联系人,再更换SIM卡,测试短信发送情况。测试重点:短信接受是否正常。真机测试结果:在更换SIM卡后开机5-10分钟内,安全联系人收
59、到短信,测试成功。 方案:短信显示的内容呈现当前 位置功能。测试用例:成功接收短信后,打开查看,短信显示 当前位置。测试重点:开启GPS功能,短信定位功能实现。真机测试结果:经纬度正常。 软件测试机型相关数据如下:型号:三星 GT-S5360。系统版本号:2.3.6。CPU核心:单核心。CPU型号:ARMv6-compatible processor rev(v6l)。运行内存(RAM)总空间:289.3MB。 内存(ROM)总空间:189.0MB。从上述数据可见,中低端 运行情况尚且良好。经过一周左右的测试使用,基本排除有非正常情况导致软件崩溃情况,并且软件apk安装包很小,没有占去 多少的
60、内存空间。综上,本软件在实际应用当中也有很出色的表现,突出了简洁使用的特点。6.2 操作测试详情界面形式:进入主界面呈现的是两个Button按钮,分别为用户登录和说明文档。点击操作:点击对应Button按钮进入不同界面,点击“用户登录”跳转到用户登录界面;点击“说明文档”进入软件介绍界面;如需退出按返回键即可。界面形式:在点击说明文档按钮后,转入说明文档界面,在该界面下以文档的形式浏览软件说明各项内容,并有下拉条,方便大量文字显示拥挤的状况。点击操作:进入该界面后,文本浏览时可通过按住屏幕下拉上拉来浏览全部内容。界面形式:在点击用户登录按钮后跳转进入登录界面,在此界面下有一个设置用户名和密码的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论