基于Android的短信管理应用的设计与实现-毕业论文_第1页
基于Android的短信管理应用的设计与实现-毕业论文_第2页
基于Android的短信管理应用的设计与实现-毕业论文_第3页
基于Android的短信管理应用的设计与实现-毕业论文_第4页
基于Android的短信管理应用的设计与实现-毕业论文_第5页
免费预览已结束,剩余47页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文设计题目 基于Android的短信管理应用的设计与实现 目录摘要1ABSTRACT21.绪论11.1.开发背景11.2.国内发展现状及趋势11.3.系统特色介绍21.4.开发环境31.5.开发技术31.6.内容安排42.系统需求与分析52.1.系统总体需求52.2.系统整体流程62.3.用户用例分析62.2.1.收短信模块62.2.2.发短信模块72.2.3.系统设置模块92.2.4.账号相关模块92.2.5.云备份模块102.2.6.日程相关模块112.2.7.联系人分享模块112.2.8.在线即时通讯模块122.2.9.短信其他操作模块132.4.非功能需求133.系统设计143.1.系统设计原则143.1.1.易用性143.1.2.可维护性和可扩展性143.1.3.可修改性143.2.功能模块设计143.3.系统物理架构设计153.4.数据库设计163.4.1.安卓系统联系人数据库163.4.2.安卓系统短信数据库193.4.3.服务端数据库203.5.详细设计233.5.1.账号注册233.5.2.短信发送243.5.3.短信接收253.5.4.短信云备份263.5.5.短信数据恢复273.5.6.联系人分享283.5.7.扫描二维码导入联系人283.5.8.语音发短信293.5.9.群发回复自动统计功能304.系统关键技术314.1.多线程下载技术314.2.异步任务处理技术314.3.跨应用数据处理技术325.系统实现与测试335.1.系统实现335.1.1.功能实现335.1.2.系统部署395.2.系统测试405.2.1.系统功能与兼容性测试405.2.2.性能测试416.结论与展望426.1.结论426.2.未来的展望42致谢43参考文献443基于Android的短信管理应用的设计与实现摘要:随着即时通讯的发展,人们使用传统的手机短信功能的次数越来越少。但传统短信在一些特殊场景,如手机号身份验证、广告短信推送、收发祝福、收取火车票通知等情况下依然有着广泛的应用。而如何针对这些特殊场景如何进行管理功能上的优化,并同时挖掘出短信数据内容本身的一些价值,从而使短信的管理能发挥出更大的作用是一个值得研究的课题。本文将设计并实现一款基于Android操作系统的新型手机短信智能管理APP应用。文章首先介绍了开发背景和目前短信软件的发展情况,然后再重点对系统的需求进行了分析,对系统的数据库和模块细节进行了设计。同时对系统所使用到的关键技术进行了说明。最后通过系统截图和测试数据对系统实现情况进行了展示。该应用在系统基本短信收发功能的基础上,从用户的短信使用习惯和生活中的实际需求出发,针对群发的通知回复情况统计、短信日程通知管理、数据备份、与短信联系的联系人数据的导入、广告短信显示等在使用中会遇到的实际生活场景,提供了一套智能化的解决方案,为用户提供一个更方便好用的管理软件。系统整体采用CS架构,客户端使用Android开发技术进行开发,服务端使用Java EE技术和tomcat进行开发部署,数据库为安卓系统原生SQLite数据库与MySQL相结合。关键词:安卓 短信 管理 生活场景Design and implementation of SMS management applications based on AndroidAbstract: With the development of instant communication, the number of people using traditional SMS function less and less. However, the traditional message in some special scenarios, such as phone number authentication, pushing advertising messages, sending and receiving blessings, receiving notification of the train and so on, still has a wide range of applications. And how to optimize the management for these special scenarios, and at the same time to mine some of the value of the message data itself, so that the message management can play a greater role is a subject deserving of study.The paper will design and implement a new kind of app based on Android, which can help users manage sms more intelligently. Firstly, the article introduces the development background and development of the current messaging software, and then the requirements of the system are analyzed mainly. After that, the article designed the database and details of each module. At the same time, key technologies used in the system are described. Finally, screenshots of the system and test data are shown.Based on basic functions of sms, the application considers the users real-life needs and usage habbits, and provides a set of intelligent solutions and a user-friendly product for the users, which focused on some actual situations, such as counting replies to the notification, managing notificaitions of schedule from message, back-up of data, importing data of contacts related to sms ,display of sms advertisements and etc. The system is based on CS architecture .The client is developed in the Android platform, while the server-side implementation is completed with Java EE and the system uses tomcat for deployment. The used database is combination of Android native database SQLite and MySQL database.Keyword:Android SMS Management Usage scenarios471. 绪论1.1. 开发背景自短信功能在手机通信业务上产生以来,便以其使用便捷的特点受到广大用户欢迎。而短信功能本身也经历了较大的发展。从简单的一对一文本收发,到加入一对多群发的书写与读取,短信功能得到了进一步的加强。但随着智能手机系统的不断普及,各种即时通讯软件App如QQ,微信等社交工具以其友好的界面和免费的使用模式,得到迅速流行和用户喜爱。但基于现实世界中相互强关联关系的通讯录和短信业务在市场中仍然显得非常重要。在我们日常使用智能手机的短信功能时,大量通知类信息,服务类信息充斥着我们的收件箱, 想要去查看群发短信回复情况,却要花上十几秒滑动屏幕,所谓的智能化形同虚设。如何将其进行一个更好的显示和功能扩展是一个问题。而对于生活场景中,如社团活动中常见的群发通知,工作开会时有时候不方便回短信等问题,也需有一个比较好的利用智能手机的特性去解决问题的方案。与即时通讯相比,短信存在资费高的问题,用其作为沟通工具有着一定的成本。另外随着手机用户的不断增长,特别是智能手机(Android)的大规模普及,用户对手机使用的特点,如操作便捷,交互人性化等方面有了更高的要求。1.2. 国内发展现状及趋势目前国内的短信管理产品主要以各大手机厂商自己的系统短信应用为主。其一般主要注重短信通信的基础功能,对由短信扩展出来的功能没有太多重视。市场上也有多款不同的软件供用户选择,差异主要体现在样式上。软件功能虽有些不同,但大同小异,且基于国内实际生活场景进行优化的管理功能并没有太多。但是随着小米系统等新的带有互联网思维的系统出现,短信产品也有着越来越多的创造性,如利用智能技术对联系人称谓进行预处理等等,以方便用户平常节假日祝福短信的发送。随着自然语言处理和人工智能技术的不断发展,软件的发展趋势都是变得更加智能化、生活化,通过对使用场景的分析做出定制优化,通过对已产生数据的利用产生新的价值。而短信作为目前还没有大范围应用智能化的软件部分,在之后的发展中应该会变得越来越易用和智能。如利用数据挖掘技术对大量短信数据进行处理,从而实现拦截垃圾短信和识别诈骗短信的功能。目前基本的短信软件开发技术已比较成熟,Android系统版本已经更新到6.0,而国内的手机厂商也在不断对Android系统进行不断的改造和优化,目前成果丰硕,且国内Android开发技术书籍和论坛也非常多,技术较为成熟。1.3. 系统特色介绍本文章将介绍的管理软件以系统原生短信基本功能为基础,从目标群体的短信使用情景出发,利用网络技术、文本匹配等技术,针对用户群发通知需要收费、群发的回复情况查看复杂、无法进行多选回复、通知类短信繁多导致管理不便、换手机后数据丢失等在短信使用中会实际遇到的问题,为用户提供一套智能化的解决方案。如在节日时,用户群体同样也会收到来自亲朋好友的大量的祝福短信。不回复会显得不够礼貌,但是如果像传统的回复情况一样逐条回复,是一件费时的事情。因此针对用户回复某一特定情景下的短信时所回复内容比较相似的情况,可以通过多选所要回复的短信,统一进行回复。如用户收到含有日期时间,地点内容等的通知短信时,可以一键直接将短信生成相应日程提醒。系统将自动调用日程软件,并根据短信内容中的日期直接定位到当天,并将地点内容等信息提取并填入所需要的日程信息中,用户根据个人需要修改需要提前提醒的时间后,即会生成相应的日程安排。学生社团团体等用户群体,经常需要通过短信去给成员发送通知,而这一过程有着短信资费昂贵和回复统计困难的问题。本系统支持通过账号系统形成一个即时通讯应用,对于在线的收件方可以通过网络发送消息,不在线再使用短信通道。同时通过图表的方式将回复情况进行统计和展示。用户在生活中常有更换手机或者手机遗失的情况,而手机更换后,原手机的数据就丢失了。针对这一问题,本系统支持通过账号进行手机联系人和短信数据的云备份和恢复。1.4. 开发环境硬件:PC机编译器:Android Studio 1.5 和 MyEclipse Professional 2014数据库:MySQL服务器:Tomcat8浏览器:Google Chrome版本管理工具:Git测试手机:华为C8815与华为荣耀4C 1.5. 开发技术A. Android操作系统安卓是一款基于Linux开源的部署在移动平台上的操作系统,普通开发者和手机厂商都可以按照一定的规则自由地对其进行定制开发。同时Google提供了一整套的规范化的开发平台和开发体系,方便开发者通过Google提供的系统API和系统机制开发出各种各样的应用软件。1所以通过Android平台,我们可以对系统短信应用进行重新定制或者二次开发,达到我们个性化需求开发的目的。B. 科大讯飞开放语义API科大讯飞开放语义平台,是一套集语义解析、智能问答入于一体的技术接入平台,面向广大开发者提供一站式语义解决方案。该平台覆盖多垂直领域的语义通用场景,支持Andriod、IOS等多种应用平台,通过规范和多样的API,满足应用的个性化定制需求。在本系统中就需要使用到该API,对用户输入的语音进行语义解析,获取解析结果后生成发短信任务,从而实现语音发短信功能。C. 极光推送IM SDK极光IM为App开发者提供易用可靠的即时通信云服务,搭建应用用户间自由的交流通道,增强产品社会化属性。极光 IM 提供单聊,群聊的方式。聊天内容支持文本,图片,语音以及自定义消息等多种格式。终端平台覆盖 Android,iOS 以及 Web 客户端。极光IM以极光推送的大规模、高并发、稳定的推送服务为技术基础;共享极光推送的多区域分布接入资源,采用一条连接同时维护 JMessage 与 JPush 两个服务。而在本系统中就需要到该SDK,集成其即时通信的服务,并构建出一套用户系统,以此为基础去实现类似WhatsApp的网络消息与手机电信短信互相接合,无缝连接的效果。D. Java EE技术Java EE是sun公司推出的企业级应用程序版本,在 Java SE 的基础上构建,提供Web 服务、组件模型、管理和通信 API。通过使用Java EE和相应的JDBC等组件,我们能够轻松并规范地开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序,比如可以用来开发基于Web 2.0的Java 网站和服务器端接口。2而本系统的服务端就是使用Java EE进行编写,既可以通过其编写Web页面的交互,也可以用其编写手机客户端请求的处理后台和数据库交互的部分。1.6. 内容安排本论文整体分为六个大章节。第一章为绪论,简要叙述了系统拥有的特色、发展现状及趋势、系统的开发背景,同时介绍了开发本系统所使用的开发平台工具和使用的技术。第二章系统需求与分析,该章节对系统的需求以用例图的方式进行了阐述,并绘制了系统整体的业务流程图,限定了系统非功能上的需求。第三章系统设计,在简要介绍了系统设计的原则之外,对系统的功能架构进行了说明和划分。之后文章解释了所使用到的和与自主设计的数据库,同时以UML泳道图、UML活动图的方式设计了各个复杂功能的详细交互流程。第四章系统关键技术,本文介绍了在系统开发过程中所使用到的有较高难度和设计思想的技术,包括多线程下载、异步任务处理、跨应用数据交互。第五章系统实现与测试,文章介绍了系统各功能的实现情况和部署过程,并对系统完成后的测试过程和测试结果进行了说明。第六章结论与展望,该章节对毕业设计的整个过程做了总结,并提出了不足的地方,同时也阐述了改进方向。2. 系统需求与分析1.2.2.1. 系统总体需求总体需求概括来说就是在提供基本短信服务的同时,再提供一些有特色的针对特定场景进行优化了的功能。A. 短信基本的收发服务和基本操作系统需要能进行基本的收取与查看短信、编辑和发送短信操作。另外系统需要支持对短信数据进行删除操作、转发操作、复制操作等基本的处理操作。B. 可进行短信系统的相关基本设置系统需要支持对短信相关功能的一些功能进行开启或关闭,并可以修改功能相应的参数设置。C. 服务和广告类短信与普通用户短信分隔显示系统可以将来自网络的服务类短信数据与日常普通的短信会话分隔开来,避免用户受太多垃圾短信的干扰。D. 针对特定类型的通知短信可以生成日程针对带有时间通知信息的短信,系统可以支持一键生成一条日程,插入到手机系统的日历中,作为提醒。E. 需有数据备份及保障数据安全系统需要支持对短信和联系人的数据进行备份,将数据保存到远程服务器中,并可以通过账号进行恢复。F. 可通过不同的途径生成发短信任务系统既可以通过传统的文本编辑产生短信任务,也可以通过说一句话的语音产生一个短信任务。G. 可以对系统联系人数据进行操作联系人是短信数据的重要部分,两者相辅相成。系统可以导入不同来源的联系人,并支持将本地的联系人数据通过二维码进行选择和分享操作。32.2. 系统整体流程系统整体的流程以用户登录为起点。用户进入主系统后,可以查看普通短信主列表,并通过主系统提供的各个入口,进入到新建短信、系统设置、特色功能等二级模块。通过列表入口,可以进入到服务短信列表或者具体的会话模块。而新建短信模块分为文本编辑短信和语音发短信两部分,在操作完成后也会回到会话模块。而通过系统设置入口可以去完成系统功能的相关设置。通过特色功能入口,用户可以使用备份与恢复、分享联系人,下载Excel工作文件三个功能。整体流程图见图2.1。图2.1系统整体流程图1.2.3.3.1.3.1.1.2.3. 用户用例分析1.2.3.3.1.3.2.1.2.2.1.2.2.2.3.2.3.1. 收短信模块收短信模块的用例主要分为五个模块,通知栏、普通短信显示、服务短信分类、群发通知回复自动统计、验证码悬浮框显示。(见图2.2)图2.2收短信功能用例图A. 收到通知收到信息后,在通知栏会显示相应消息,内容有信息发件人、短信内容的前半部分和收到的时间,可以在通知栏里点击消息直接进入短信编辑页面。B. 查看普通短信列表以与用户产生短信消息的号码为单位形成列表,在列表项中需要有号码(如果已有联系人,则显示姓名)、短信时间、短信首行内容,并按与此联系人的最新一条短信的时间对列表进行排序。C. 查看服务短信列表来自网络服务号码且未添加联系人(如支付宝的通知等)的短信全部整合到一个列表项中,并与其他列表项显示上有所区分。D. 查看回复自动统计针对群发出去的通知短信,用户可以选择进行统计,自动统计出有多少人已回复,还有多少人未回复,并使用饼图图表进行展示。E. 验证码悬浮框显示对于收到的验证码一类的短信会在通知栏上停留更长的时间,以便用户编辑。2.3.2. 发短信模块发短信模块的用例主要分为一对一发送、一对多发送、编辑草稿、使用自动回复、语音发短信、群回短信。(见图2.3)图2.3发短信功能用例图A. 一对一发短信针对单一联系人或者号码编辑并发送短信。B. 一对多短信收件人可以选择多个,并可以自主选择是否自动添加称谓以及在短信的哪个地方添加称谓。C. 编辑草稿已选定联系人,并编辑过内容的短信如果没有马上发送,需要存为草稿。D. 自动回复在设置自动回复状态后,收到有联系人的短信时,自动给予其回复,并且回复内容可以被用户自定义。E. 语音发短信用户可以通过语音新建一条短信,或者对收到的短信进行回复,支持单对单和单对多发送。F. 群回短信在普通短信主列表中可以选择多个联系人列表项,选择群回功能进入群发短信功能,并自动把选择的联系人添加到收件人列表中。2.3.3. 系统设置模块系统设置模块的用例分为通知栏设置、语音发短信设置、自动回复设置。(见图2.4)图2.4系统设置功能用例图A. 是否在通知栏预览信息通过设置可以控制在收到短信时,是否需要在通知栏显示相应的消息。B. 语音发短信设置用户可以自主设置语音识别时间和语言参数。C. 自动回复设置是否开启自动回复以及要用于回复的短语,系统中自带一些常用的,也支持用户自己添加新的。2.3.4. 账号相关模块账号相关的用例图分为注册、登录、注销、手机号身份验证四部分。(见图2.5)图2.5账号相关功能用例图A. 注册用户可以通过手机号进行注册,设置密码,并进行手机号验证。B. 登录用户可以通过已注册的手机号和密码信息进行登录操作。C. 注销已登录的用户可以进行注销操作,取消登录状态。D. 手机号身份验证用户在注册的时候需要通过获取并输入验证码的方法进行个人身份验证,以手机号作为身份标识。2.3.5. 云备份模块数据云备份模块的用例,分为联系人云备份、联系人数据恢复、短信云备份、短信数据恢复四个部分。(见图2.6)图2.6云备份功能用例图A. 联系人云备份用户可以将系统的联系人数据全部保存到服务器中,并与账号绑定。B. 联系人数据恢复联系人可以从远程服务器中将之前备份过的联系人数据恢复到手机上。C. 短信云备份用户可以将系统的短信数据全部保存到服务器中,并与账号绑定。D. 短信数据恢复联系人可以从远程服务器中将之前备份过的短信数据恢复到手机上。2.3.6. 日程相关模块日程的用例包括一键生成日程、查看日程列表、处理日程三个部分。(见图2.7)图2.7日程功能用例图A. 一键生成日程用户可以对带有日程信息的短信进行操作,直接生成一个对应的日程安排,保存到系统日历应用中。B. 查看日程列表用户可以查看自己生成的所有日程,日程以一个较友好的方式进行展示,如日程类别,时间等等。C. 处理日程用户可以自主修改、删除已有的日程。2.3.7. 联系人分享模块联系人分享模块的用例图如下,包括生成二维码、分享二维码、扫描二维码、导入联系人四个部分。(见图2.8)图2.8联系人分享功能用例图A. 生成二维码用户可以自主选择要分享的联系人,然后设置分享密码,即可生成一个相应的二维码,二维码中绑定了要分享的联系人相应的数据文件地址。B. 分享二维码用户可以将生成的二维码分享给其他用户,比如QQ好友、微信朋友圈、微博等。C. 扫描二维码用户可以通过使用App内的扫描二维码功能,扫描其他用户分享给他的二维码,识别出其包含的联系人文件地址信息。D. 导入联系人在获取地址信息之后,用户可以选择将对应的联系人进行导入,保存到手机中。2.3.8. 在线即时通讯模块在线即时通讯的用例图如下,包括收消息、发消息、消息保存为短信三个部分。(见图2.9)图2.9在线通讯功能用例图A. 发消息如果对方也在使用同一个App,且在线,则通过网络发送消息给对方,而不是通过移动通信商。B. 收消息如果用户和发消息方同时在线,则用户收到的消息是来自对方网络发送的,而不是对方通过移动通信商发送的短信。C. 消息保存为短信无论是收到的网络消息还是发出去的网络消息,最后都保存到短信数据库中,作为数据留存的方式。2.3.9. 短信其他操作模块短信其他操作的用例图如下,包括复制、转发、删除三个部分。图2.10短信其他操作功能用例图A. 短信删除可以选择一条或同时选择多条短信数据进行删除操作。4B. 复制可以针对某一条短信,进行整条短信内容复制或者部分文本复制。C. 转发可以将某一条短信整条进行转发给其他联系人或号码,其中就包含了之前所分析的文本发短信用例。2.4. 非功能需求A. 性能需求:各功能的响应与处理时间需要控制在一定范围内,且针对较低配置的手机也能够做到使用流畅。B. 稳定性需求:用户在使用本系统的过程中,系统需要保持较好的稳定性,稳定率在99%以上。C. 安全性需求:用户在使用本系统的时候,需要保证用户数据的完整性、保密性。D. 兼容性需求:本系统需要兼容Android 4.2到6.0原生系统与主流手机厂商的定制系统。E. 易用性需求:系统设计需符合移动应用开发设计规范,保证用户使用起来没有疑惑,操作顺畅。3. 系统设计1.2.3.3.1. 系统设计原则针对该系统,在项目设计过程中考虑了易用性、可维护性和可扩展性、可修改性这几个原则。51.2.3.3.1.3.1.1. 易用性该系统面对的用户是安卓原生短信应用提供的服务不够满意的群体,所以要想让用户使用系统的时候感到好用,必须在系统设计时考虑系统的易用性。系统应建立使用友好、简洁明快的用户界面,在操作方面更简单、直观、易于理解。6具体可表现为:系统中的交互设计需符合Android开发Material Design规范,配色统一,交互按钮设置合理到位;系统使用的背景和贴图与上下文语义匹配;系统功能流程节奏明了、不冗余;用户易发现要使用的功能的入口。3.1.2. 可维护性和可扩展性整体系统上采用CS架构,把服务端与客户端分开,各部分各司其职。而在客户端的系统设计上需考虑开发中不断迭代加入的新功能和老功能的修改,所以架构设计上采用传统的MVC三层模式。该三层模式的合理使用,可以让使数据层、控制层、表现层的代码互相分开,便于控制。从而加强了系统的可维护性和可扩展性。7 3.1.3. 可修改性该系统的设计层次比较明确,各层次间有统一的易于理解的接口,便于开发人员的理解和后期修改。编码过程中需有必要的注释,函数名和变量名等直接明了,语义明确。同时函数编写粒度大小适中,将一个大功能尽量分解为各个小的步骤函数以方便重构操作。3.2. 功能模块设计系统分为手机APP客户端和网站服务端两大部分。手机APP客户端主要分为发短信模块、收短信模块、设置模块、云备份模块、账号操作模块、短信其他操作模块、联系人分享模块、日程管理模块、在线即时通讯模块。(见图3.1)图3.1 客户端功能结构图网站端只是一个辅助使用的部分,所以较为简单,只分为账号登录模块、Excel文件上传模块。3.3. 系统物理架构设计系统总共涉及了手机APP、网页端、自主服务器、极光推送服务器四部分。(见图3.2)网页端是用户登录和上传EXCEL联系人文件的平台,方便用户在PC电脑上工作使用。手机APP是用户平常产生大部分操作的地方,给予用户包括短信收发,数据分享,数据备份等主要的功能。极光推送服务器属于第三方的服务器,通过接口调用,向该服务器发送请求,可以使用极光推送提供的通知推送和即时通讯功能。自主服务器是保存用户数据和处理用户请求的地方,可以将用户移动端和网页端产生的请求进行集中处理,并保存进数据库。 图3.2 系统物理架构图3.4. 数据库设计数据库的使用上,由于本系统部分是基于Android短信功能的二次开发,且对系统联系人有一定的操作,所以使用了安卓系统自带的部分数据库。安卓数据库类型是SQLite,为一个轻量级的数据库,实现了基础关系型数据库的大部分功能。1.2.3.3.1.3.2.3.3.3.4.3.4.1. 安卓系统联系人数据库首先是ContactsContact.Data表,该表保存了MimeTypeID和RawContactID。这两个Id的使用可以将data表和raw_contacts表联系起来。而联系人的所有专属数据保存在列data1至data15中,各列中保存的内容根据MimeTypeID的不同而不同。如保存号码(MimeTypeID=5)的那行数据中,data1列保存号码,data2列保存号码类型(手机号码/家庭号码/工作号码等)。8见表3.1。表3.1 Data数据表字段名类型描述备注_idINTEGER PRIMARY_KEY行idmimetype_idINTEGER当前行保存的mimetype类型的id。如1为邮箱;2聊天账号;3住址;4图片;5电话号码;6姓名等 raw_contact_idINTEGERraw_contacts表的_iddata1 到data15TEXT通用数据列(保存着联系人的信息,联系人名称、电话号码等)。ContactsContact.Contacts表,该表保存了所有的手机联系人。该表保存了联系人的ContactID、联系次数、最后一次联系的时间、是否含有号码等信息。910见表3.2。表3.2 Conatct数据表字段名类型描述备注_idINTEGER行id name_raw_contact_idINTEGERraw_contacts表的_idcustom_ringtoneTEXT与联系人相关的铃声times_contactedINTEGER与该联系人联系的次数last_time_contactedINTEGER上次联系的时间statrredINTEGER是否是常用联系人是(1),否(0)has_phone_numberINTEGER联系人是否至少有一个手机号码 是(1),否(0)ContactsContract.RawContacts表,该表保存了所有创建过的手机联系人。该表保存了联系人的RawContactID、ContactID、显示的名字、用于排序的汉语拼音等信息。见表3.3。表3.3 RawConatcts数据表字段名类型描述备注_idINTEGER行id contact_idINTEGERcontacts 表中的_iddisplay_nameTEXT联系人显示名称它可能是电子邮件地址,如果联系人显示名称是不可用display_name_altTEXT联系人显示名称的替代表示如西方名字“名在前”而不是 “姓在前”。soft_keyTEXT排序的关键考虑账户中语言环境,按地址簿中的显示名称进行排序。soft_key_altTEXT排序键基于全名的拼音Mimetypes表,该表定义了所有的MimeTypeID,即联系人的各个字段的唯一标志。见表3.4。表3.4 Mimetupes数据表字段名类型描述备注_idINTEGER行id与data表中的mimetype_id对应mimetypeTEXT数据的类型phone_lookup表,该表用来联系data表与RawContact表。见表3.5。表3.5 Phone_lookup数据表字段名类型描述备注data_idINTEGERdata对应的id通过data_id可以找到 data表中相对的数据。raw_contact_idINTEGERraw_contact对应的id通过id可找到 raw_contact表中相对的数据3.4.2. 安卓系统短信数据库canonical_addresses表,该表用来保存每个短信会话对应的多个发送或者接收的号码。见表3.6。表3.6 Canoical_addressed数据表字段名类型描述备注_idINTEGER PRIMARY_KEY主键ID系统生成addressTEXT发送或接收的电话号码Sms短信表,该表用来保存单条短信记录相关数据。每条记录都存储了对应短信记录的号码、时间、状态、内容等信息。见表3.7。表3.7 Sms数据表字段名类型描述备注_idINTEGER PRIMARY_KEY主键ID系统生成thread_idINTEGER对应会话的id外键addressTEXT对方短信号码personINTEGER存在电话薄里的名字不存在的为空dateINTEGER日期protocolINTEGER协议发送短信为空,收到为0readINTEGER已读未读已读为1,未读为0statusINTEGER短信状态如果是-1,则表明该短信没有被收到typeINTEGER短信类型发短信为2,收到短信为1subjectTEXT主题bodyTEXT短信内容lockedINTEGER是否锁掉了。0为未锁,1已锁sim_idINTEGERsim卡idThreads会话表,每个不同的号码对应一个不同的对话,而会话表就是存储会话数据的结构。该表保存对应会话的短信总条数、创建日期、最新一条的短信内容等数据。见表3.8。表3.8 Threads数据表字段名类型描述备注_idINTEGER PRIMARY_KEY主键ID系统生成dateINTEGER日期会话创建的日期message_countINTEGER短信总条数recipient_idsTEXTcanonical_addresses的主键外键snippetTEXT在最前面显示的短信snippet_csINTEGER编码格式readINTEGER是否已读已读为1,未读为0typeINTEGER短信类型push的短信为0errorINTEGER是否有错误有错误为1,没有为0has_attachmentINTEGER是否有附件没有为1,有为03.4.3. 服务端数据库服务端数据目前共5张表,分为User表、Sms_file表、Shared_contact_file表、Excel_file表、Contact_file表五张表。User表为存储用户基本信息的表,而其他表主要用于存储用户在Web端和手机客户端产生的各种操作,如备份、文件上传,包括了操作时间,操作对象等信息。数据库的各张表之间的关系ER图如下,见图3.5。用户与备份表之间为1对1的关系,而用户与联系人分析文件和Excel工作文件之间是1对N的关系。图3.3 服务端数据库ER图User用户表,保存了用户信息相关的数据,包括手机号,密码,昵称等关键数据。11见图3.9。表3.9 User数据表字段名类型描述备注Idint(20)用户主键PhoneNumbervarchar(20)用户手机号Passwordvarchar(32)用户密码UserNamevarchar(20)用户昵称EmailAaddressvarchar(20)邮箱地址RegisterTimedatetime注册时间IsOnLineint(1)是否在线1为在线,0为不在线Sms_file表,保存了用户云备份上的操作记录,保存了云备份的短信文件位置,短信数量等数据。见图3.10。表3.10 Sms_file数据表字段名类型描述备注Idint(20)唯一标识User_Idint(20)用户Id外键Sms_File_Locationvarchar(100)短信文件位置Sms_Countint(8)短信数量Newest_Upload_Timedatetime最新一次上传时间Shared_contact_file表,保存用户进行联系人分享操作的操作记录,包括文件位置,下载所需要的密码等信息。见图3.11。表3.11 Shared_contact_file数据表字段名类型描述备注Idint(20)唯一标识User_Idint(11)用户IdContact_File_Locationvarchar(100)联系人文件位置外键Newest_Upload_Timedatetime最新一次上传时间Extract_Download_Passwordvarchar(10)下载需要的密码默认为6位Download_Timesint(11)下载次数Excel_file表,保存用户在web端上传的excel格式联系人的操作的记录,包括文件位置,上传时间等信息。见图3.12。表3.12 Excel_file数据表字段名类型描述备注Idint(20)唯一标识User_Idint(20)用户Id外键Excel_File_Locationvarchar(100)联系人文件位置Newest_Upload_Timedatetime最新一次上传时间Contact_file表,保存用户进行联系人备份操作的操作记录,包括文件位置,联系人数量等。见图3.13。表3.13 Contact_file数据表字段名类型描述备注Idint(20)唯一标识User_Idint(20)用户Id外键contact_File_Locationvarchar(100)联系人文件位置contact_Countint(8)联系人数量Newest_Upload_Timedatetime最新一次上传时间3.5. 详细设计1.2.3.3.1.3.2.3.3.3.4.3.5.3.5.1. 账号注册账号注册流程是用户先输入自己的手机号,并设置密码,在确定无误后,向验证码服务器发出获取验证码请求,然后将得到的验证码再返回给服务器进行验证,验证通过后即正式提交注册请求。用户注册过程泳道图见图3.6。图3.4 用户注册泳道图短信验证回调关键代码如下:EventHandler eh = new EventHandler() Override public void afterEvent(int event, int result, Object data) if (result = SMSSDK.RESULT_COMPLETE) /回调完成 if (event = SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) /提交验证码成功 SMSSDK.registerEventHandler(eh); /注册短信回调3.5.2. 短信发送短信发送流程是在用户编辑好短信内容和对方号码后,首先通过服务器对收件人的在线与否状态进行查询。如果在线,则通过服务器网络发送消息给对方,并通过本地的广播接收器获取反馈信息。如果不在线,则通过正常的电信运营商的短信服务给对方发送短信。短信发送的顺序图见图3.7。图3.5 短信发送注册顺序图短信发送关键代码如下:SmsManager sm = SmsManager.getDefault();Intent send = new Intent(SENT_SMS_ACTION);PendingIntent sendPI = PendingIntent.getBroadcast(context, 0, send, 0);/ 短信发送广播Intent delive = new Intent(DELIVERED_SMS_ACTION); / 发送结果广播PendingIntent deliverPI = PendingIntent.getBroadcast(context, 0, delive, 0);for (String pno : phone) / 执行发送 sm.sendTextMessage(pno, null, body, sendPI, deliverPI);3.5.3. 短信接收短信的接收流程是在系统的后台广播接收器收到消息广播后开始的。系统首先会调用数据库工具,将消息数据进行保存,同时反馈给用户页面进行刷新。另外同时也会根据系统设置中是否开启了通知栏,决定是否给用户发送通知栏上通知。两步操作是同时进行的。该过程顺序图见图3.8。图3.6 短信接受顺序图短信接收关键代码Bundle bundle = intent.getExtras();/获取数据Object pdus = (Object) bundle.get(pdus);SmsMessage messages = new SmsMessagepdus.length;for (int i = 0; i messages.length; i+) messagesi = SmsMessage.createFromPdu(byte) pdusi);/解析号码String address = messages0.getOriginatingAddress();/解析内容String fullMessage = ;for (SmsMessage message : messages)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论