当前位置:文档之家› 毕业论文--基于Android平台的短信通的设计与实现

毕业论文--基于Android平台的短信通的设计与实现

基于Android平台的短信通的设计与实现

摘要

Android是Google于2007年11月5日宣布的基于Linux平台开源手机操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动平台。Android在中国的前景十分广阔,首先是有成熟的消费者,其次在国内Android社区十分红火,这些社区为Andro id在中国的普及做了很好的推广作用。

经过使用发现Android自带的短信发送功能十分简单,不支持单号码连发、定时短信等功能,然而Android开源的特性给开发者提供了一个完美的平台。

基于Android平台的短信通弥补了市场的空白,把单号码连发,号码段群发短信,清单群发短信,定时短信四个功能整合在一起,对Android手机短信发送功能很好的进行了完善。

采用面向对象的方法进行系统构思、需求获取、系统分析、系统设计、数据库设计和类设计,实现了单号码连发,号码段群发短信,清单群发短信和定时短信四个功能。

本文对短信群发定时短信软件的功能设计以及实现进行了详细的分析,并重点介绍该软件的开发过程,另外还讨论了一些关键技术的实现细节。

关键字:ANDROID,短信群发,定时短信,开源

DESIGN AND IMPLEMENTATION OF SMS SOFTWARE

BASED ON ANDROID

ABSTRACT

Android is Google on November 5, 2007 announced the Linux-based

open-source mob ile operating system p latform, the p latform is make up with the operating system, middleware, user interface and application software, which is the first mob ile device built for the truly open and comp lete mobile platform. Android has bright future in China, the first is a mature consumers, followed by the Android community is very prosperous in the country, these communities for the popularity of Android in China to do a very good promotional effect.

After using text messages found Android self-contained function is very simp le, and does not support single-number bursts, time messaging and other functions, however, the characteristics of Andro id open-source provide a perfect platform for developers.

SMS-based Android platform make up for gaps in the market, the single number of bursts, number of segments bulk SMS, sms group send ing, timer sms sending, improving the sending text messages function of the Andro id phone.

Object-oriented concept for system design, requirements capture, system analysis, system design, database design and class design to achieve a single number of bursts, number of segments bulk SMS, bulk SMS and regular text messages list.

In this paper, bulk SMS messaging software is used regularly design and imp lement a detailed analysis, and focus on the software development process, also discussed a number of key technical implementation details.

KEY WORDS:android,sms group sending, send timer sms, open source

目录

前言 (1)

第1章相关技术与理论 (3)

§1.1 Android架构研究 (3)

§1.1.1 应用程序 (3)

§1.1.2 应用程序架构 (4)

§1.1.3 Linux内核 (4)

§1.2 Android应用的构成和工作机制 (4)

§1.2.1 Android的API (4)

§1.2.2 Android应用程序结构解析 (5)

§1.3 使用的核心技术 (5)

§1.3.1 Intent的详细解析 (5)

§1.3.2 Android活动的生命周期 (6)

§1.3.3 Android进程的生命周期 (7)

第2章系统构思 (8)

§2.1 形成系统概念 (8)

§2.1.1 简化 (8)

§2.1.2 同类产品的比较和分析 (8)

§2.2 阐述概念 (8)

§2.2.1 使用用户 (9)

§2.2.2 解决问题 (9)

§2.2.3 用户需要 (9)

§2.2.4 可行性分析 (9)

§2.3 需求陈述 (10)

§2.3.1 开发环境 (10)

§2.3.2 运行环境 (10)

§2.3.3 性能需求 (10)

§2.3.4 软件实现原则 (10)

第3章需求获取(用例模型) (12)

§3.1 概述 (12)

§3.2 系统边界 (12)

§3.3 参与者 (12)

§3.4 系统用例图 (13)

§3.5 用例简述 (13)

§3.5.1 单号码连发 (13)

§3.5.2 号码段群发 (14)

§3.5.3 清单群发短信 (14)

§3.5.4 定时短信 (15)

§3.5.5 用户自定义清单 (15)

第4章系统分析 (17)

§4.1 概述 (17)

§4.2 领域分析 (17)

§4.2.1 概述 (17)

§4.2.2 领域类模型 (17)

§4.2.3 领域状态模型 (18)

§4.3 应用分析 (19)

§4.3.1 概述 (19)

