已阅读5页,还剩97页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京工业大学毕业设计(论文) 摘要 近年来,智能手机的功能日趋强大,移动终端应用程序层出不穷。由于现在人们 的工作繁忙,手机的丢失似乎也成为常有的事。与之带来最让人烦心的是私人数据的 丢失及带来的不安全隐患。基于以上原因,本文设计了一款手机防盗追踪软件。本软 件利用 android 系统的广播机制,当手机用户开启防盗追踪功能后,本程序将后台监 听手机开机启动、信号状态、短信收发以及位置的改变,通过监听手机用户 sim 卡的 imsi 码的改变来判断手机安全状态,监听并截获安全短信内容,实现非法用户的手机 号码向合法用户预先设置的安全号码发送特殊信息的功能,告知用户当前手机状态和 位置信息,并可通过安全短信控制被盗手机锁屏、销毁隐私数据、发报警音等功能。 最后将设计完成的软件进行测试,其所有功能都完美实现,真正起到了手机防盗追踪 的作用。 关键词:android 系统 手机防盗 广播机制 监听器 北京工业大学毕业设计(论文) abstract in recent years, the intelligent mobile phone function is powerful, the mobile terminal application emerge in an endless stream. because now peoples busy work, the lost mobile phone also seems to be a common thing. and bring the most disturbing is a private data loss and insecurity hidden trouble. based on the above reasons, this paper introduces the design of a mobile phone anti-theft tracking software. this software uses android system broadcast mechanism, when the mobile phone users to open anti-theft tracking function, the program will monitor the background mobile phone boot, signal condition, send and receive text messages and a change of location, through the monitoring mobile phone user sim card imsi code changes to determine mobile phone safety state, monitor and intercepts a secure message content, realize the illegal user the mobile phone number to the legitimate user preset safety numbers to send special message to inform the user of mobile phone function, current status and location information, and through sms security control of stolen mobile phone lock screen, the destruction of privacy data, send alarm sound and other functions. finally completed the design of the software testing, all of its functions are perfect, played a real mobile phone anti-theft tracking function. keywords: android system droidring broadcasting mechanism listener 北京工业大学毕业设计(论文) 目录 1绪论.1 1.1应用开发研究背景与意义 .1 1.2国内外研究现状 .2 1.2.1国内研究状况2 1.2.2国外研究状况2 1.3开发研究内容 .3 2手机防盗应用开发的基础.4 2.1java 基础.4 2.2android 基础4 3手机防盗应用方案的设计.5 3.1ui 设计.5 3.1.1ui 窗口层 .6 3.1.2ui 主层 .8 3.1.3ui 功能体验层 .8 3.1.4ui 指令查看层 .9 3.1.5ui 信息设置层 10 3.2function 设计11 3.2.1应用初始化.11 3.2.2功能选择.11 3.2.3功能体验.12 3.2.4功能查看.12 3.2.5功能设置.12 3.3service 设计.12 3.3.1数据库存储服务.12 3.3.2监听按钮事件服务.13 3.3.3开机启动和短信广播服务.13 3.3.4gps 服务 .14 3.3.5私人数据的管理.14 4手机防盗应用方案的实施15 4.1ui 的实现15 4.1.1activity.15 4.1.2listactivity.20 4.1.3preferenceactivity.24 4.1.4dialog.26 4.2由 sever 支持的 function 实现 .27 4.2.1广播机制服务.27 4.2.2换卡短信通知.30 4.2.3定位手机.31 北京工业大学毕业设计(论文) 4.2.4数据销毁.32 4.2.5锁定手机.34 4.2.6发报警音.35 4.2.7数据库存储应用.36 5手机防盗应用测试37 5.1防盗应用初始化 37 5.2手机定位功能测试 37 5.3换卡短信通知功能测试 38 5.4锁屏功能测试 39 5.5销毁数据 40 5.6发报警音 40 6手机防盗应用说明41 结论 .42 致谢 .43 参考文献 .44 附录一 .45 附录二 .46 附录三 .53 北京工业大学毕业设计(论文) 1 1 绪论 1.1 应用开发研究背景与意义 随着 3g 技术的不断发展,手机移动应用开发成为目前热门的技术之一。种类繁 多的手机应用以及先进的硬件,使得手机已经不完全是用来通话的工具了,它巧妙的 融合了 pda(personal digital assistant,掌上电脑)、数码相机以及 mp3 等诸多功能, 一机多能且不断向专业化迈进是现在手机的发展方向1。手机功能的增多以及不断完 善,自然价格也高低不一,好的手机可以卖到笔记本的价格。 关于手机我们能想到很多人们担心的话题。而最为愁人的就是现在的手机大都兼 容各种电话卡,一旦丢失,就会机卡两空。在我们忙碌的工作生活中,似乎手机丢失 已经成为了一种自然的事情。其实不论你的手机值不值钱,丢东西的事情本身就会让 人头疼。那么该怎样制服盗机者,在我们提高自身防范意识的同时,适当的为手机增 加些防盗功能也是应该的。 在众多手机操作系统中,android 手机操作系统由于他的完全开放性使得其应用人 群独占鳌头。 图 1.1 android 系统构架 android(智能机器人)是 google 开发的基于 linux 平台的开源手机操作系统, 该平台由操作系统、中间件、用户界面和应用软件组成,其系统构架如图 1.1 所示, 被誉为第一个完整、开发而免费的移动平台。google 提供在线文档、工具、论坛和软 件开发工具包等资源,以便开发者在 android 平台上开发应用程序。并且众多手机制 造商,如三星、摩托罗拉、htc、lg 和小米等,还有许多半导体公司,如英特尔、德州 仪器、nvidia 和高通等,参与 android 手机设计。由此可见,android 发展前景不容 小觑,已成为目前主流的手机操作系统之一。android 手机设备运行在 linux 操作系 统下,这使得其上运行的 android 应用程序具有很强的安全性。每一个 android 应 北京工业大学毕业设计(论文) 2 用程序均运行在不同的进程中,每个进程都对应一个 dalvik 虚拟机的实例。基于 java 虚拟机,dalvik 为移动设备进行了优化设计。dalvik 虚拟机具有较小的内存占 用,而且多个 dalvik 虚拟机的实例在手机设备中可以并发运行。android 应用程序 为托管代码,所以,由应用程序而导致系统崩溃的可能性很小,这也降低了设备崩溃 的可能性2。 综观 android 手机系统,我们不难发现,应用本系统开发手机的生产厂商多,用 户基数大,安全性高,并受到众多大牌公司支持,基于以上优越性,在 android 系统 上开发本手机防盗应用具有重要的现实意义。 1.2 国内外研究现状 1.2.1 国内研究状况 毋庸置疑手机防盗应用肯定归属于手机安全类软件,对于安全软件的开发与研究 又是杀毒软件公司首要考虑的功能之一,所以国内的很多杀毒软件公司在自己的产品 中都涉及了防盗功能。例如金山手机卫士、360 手机卫士、qq 手机管家等保护手机系 统安全类软件中具有防盗功能。 图 1.1 手机防盗 1.2.2 国外研究状况 英国一家手机服务公司宣布推出一整套手机防盗软件的服务,使用该服务的用户 在手机被盗后不仅可及时转移手机信息,手机还能发出刺耳鸣声,让窃贼根本无法使 用所盗手机。当用户在手机中安装这款软件后,每月只需支付 10 英镑(约合 18 美元) 即可享受防盗服务。一旦手机被盗,用户可立即致电公司。公司随即向被盗手机发送 指令,将里面存储的信息全部转移至安全服务器,随后锁定手机功能并使手机发出刺 耳的鸣声。 该公司介绍说,防盗程序启动后,窃贼即便更换 sim 卡也无法解除锁定。此外, 只要不取出电池,鸣声就不会停止。用户购买新手机后,还可申请将原来手机中的全 部信息转移至新手机内。据伦敦市警察局统计,该市每月约有万部手机被盗。警方 希望这一手机防盗软件能改善这一局面3。 美国的苹果公司,在其官网上向所有用户提供了一项云端技术服务,只要苹果手 机或者苹果的其他移动设备,都可以享受到手机卫星定位功能。具体做法是:首先, 在拿到苹果后,你要先申请属于你的 apple id,登录苹果商店或者在 mobile me 上注 北京工业大学毕业设计(论文) 3 册,这个应用就可以实时定位你的 iphone 的位置。 图 1.2 苹果手机防盗 1.3 开发研究内容 从上面的应用我们可以看出,无论是国内还是国外,只要是致力于防盗功能的软 件,其最核心功能都用到了 gps、锁屏、媒体播放等。因此,综合以上各软件优点,新 型的手机防盗应用软件应具有 gps 定位、被盗时锁屏、通过短信控制以最大音量发报 警音、远程销毁隐私数据以及偷拍盗窃者长相等功能。同时,防盗应用软件也应充分 利用操作系统固有的资源。 因此,本课题的任务是设计一款基于 android 平台开发的一款手机防盗软件。通 过 android 系统中的广播机制后台监听手机的各种状态,根据状态的改变来判断手机 是否安全。一旦手机丢失,我们便可通过向失窃手机发送指令短信的方式,应用 android 系统的 gps(global positioning system,全球定位系统)、sms(short messaging service,短信服务)、activity(用户界面)、broadcastreceiver(广播机 制)、intent(请求)、service(服务)以及 content providers(访问数据库)等技术控制 手机并获得手机具体位置,旨在为丢失手机用户找回手机提供了重要依据。 北京工业大学毕业设计(论文) 4 2 手机防盗应用开发的基础 2.1 java 基础 java 由 sun(stanford university network)公司于 1995 年 5 月为增强互联网的 交互性而设计。java 语言最早的名字为 c+-,从名字上我们可以看出,java 语言的 原型为 c 语言,后经大量优化在 c 基础上增增减减,最终设计出这款现在企业级开发 的第一语言4。java 语言具有极强的跨平台能力,多语言的支持,占据着互联网开发 语言的首位。 基于 android 系统的手机应用全部应用 java 语言编写完成。所以,想在 android 系统上做出一个好的应用来不仅要会 java 语言,而且还要运用熟练。对此,我通过观 看 mars 老师的 java4android 视频和对 java 相关书籍的精读与练习,强化了自己对 java 语言的掌握,使我对 java 的运用能力有了很大的提高,并为编写与设计 android 应用奠定了良好地基础。 2.2 android 基础 知己知彼者百战百胜。想在 android 系统上做开发,就一定要了解 android 系统, 知道他的由来和内部构造。 android 操作系统最初主要支持手机,2005 年 google 收购了刚刚成立 22 个月的 android 公司,也正是有了在 google 这样巨头公司下发展的机会才使得 android 系统 迅猛发展。2007 年 11 月 5 日,以 google 为首的 34 家公司宣布成立 oha(open handset alliance,开放手机联盟)。2008 年 9 月 22 日,美国运营商 t-mobile usa 在 纽约正式发布第一款 google 手机-t-mobile g1。android 平台的主题思想和 google 是一样的,就是随时随地为每个人提供信息5。 最早的 android 版本为 android 1.0(发条机器人) ,自 android 系统发布第一版 本到现在已经更新多次。android 1.1 beta(阿童木) 2008 年 9 月发布的 android 第 一版,后来由于涉及到版权问题,goolge 将其命名规则变更为用甜点作为它们系统版 本的代号的命名方法。其各版本 logo 如图 2.1 所示。 android 1.5 cupcake(纸杯蛋糕) android 1.6 donut(甜甜圈) android 2.0/2.0.1/2.1 eclair(松饼) android 2.2/2.2.1 froyo(冻酸奶) android 2.3 gingerbread(姜饼) android 3.0 honeycomb(蜂巢) android 3.1 honeycomb(蜂巢) android 3.2 honeycomb(蜂巢) android 4.0 ice cream sandwich(冰激凌三明治) android 5.0 jelly bean(果冻豆) 图 2.1 android 版本 北京工业大学毕业设计(论文) 5 3 手机防盗应用方案的设计 在电子领域,要想拥有很好的市场前景,就必须应用最先进的设计技术、最成熟 的设计理念以及最合理的设计方法才能使得产品得以发展。于是我选择了目前市场应 用最为广泛的金山手机卫士、360 手机卫士和 qq 手机管家其中的手机防盗部分作为参 考。学习并对比这 3 家在此功能上的不同。分别在 ui(user interface,用户界面)、 function(功能)和 service 上做了比较。 表格 1 手机防盗 ui、function 和 service 对比 比对参数金山手机防盗360 手机防盗qq 手机防盗 初始化设置步骤3 步3 步4 步 主界面信息栏个数6 个6 个5 个 进入应用层界面效果以文字为主视图+文字以文字为主 ui ui 层底色灰色白色白色 主要功能 换卡短信通知 销毁数据 定位手机 发报警音 锁定手机 防盗拍照 换卡短信通知 删除数据 追踪手机位置 响报警音 锁定手机 数据删除 手机定位 找回密码 远程锁机 function 输入错误提示一般精准一般 gps 定位功能有有有 短信监听发送有有有 service 开机监听有有无 从表格 1 中我们可以很清楚的看到,在 ui 方面 360 更为注重,以多图少字的方式 展现功能,使用户更加喜欢,也方便了用户对功能的理解。不过从 function 上来看, 金山手机防盗的设计就要优于另外两家,在所有功能的基础上还加进了一项防盗拍照, 这是仅有 4 项功能的 qq 所没能想到的安全设计。 综合以上软件优点便是此软件将要实现并达到的目标。因此我将结合 360 的 ui、 金山的 function 和 service 做出一款即看上去漂亮而且功能也强大的手机防盗软件。 3.1 ui 设计 ui 设计是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的 ui 设计不 仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由,充分体现软 件的定位和特点。如图 3.1 就是一副很美观的 ui。 北京工业大学毕业设计(论文) 6 图 3.1 ui 软件设计可分为两个部分:编码设计与 ui 设计。编码设计大家都很熟悉,但是 ui 设计还是一个很陌生的词,即使一些专门从事网站与多媒体设计的人也不完全理解 ui 的意思。ui 的本意是用户界面,是英文 user 和 interface 的缩写。从字面上看是用 户与界面 2 个组成部分,但实际上还包括用户与界面之间的交互关系。 在飞速发展的电子产品中,界面设计工作一点点的被重视起来。做界面设计的 “美工”也随之被称之为“ui 设计师”或“ui 工程师” 。其实软件界面设计就像工业 产品中的工业造型设计一样,是产品的重要卖点。一个电子产品拥有美观的界面会给 人带来舒适的视觉享受,拉近人与商品的距离,为商家创造卖点。界面设计不是单纯 的美术绘画,他需要定位使用者、使用环境、使用方式并且为最终用户而设计,是建 立在科学性之上的艺术设计6。 综合上述 ui 设计特点,加上方便实用的设计特点,我将本手机防盗应用的 ui 分 为了 5 层,他们由 ui 窗口层、ui 主层、ui 功能体验层、ui 功能查看层和 ui 功能设置 层组成。其层次流程如图 3.2 所示。 用户开启 应用软件 用户信息 确认 用户设置 初始化 判断是否是第 一次 yn ui主层 ui功能 查看层 ui功能 查看层 ui功能 查看层 图 3.2 ui 总流程图 3.1.1 ui 窗口层 ui 窗口层分为两个界面,一个是初次开启应用时进入的设置初始化界面,另一个 北京工业大学毕业设计(论文) 7 则是用户在非第一次开启应用时弹出的用户身份验证窗口。 图 3.3 初始化设置 当用户第一次开启应用时,展现在用户眼前的是一个设置初始化界面,如图 3.3 所示。用户可按照相应提示完成放到设置,其中包括设置防盗安全密码和设置安全电 话号码。防盗安全密码将用于验证应用本软件用户的身份,在非第一次开启此防盗软 件时将需要用户输入防盗安全密码。另外,设置好的防盗安全密码将会编进防盗指令, 用于控制手机实现相应的操作。安全手机号的设置非常重要,设置成功后,此号码将 被认为是唯一可信赖的手机号码,当手机被盗后,防盗软件将会按照指令向安全号码 手机发送手机状态。 图 3.4 验证窗口 图 3.4 展现的是用户在非首次开启应用时弹出的验证用户信息窗口。此通行密码 为用户设置的防盗安全密码,通过此方式保证了用户设置信息的安全性。 ui 窗口层为本应用软件的最顶层,此层的 ui 设计好坏决定了用户对本软件的第一 印象,所以要想得到用户的肯定,这层的设计一定要做好。为此,在选择文字的字体、 北京工业大学毕业设计(论文) 8 颜色、大小以及摆放位置做了无数次的调整,努力达到最好、最舒适。除了这些我还 在输入文本框里加进了提示信息如:输入密码框里的“612 位数字或字母”等,在方 便用户应用的同时也美化了 ui。 3.1.2 ui 主层 ui 主层是个选择界面如图 3.5,本层为用户提供 3 种主要操作,分别为防盗功能 体验、防盗指令查看、防盗信息设置。 图 3.5 ui 主层 在本层 ui 的上面是一个宇宙图片,寓意着安装本应用后,即使你的手机被带到了 宇宙我们也能找到它,当然这有些夸张了,不过我们还是要对此软件充满信任的。 除了这张宇宙图片我还在每个选项前后都加附上了相应功能的 logo,学习 360 的 多图设计,用视觉告诉用户本条选项的功能。 为达到 ui 布局整齐的效果,我采用列表式布局,将选项按照用户需求量进行排布, 这样的布局可是 ui 实现整齐、清晰、功能突出等效果,属于理想的 ui 设计。 3.1.3 ui 功能体验层 ui 功能体验层如图 3.6 所示,此 ui 界面同样继承优良设计布局方案将本应用所有 功能统一以列表形式列出,最前端图标代表着此条选项所要实现的功能,然后每个选 项的功能说明以大字功能名加小子简要说明的形式整齐的展现在界面上,让用户对选 项功能一目了然。 北京工业大学毕业设计(论文) 9 图 3.6 ui 功能体验层 当用户点击进入 ui 功能体验层的每个选项后,就会看到每个功能实现的具体说明, 而且在每个可以单机实验的功能里都加进了功能体验按钮,可以让用户体验本功能的 真实效果。其效果图见附录一。 3.1.4 ui 指令查看层 在 ui 指令查看层,总结罗列了开启每个防盗功能的防盗指令,用户可以在这里方 便快捷的得到所需防盗指令,如图 3.7 所示。 图 3.7 ui 指令查看层 北京工业大学毕业设计(论文) 10 3.1.5 ui 信息设置层 ui 的设置层是 ui 非常重要的一个视图层,此层要以最方便,最简约,最快捷为核 心排版设计,而且要尽量覆盖本软件的所有功能设置。基于以上要点,首先总结本防 盗软件的设置功能如表 2。 表格 2 设置功能 所需功能功能目的功能体现 形式 设置此功能键的意义 防盗开关方便控制防盗功能 的开启与关闭 开关按钮可以方便用户对防盗应用软件的控制, 无需卸载就能关闭防盗 换卡锁定 开关 避免因用户自己换 卡执行错误指令 开关按钮在避免发送错误指令的同时,用户也可 通过此开关对锁定功能进行单独体验 换卡短信 通知开关 避免因用户自己换 卡执行错误指令 开关按钮在避免发送错误指令的同时,用户也可 通过此开关对换卡短信通知功能进行单 独体验 防盗密码 重置 用于修改安全密码加密形式方便用户在首次初始化后改变防盗安全 密码 安全手机 号重置 用于修改安全手机 号码 显示预置 号码 方便用户在首次初始化后改变防盗安全 手机 按照表格 2 中的功能需求,我在设置 ui 里建立了与之相应的 5 个控件,以方便用 户对软件的应用控制。最终设计出图 3.8 的效果来实现功能。 图 3.8 ui 设置层 北京工业大学毕业设计(论文) 11 3.2 function 设计 我们在 ui 的设计中了解到一款软件拥有一个美观的 ui 是多么重要,那我们该如何 实现这种华丽的显示呢?这就需要又一个很好的后台设计既功能设计。 3.2.1 应用初始化 初始化界面是让用户设置信息用的,所以首先我要告诉用户需要设置的信息都有哪 些,介绍完后还要在相应的位置给出用于填写信息的控件。 这里我们用 android 中最常用的 textview 和 edittext 两个布局控件满足需求。并 且在 edittext 里加入 hint 属性显示相关提示信息。对于密码的设置,我们都希望处 于不可见状态以保证我们个人信息的安全,我用 password 属性来控制输入时的显示状 态。在整个 ui 的最下面我还放置了两个按钮,方便用户的进一步应用和退出,此功能 将用 button 控件实现。 3.2.2 功能选择 功能选择的 ui 主要分为两部分,可以从上到下分为两段,在布局控件中用 linearlayout 实现,并设置排版属性为垂直布局。上半部为一个图片,下面则需要一 个 list 控件完成效果,整个 ui 的程序将用继承 listactivity 类来描述已达到选项罗 列的效果7。 图 3.9 为 android 的文件管理。在 android 中所有资源文件要统一管理并放到 res 文件夹中,并把每个资源都加上各自的 id,以方便调用。所有的调用 id 则会放到 gen 文件夹下的 r.java 文件中进行统一遍历,我们所要的资源便可从这里索取。例如我们 的宇宙图片。 图 3.9 文件管理 北京工业大学毕业设计(论文) 12 3.2.3 功能体验 功能体验 ui 分为两层呈现。外面一层同样用一个继承 listactivity 的类来实现, 在 list 空间里排布好每个图标和文字的位置,这里要用到 imageview 控件添加图片。 内层则是一个介绍体验层,这层的总体排布用 linearlayout 的垂直分布就可以完成。 添加 button 按钮实现用户体验功能。 3.2.4 功能查看 这个界面完全是文字的排布,同样用 listactivity 加以 linearlayout 垂直型布局 就可以完成。 3.2.5 功能设置 功能设置 ui 为用户可操控界面,所以要使用继承 preferenceactivity 的类来完成 相应的功能,此类是 android 专门用来做 ui 设置界面用的,所以这个类中方法的应用 也相对方便,但其布局文件与众不同,需要在 res 文件中新建个 xml 文件进行单独管 理。其布局空间类型主要分为 3 大类 appwidget provider、preferencescreen 和 searchable,其中最常用的是 preferencescreen,在这里又包含 checkboxpreference、edittextrreference、listpreference、preference、rrefere ncecategory、preferencescreen 和 ringtonepreference7 个控件8。我们的 ui 设置 界面就用 preferencescreen 来完成。 3.3 service 设计 手机防盗应用软件在实际应用过程中一定是常驻后台的软件,所以不管用户是否打 开软件,只要是开启了防盗功能,那此软件就会一直在后台运行,出于这样的考虑, 我们就必须引进一个强大的后台支持,那就是 service 既后台服务。 3.3.1 数据库存储服务 在 android 系统中,用于保存数据有 3 种方式:sqlite、sharedpreferences 和 file。 sqlite 是一种嵌入式系统中很常见的数据库,而且所有的数据都储存在一个文件 中,便于迁移。sqlite 有见解的 sql 访问界面、相当快的速度,而且仅占用相对其他 数据库少量的内存空间。在 android 平台上,sqlite 库可以用来存储应用程序中使用 到的数据,还可以通过定义 content provider 等方式,来让其他应用程序也可以取用 其中的数据9。 sharedpreferences 是以键值对来存储应用程序的配置信息的一种方式,它只能存 北京工业大学毕业设计(论文) 13 储基本数据类型。一个程序的配置文件仅可以在本应用程序中使用,或者说只能在同 一个包内使用,不能在不同的包之间使用。实际上 sharedpreferences 是采用了 xml 格式将数据存储到设备中,在 ddms 中的 file explorer 中的 /data/data/shares_prefs 下。 file 是一种文件存储方式也是一种较常用的方法,在 android 中读取/写入文件的 方法,与 java 中实现 i/o 的程序是完全一样的,提供了 openfileinput()和 openfileoutput()方法来读取设备上的文件。 具体问题具体分心,根据我们的需要与要求,本程序最终选定用 sharedpreferences 来存储我们的数据。我们将用户设置的安全密码、安全手机号、防 盗功能开关状态、sim 卡的 imsi 码等信息以键值对的形式存入其中进行保存。一个 value 对应一个 key 值,如图 3.10 所示,key 值便是我们所保存的数据信息,这样的 保存方式既快捷又准确。 用户信息名1 用户信息值 one 用户信息名2 用户信息值 two 用户信息名3 用户信息值 three valuekey 图 3.10 数据库存储方式 3.3.2 监听按钮事件服务 监听器是 android 设计的一种监听模式,当用户执行了某些动作时,需要系统对这 些动作做出相应的反应,那么这时就需要监听器来捕获这些来自用户的信息,将其传 递给系统再做处理。 在我们的软件中将会运用大量的监听器,其中包括监听用户点击按钮事件、监听开 机广播事件、监听短信广播事件等。 监听按钮事件,是将每个按钮绑定上一个监听器,用 button.setonclicklistener()方法来实现,当触发相应的监听器后我们就可以执行我 们想要的操作了。 3.3.3 开机启动和短信广播服务 防盗应用开启后会在第一时间对手机的 sim 卡进行检查,判断时候更换。那么这种 监听开机需要另一项 android 机制的支持来完成广播机制。 在 android 里面有各种各样的广播,比如电池的使用状态,电话的接收和短信的 北京工业大学毕业设计(论文) 14 接收都会产生一个广播。图 3.11 就是一张广播的运行机制原理图。 broadcast reveicera broadcast reveicerc broadcast reveicerb broadcast reveicerd android 事件2 事件1 android广播事件 图 3.11 android 广播机制 各种广播在 android 系统中运行,当系统/应用程序运行时便会向 android 注册 各种广播,android 接收到广播会便会判断哪种广播需要哪种事件,然后向不同需要 事件的应用程序注册事件,不同的广播可能处理不同的事件也可能处理相同的广播事 件,这时就需要 android 系统为我们做筛选。 本软件就利用开机广播和短信接收广播来判断手机状态和控制手机。 3.3.4 gps 服务 对于 gps 我想大家现在都很了解,至少不会陌生,一般情况下每个装载 gps 的设备 都会由 3 颗卫星进行定位,在需要时可将设备所在的位置信息发送到 gps 上,例如返 回的经纬度,有了这些位置信息我们便可进行需要的操作10。 在本应用中将会运用 android 手机的 gps 定位系统,为我们获取手机的当前位置, 便于用户找回丢失的手机 3.3.5 私人数据的管理 当用户的手机丢失后恐怕最担心的就是自己私人信息的外露,出于此考虑,本软件 将通过继承 intentservice 的类,对用户的通讯录、媒体图片进行备份并向安全手机 发送,同时将原有数据删除,以防止不法分子的非法企图。 北京工业大学毕业设计(论文) 15 4 手机防盗应用方案的实施 按照手机防盗应用技术的设计理念,我将从 ui 入手,在做完界面的基础上组合、 衔接并加入相应的功能,最后通过 service 实现后台监听、储存、处理等功能。 在实现这些功能之前我们需要先搭建 android 开发环境,其具体操作流程见附表二。 4.1 ui 的实现 在 android 系统中,ui 的构建主要都由 activity 类来完成。为了开发方便, android 又构造了多个继承 activity 类的子类。其中在我们的软件里用到了 listactivity 和 preferenceactivity 两个子类和 activity 本身。 4.1.1 activity 要使用 activity 以及其子类首先要知道 activity 的生命周期,只有知道其生命周 期的顺序才能控制好界面的显示。图 4.1 为 google 官方给出的 activity 生命周期流 程图。 北京工业大学毕业设计(论文) 16 图 4.1 activity 生命周期 在本软件中有 8 个 ui 直接通过继承 activity 类构成,他们的应用方法大同小异, 我就拿其中最复杂的初始化界面来介绍。 初始化界面的整体设计流程图如图 4.2 所示。 北京工业大学毕业设计(论文) 17 创建first类 覆写oncreate方法 声明并得 到button 控件 为每个 button绑 定监听器 用户点击按钮事件 setconten tview显示 界面 等待用户点击 事件 n y layout 提供控 件 判断密码是否 不为空 提示输入状态错误 判断密码是否 合法 判断手机号是 否合法 判断手机号是 否不为空 判断两次密码 是否一致 y y y y n n n n n mit() 提交数据库 startactivity到 main 图 4.2 初始化 ui 流程图 .java 文件: 首先新建一个继承 activity 的类 first public class first extends activity 在此类里面对 ui 界面进行编辑 以下为关键代码: 1 2 3 4 5 6 7 /覆写 oncreate 方法 public void oncreate(bundle savedinstancestate) /绘制 ui 界面 setcontentview(r.layout.first); /用 findviewbyid 的方法声明并得到 button 控件 button bt_sure = (button)findviewbyid(r.id.sure); /用 setonclicklistener 方法绑定 button 监听器,获取用户点击按钮事件 北京工业大学毕业设计(论文) 18 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 bt_sure.setonclicklistener(new onclicklistener() /用 ifelse ifelse if 语句对用户设置信息进行判断 if(str_password1.trim().equals(“) | str_password2.trim().equals(“) /用 toast.maketext()方法做出相应提示 toast.maketext(first.this, “密码不能为空“, toast.length_long).show(); else if else /建立数据库编辑对象 editor editor = sp.edit(); /储存安全密码到数据库 editor.putstring(“password“, str_password1); /提交改动到数据库并保存 mit(); /创建 intent 对象 intent intent = new intent(); /指明跳转 activity intent.setclass(first.this, main.class); /开启要跳转的 ui first.this.startactivity(intent); 北京工业大学毕业设计(论文) 19 linearlayout linearlayout relativelayout linearlayout textview textview textview textview textviewedittext linearlayout textviewedittext linearlayout textview textview textview buttonbutton 图 4.3 layout 布局控件示意图 layout.xml 文件: 为 activity 提供布局支持的 layout 文件是 ui 如何显示的控制中心,这个文件里 的控件属性决定了控件的显示位置,图 4.3 是为 first 提供布局控件的 layout 的示意 图,其主要代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /第一行定义了布局文件所链接数据库的版本以及支持的语言,“utf-8“为中文。 / 采用 linearlayout 绝对布局的 orientation 属性定为 vertical 既垂直布局,第/一 行属性为 android 固定格式,我们不用过多研究 /在布局文件中放进文本框并定义相关属性 /嵌套绝对布局的水平布局 /嵌套相对布局 北京工业大学毕业设计(论文) 20 15 16 17 androidmanifest.xml 文件: android 中设立了一个统一管理文件,这个文件可以理解为 android 的一个注册表 文件,在这个文件中,我们可以声明我们自己定义的权限。如果所用的组件需要权限 但没有在这个文件注册,应用程序就会无法正常运行。任何一个 activity 类都是需要 注册的,所以本应用的 androidmanifest.xml 主要代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 /注册接受开机广播权限 /注册发送短信权限 /注册获取具体地址权限 /请求 activity 显示 /通过 intent-filter 设置首显 activity /注册广播接受类 /注册服务类 北京工业大学毕业设计(论文) 21 4.1.2 listactivity listactivity 直接继承于 activity,是手机基本应用中最常用的一类应用程序。 listactivity 用来在屏幕中显示一个列表,当点击其中的某一列时,可以触发一些操 作。我们通过设置一个 onlistitemclick 函数,来得到用户正选择了哪一列的信息, 并做后续处理。使用了 listactivity 类后,如果整个屏幕上只需显示一个列表,我们 甚至可以把 setcontentview 一行注释掉,不用定义列表的 xml 说明文件。因为 listactivity 类已经默认绑定了一个 listview(列表视图)界面组件。图 4.4 就是一 个典型的 listview 示意图。 图 4.4 listview 示意图 在本软件中,ui 主层和 ui 功能体验层的列表视图就是通过直接继承 listactivity 这个类得到的。在继承 listactivity 的类中要想显示列表内容就必须要调用 setlistadapter(listadapter)方法,在这个方法中需要传进一个 listadapter 参数, 这个 adapter 通常我们叫做适配器,我们要显示出来的数据就储存在这个 listadapter 当中。在 list 中的每一个数据都是一个 hashmap。hashmap 就是一种 map,在 map 中数 据都是以键值对的方式存在的,这样,我们的数据最终在 list 中的存储方式就是以键 值对的形式存在的。我们只需要给 value 对应的 key 赋值就可以把我们要显示的数据 装进 list 中了。下面以 ui 功能体验层为例根据图 4.5 的程序流程图分析下代码: 北京工业大学毕业设计(论文) 22 创建tiyan类 覆写oncreate方法 通过 simple adapter装 入数据 应用 listitemc lick绑定 监听器 用户点击按钮事件 setconte ntview显 示界面 等待用户点击 事件 n y layout list数 据框架 startactivity到 dingwei layout 主框架 startactivity到 dingwei startactivity到 dingwei startactivity到 dingwei startactivity到 dingwei startactivity到 dingwei 0 1 2 3 4 5 图 4.5 体验功能 ui 流程图 java 文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /首先我们的体验层要继承 listactivity public class tiyan extends listactivity /在这里设置各功能对应的数值 private static final int dingwei = 0; /定位手机 private static final int xiaohui = 1; /销毁数据 private static final int suoding = 2; /锁定手机 private static final int baojing = 3; /发报警音 private static final int huanka = 4; /换卡短信通知 /这里我们需要在 layout 文件中设置两个布局文件,一个用于主框架,另一个是为 /list 单独建立的,专门摆放 list 中的控件,下面这句代码就是主框架 setcontentview(r.layout.tiyan); /建立一个 hashmap 放进 arraylist 中 arraylist list =new arraylist(); 北京工业大学毕业设计(论文) 23 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 /分别生成对象,以 map1 为例,后面 4 组方法相同 hashmap map1 = new hashmap(); /向 map 中对应位置装入数据, map1.put(“tiyan“, “定位手机“); map1.put(“jianjie“, “获取手机当前位置,便于您找回“); map1.put(“img“, r.drawable.dingwei); /将 map 加入 list,这样数据就存放在列表当中啦 list.add(map1); /生成 adapter,并实现通过 setlistadapter()方法实现 list simpleadapter listadapter = new simpleadapter (this,list,r.layout.tiyanlist, new string“tiyan“,“jianjie“,“img“, new intr.id.tyxx,r.id.tyjj,r.id.tytb); setlistadapter(l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班数学课件送给恶猫的礼物
- 2024美食城招商合同范本
- 两公司买卖合同纠纷一案引发的对钢材加价款性质的探究及对“执行难”的思考-毕业论文
- 2024个人伤害保险合同
- 辐射4代码大全整合
- 高端样板间开盘活动
- 2024店面转让合同协议书样本
- 2024企业产权合同范文
- 2024家庭装饰的合同范本
- 2024广告销售代理合同范本
- 生活场景下信息检索
- 【城市社区韧性治理探究文献综述4800字】
- 平台资本主义的垄断与剥削逻辑论游戏产业的“平台化”与玩工的“劳动化”
- 教科版六年级科学上册全册同步练习附答案
- 2024年《大学语文》期末考试复习题库(含答案)
- 职业健康风险评估数据(井仔)
- 蜂蛰伤急救护理课件
- 学习不是唯一出路
- 民航行业应急管理体系建设
- 大学生返回母校宣讲
- 体育教师国培心得体会
评论
0/150
提交评论