§4.3.2 应用程序交互模型(时序图) (19)

§4.3.3 应用程序交互模型(活动图) (20)

§4.3.4 应用类模型 (21)

§4.3.5 应用状态模型 (24)

第5章系统设计 (27)

§5.1 概述 (27)

§5.2 估算性能 (27)

§5.2.1 估算发送性能 (27)

§5.2.2 估算数据存储性能 (28)

§5.3 制定复用计划 (28)

§5.3.1 库 (28)

§5.3.2 模式 (28)

§5.4 将系统分成子系统 (28)

§5.5 确定并发性 (28)

§5.5.1 识别内部的并发性 (29)

§5.5.2 定义并发任务 (29)

§5.6 分配子系统 (29)

§5.7 管理数据存储 (29)

§5.8 处理全局资源 (29)

§5.9 软件控制策略 (29)

§5.9.1 外部控制 (29)

§5.9.2 内部控制 (30)

§5.10 处理边界条件 (30)

§5.10.1 初始化 (30)

§5.10.2 终止 (30)

§5.10.3 失效 (30)

§5.11 设置权衡优先级 (30)

§5.12 系统架构 (31)

第6章数据库设计和类设计 (32)

§6.1 数据库 (32)

§6.1.1 概述 (32)

§6.1.2 实现结构—基础 (32)

§6.1.3 实现结构—高级 (34)

§6.1.4 封装与查询优化 (35)

§6.2 类设计 (38)

§6.2.1 概述 (38)

§6.2.2 实现用例 (38)

§6.2.3 代码重构和设计优化 (51)

第7章测试 (53)

§7.1 概述 (53)

§7.2 测试环境 (53)

§7.3 测试结果及分析 (53)

§7.3.1 操作流畅性 (53)

§7.3.2 性能测试 (53)

第8章应用程序的发布 (55)

§8.1 生成数字签名文件 (55)

§8.2 将程序发布到Google Project上 (55)

§8.3 将程序发布到掌上应用汇 (56)

结论 (57)

参考文献 (58)

致谢 (59)

前言

●研究背景及意义

目前android平台手机渗透到我们生活,20世纪末,电子技术获得了飞速的发展,在其推动下基于andro id平台手机的现代电子产品在我们生活的各个角落都能见到,有力地推动了社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。基于android平台手机的发展趋势,本设计以android平台手机为核心制作了一个短信通。

本次设计运用android平台手机作为研究开发对象,配合Java语言程序设计以及面向对象思想设计了一种手机短信通。本设计完成后,能够实现以下功能:单号码连发短信,号码段群发短信,清单群发短信,定时发送短信。

在设计时,按照设计的要求,从安全性,经济性,可靠性三个方面进行考虑,通过设计方案的比较,确定出来一套既经济又可行的方案。

本次设计是对所学知识的综合运用,把理论知识和实践相结合。在本次设计与检验过程中遇到了许多实际问题,比如android平台手机及其运行环境的选择,不熟悉开发技巧,软件运行不稳定,如何设计软件的最佳外观效果等。所有的这些问题,我们都通过查阅资料,咨询老师一一解决了,为设计的成功提供了保障。

本文通过方案确认,介绍了设计中所用到的技术、开发思想,以及android 平台的简介,通过清晰的程序活动图,给程序的理解提供了方向。还介绍了程序调试软件和硬件调试软件,最后对本设计的软件做了一个概述。

●系统设计目标

Android手机的市场占有率已经超过了Symbian成为全球第一大手机操作系统,但是Android自带的短信发送功能十分简单,只支持即时发送单条短信,本项目的目的是开发一个支持短信群发,定时短信的短信通软件,实现的主要功能是单号码连发短信(可设定发送条数和发送间隔),号码段群发短信(输入号码段,可设置发送间隔),清单群发短信和定时短信四大功能,界面美观,操作简单,功能实用。

本项目是一款基于Android手机平台的短信通软件,使Android手机拥

有更加强大的短信发送功能,使手机显得生动灵活化,与人们更为接近,让手机的主人可以在节日群发节日短信,发送定时短信等,方便用户的生活,也使设计者更加熟悉Android的技术和其他市场的特点。

论文准备工作

前言,介绍了研究的背景及意义,系统的设计目标和介绍论文的节构。

第一章为课题的相关技术与理论,研究的Android平台的架构,分析了Android应用的构成和工作机制,最后介绍了本软件使用的核心技术。

第1章相关技术与理论

§1.1 Android架构研究

图1-1 显示的是Andro id架构中的5个主要组成部分,每一部分会在下面具体描述。

图1-1 Android架构

§1.1.1应用程序

在Android SDK所用的手机模拟器及未来实体的手机中,都会有一系列Java语言撰写的核心应用程序,包含电子邮件客户端、SMS程序、日历、浏览器、联系人与其它一些应用程序,让使用者一开始就可以在手机上使用这些基本的功能。

§1.1.2应用程序架构

在Android SDK中,定义了让开发者使用与核心应用程序相同API的权限。

应用程序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能并为其它应用程序所使用。但是,这要受限于应用程序架构的安全机制,使用者可以用同样的机制来新增、置换组件。

目前所有的应用程序是由服务及系统来组成,包含有:

1.一套强大的可扩展的视图系统:用来建构一个应用程序的基本组件,

包含了在开发系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的Web浏览器。

2.内容提供者:使应用程序可以访问另一个应用程序的数据(如联系人数

据库),或者共享它们自己的数据。

3.资源管理器:提供各种非程序代码的资源让应用程序去使用。例如:

本地字符串、图形文件或排版相关的布局文件。

4.通知管理器:提供应用程序在状态栏中显示应用程序自定义的提示信

息。

5.活动管理器:管理所有应用程序的生命周期及提供常用的导航回退功

能。

§1.1.3 Linux内核

在Android SDK的作业系统是用Linux,其版本为2.6版。而所提供的核心系统服务有:安全机制、内存管理、进程管理、网络协议栈和驱动程序模型。Linux内核也同时作为硬件与软件栈之间的抽象层,用来做相互沟通的工作。

§1.2Android应用的构成和工作机制

§1.2.1 Android的API

Android API主要包含了以下几个部分:

1.AndroidManifest.xml。Andro idManifest.xml是系统的控制文件。

2.活动。活动就是一个有生命周期的对象。

3.视图。视图可以将其自身绘制到屏幕上。

4.意图。意图是一个简单的消息对象,它表示程序想做某事的“意图"。

5.服务。服务是运行在后台的代码。它可以运行在它自己的进程,也可

以运行在其他应用程序的进程里,这取决于自身的需要。

6.通知。通知将以小图标的形式呈现在状态栏里,用户通过与图标的交

互式操来接收消息。

7.内容提供者。内容提供者是用来提供对设备上数据进行访问。典型的

例子就是使用内容提供者来访问联系人列表。

§1.2.2 Android应用程序结构解析

通常由以下四个组件来构建一个完整的Android应用程序:活动,意图,接收器,服务内容提供者。

然而,并不是所有的Android应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建Android应用程序时,需要将它们注册在AndroidManifest.xml文件中,这是一个XML 配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个Android应用程序所必需的。

§1.3使用的核心技术

§1.3.1 Intent的详细解析

在一个Android应用中,主要是由四种组件组成的,这四种组件可参考上一节的内容。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。

例如,在一个联系人维护的应用中,当在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人后,希望能够调出此联系人的详细信息屏幕(假设对应的Activity为detailActivity),为了实现这个目的,

listActivity需要构造一个Intent,这个Intent用于告诉系统,要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用startActivity(Intent intent),将构造的Intent传入,系统会根据此Intent中的描述,到AndroidManifest.xml中找到满足此Intent要求的Activity。系统会调用找到的Activity,即为detailActivity,最终传入Intent,detailActivity则会根据此Intent中的描述,执行相应的操作。

§1.3.2 Android活动的生命周期

Android应用程序的生命周期是由Android框架进行管理,而不是由应用程序直接控制。通常,每一个应用程序(入口一般会是一个活动的onCreate 方法),都会占据一个进程。当系统内存即将不足的时候,会依照优先级自动进行进程的回收。不管是使用者或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,本节主要介绍活动的生命周期。

一个活动类别除了OnCreate方法之外,还预先定义了OnPause(暂停)、OnResume(继续)等的基本方法,当从一个活动切换到另一个活动的时候,原来的活动将经过一连串的状态改变。开发者可以在程序中添加一些各状态相对应的流程,每次活动状态改变时,就会执行相对应的流程。

要让用户有好的使用体验,活动需要在各个周期中负责保管状态、恢复状态、传送资料等工作。

Android的虚拟机(VM)是使用堆栈管理。主要有四种状态:活动状态,暂停状态,停止状态,已回收或未启动状态。

已回收或未启动状态是指活动尚未被启动、已经被手动终止或已经被系统回收的状态。要手动终止活动,可以在程序中调用finish方法。

图1-2 Android的Activity生命周期

图1-2所示的七个状态又可以归纳成三组:资源分配(创建/销毁),可见与不可见(启动/重新启动/停止),用户取得屏幕的控制权(继续/暂停)。

§1.3.3 Android进程的生命周期

在大多数情况下,每个Android应用程序都运行在自己的Linux进程中。当应用程序的某些代码需要运行时,这个进程就被创建并一直运行下去,直到系统认为该进程不再有用为止。然后系统将回收进程占用的内存以便分配给其它的应用程序。

为了决定在内存不足时让系统杀死哪个进程,Android根据每个进程中运行的组件以及组件的状态把进程放入一个“重要性分级"中。进程的类型包

括(按重要程度排序):前台进程,可见进程,服务进程,后台进程,空进程。

第2章系统构思

§2.1形成系统概念

§2.1.1简化

Android系统自带的短信发送功能十分简单,只支持短信的即时发送,通过基于Android平台的短信通的实现来让Android用户方便发送短信。

§2.1.2同类产品的比较和分析

虽然Android平台是完全开源的,但是Android本身所带的短信功能十分薄弱,不支持短信的群发,单号码连发,号码段群发短信以及定时短信功能,给用户带来了很大的不便。当前Andro id手机应用市场上虽然有一些增强短信发送功能的软件,但是并不支持短信群发和定时短信功能。

而且Android应用鱼龙混杂,真正一款方便用户群发短信和定时群发短信的软件在市场上还是空白。

当前市场的短信软件有:GO短信,飞信,Sms Timer等。

GO短信主要还是对收发短信和通讯录的管理,并不支持短信的定时发送和短信群发功能。

飞信虽然可以支持定时短信和短信群发,但这只是针对于移动的用户之间,对于联通和电信的用户来说就可望而不可及了。

Sms Timer是一款国外的定时短信应用,虽然可用,但是不符合中国人的操作习惯。

以上软件都不能把定时短信和短信群发进行不依赖于sim卡运营商的整合。

因此此款短信通软件有广阔的市场前景,一定会吸引大量的用户下载使用。

§2.2阐述概念

§2.2.1使用用户

用户为所有使用Android智能操作系统的手机用户。暂时不考虑使用Android平板电脑的用户。

本系统的最终用户是使用Andro id智能操作系统的手机用户,暂时不考虑使用Android平板电脑的用户。

谷歌称每天有30万台Andro id手机激活,从一个侧面也反映了庞大的潜在用户群体。

Android手机用户涵盖的人群层次比较大众化,有超过半数的Android 用户不到35岁,是所有智能手机系统中最多的。看新闻、商业应用和各种工具使用用户较多。

§2.2.2解决问题

基于Android平台的短信通软件服务的群体为Android手机用户。用户通过本软件可以方便的进行短信的发送。

对同一个电话号段内的号码可设置时间间隔,进行短信群发。

输入开始号码和结束号码以及发送间隔,对整个号码段内的手机进行短信群发。

从通讯录中选择一条或多条联系人,进行短信群发。

从通讯录中选择一条或多条联系人,设置发送时间,实现短信的定时发送。

用户可以自定义分组,将不同的联系人进行分组管理。

§2.2.3用户需要

如节日或集团内有事情要通知,用户都会使用本软件进行短信的群发或定时发送。

§2.2.4可行性分析

成本和风险:基于Android平台的短信通软件是基于Android的应用层

开发,金钱成本为开发所需的电脑和测试时所需要的Android手机。如果要发布到Google Market需要一张国际信用卡账号,且注册Google开发者的成本为15美金。因此开发的风险几乎可以忽略。

效益:市场的空白,完善的功能整合,良好的用户操作体验一定会吸引大量用户下载使用,在后续的升级版本中加入合适的广告,如节日短信汇总类的网站,不仅方便了用户,更会带来一定的经济效益,同时不会影响用户体验。

软件可行性:Google API提供了完备的开发接口,读取通讯录信息,实现数据的存储和短信的发送都是可以实现的。

§2.3需求陈述

§2.3.1开发环境

Windows XP SP3操作系统,MyEclipse7.5,JDK1.6,Android SDK,Android Development Too ls(ADT)。

StartUML,PowerDesigner。

§2.3.2运行环境

Android 1.6及其以上版本的手机。

§2.3.3性能需求

美观的用户界面,良好的操作体验,多线程的使用,多语言版本的支持,数据查询的效率。

§2.3.4软件实现原则

根据软件工程规范和基于Andro id的短信通系统的要求及特点,系统开发时必须遵循以下原则。

1.实用性原则:开发的系统必须满足实用性需求,做到使用方便,输入数据量尽量小,界面直观,易学易用,不同业务之间界面转换速度快。

2.高性能原则:系统在性能上做到实时性强、数据容量小、响应速度快、

稳定性高、出错率低、容错性好等优点。

3.数据安全性原则:安全性永远是数据库的重要课题,必须采取多种措施保证数据库的安全。

4.满足速度要求下的少冗余原则: 冗余指的是逻辑上相同的数据,在不同的记录中重复出现,或在逻辑上能导出存在于数据库的记录中。从理论上讲,冗余的存在,在数据库设计的不合理,是破坏数据库一致性的潜在危险,同时会增加数据空间开销。但是,在特殊情况下,为了满足速度要求,常常设计一些冗余作为数据库记录。

5.数据库字符段可空原则:具有默认数值和状态的数据库字符段,采用可空假定。对于可伸缩的数据库,可空字符段在没有数据输入的情况下是不占空间的。

6..操作模式可选择性原则:对不同的操作模式,设计不同的功能和不同的界面,或在同一功能和界面下设计多个选择项,以适应模式多变的需求。

7.美观化设计原则:在满足实用性的条件下,后台界面设计做到美观大方,大小适中,排列整齐,各种控制键的中文名字简单明了,不同的业务甚至不同的功能,有不同的界面。

8.常用性与特殊性相结合原则:对常用的状态和数值,作为缺省,对常用的功能放在主要界面和排前原则,对不常用功能启动时进行折叠和排后。

9.数据可维护性原则:数据维护包括权限设置、高级地址的集合运算、无用数据的删除、数据库的清理、数据备份与恢复等功能。

10.系统可维护性原则:全面按照软件工程的要求来开发基于Android的短信通系统,做到严格管理、严格测试。每个工作阶段,都具备相应的经过严格审查的文档,为将来系统服务提供技术上的保证。

11.统一性原则:建立统一合理的数据库模型,实行统一的文档编排和管理;实行统一的数据库关系命名、文件命名、函数命名、变量命名,实行统一的编程风格。

12.系统的可扩展性原则:在满足一期方案的基础上,考虑今后系统可能新增功能(比如,集成一些常用的节日祝福短信,用户自定义短信的开头欢迎语等)带来的系统软硬件的变化,为系统的扩充预留接口。

第3章需求获取(用例模型)

§3.1概述

在抽象层次上建模,用例描述系统如何与外部参与者进行交互。每个用例表示系统提供给其用户的一段功能。对于捕获非形式化的需求来说,用例的作用便彰显出来了。

§3.2系统边界

需了解应用程序的准确范围,也即系统边界,以方便把功能确定下来

System System

基于Android平台的短信通软件Android手机操作系统

图3-1 系统边界

如图3-1所示,系统边界为用户的Android手机操作系统,基于Android 平台的短信通软件调用Andro id SDK提供的接口、方法和数据库来实现功能。

§3.3参与者

参与者为使用Android的手机的用户和移动运营商(移动,联通,电信)。Android手机用户使用短信通软件定制发送信息,最终短信的发送还是通过各个移动运营商来完成发送。

表3-1 参与者概述

参与者描述

Android的手机的用户使用短信通软件定制发送短信。

移动运营商(移动,联通,电信)通过移动网络最终完成短信的发送。

短信接收人接收发送的短信,可以是任何运营商的任何手机

§3.4 系统用例图

系统用例图如图3-2所示:

System 用户

单号码连发号码段群发清单群发短信定时短信用户自定义清单移动运营商短信接收人短信通帮助信息 图3-2 系统用例图

§3.5 用例简述

§3.5.1 单号码连发

如表3-2所示。

相关主题
文本预览
相关文档 最新文档