基于安卓的校园快递文档格式.docx
- 文档编号:21424084
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:22
- 大小:488KB
基于安卓的校园快递文档格式.docx
《基于安卓的校园快递文档格式.docx》由会员分享,可在线阅读,更多相关《基于安卓的校园快递文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
安卓系统中具有四大组件,其中Activity是最主要的组件之一。
Android系统中Activity的生命周期如图2-1所示。
图2-1安卓Activity的活动周期
Activity是Android系统中的重要组件之一。
主要完成两个工作:
首先是处理业务逻辑,其次是渲染视图。
Activity是组成应用的基本元素,不同Activity之间的互联形成整个应用的业务逻辑。
在应用程序中,必需要规定某一个Activity作为MainActivity,作用就是将它设置为进入应用时显示的第一个Activity界面。
各个Activity之间的跳转非常灵活,Android中利用Intent类就可以实现不同Activity之间的跳转动作。
每当某一Activity获得执行焦点,即启动运行时,它的前一个Activity就会停止工作。
Android程序中所有的Activity都会被存储在一个栈中,因此停止运行的Activity并不会被销毁,而会存储在栈中。
新启动的Activity会先存储于栈中,随即获取活动焦点。
如果在某个Activity运行时执行返回操作,就会将当前的Activity从栈中获取并消除,这时前一个Activity就会重新取回活动焦点。
2.2JSP技术
JSP的全称为JavaServerPages,本质上来时,JSP就是简易的Servlet。
JSP语法采用<
%,%>
形式。
与Servlet相同的是,其操作也是在服务器端运行。
儿返回给前端的基本是个HTML文本。
所以,JSP的运行非常的灵活,只需要有浏览器就可以。
在程序设计中,习惯上把系统分为模型(Model)、视图(View)、控制器(Controller)三种模块的设计方式称为MVC设计模式。
MVC设计模式中每个模块的功能均不同,模型(Model)模块的主要功能是描述应用程序的业务逻辑和状态,一般分为业务模型和数据模型两种模型;
视图(View)负责向用户提供可交互的界面,向用户显示模型的数据;
控制器(Controller)的主要功能是响应用户的请求,根据接收的客户请求来操作模型,并通过视图把模型的响应结果展示给用户。
图4-1是MVC模式的示意图:
图4-1 MVC模式图
采用MVC设计模式来进行系统设计有以下好处:
(1)名司其职、互不干涉:
在MVC设计模式中,三种模块的功能相对独立,分工明确,如果哪一个模块的需求发生变更,只需要修改相应模块中的代码,对其他模块不造成影响,有效降低了系统的耦合度。
(2)有利于开发中的分工:
在MVC设计模式中,由于系统模块是按照层次划分的,而每个层是间隔开来的,这样可以更好地在开发过程中进行分工,提高系统的开发效率。
如:
美工设计人员可以专注于开发系统的界面,对业务熟悉的开发人员可以专注于开发模型中的相关业务处理方法,而其他开发人员可以专注开发控制器,以便更好地进行程序控制。
(3)有利于组件的重用:
因为MVC设计模式最重要的特征就是把显示与数据分离开来,所以在MVC模式中各个层的组件的重用是很容易实现的。
控制层的组件可以独立出来成为一个通用的组件,视图层的组件也可以独立出来成为通用的系统操作界面。
3.系统分析与建模
3.1.系统可行性分析
本节将从技术可行性、经济可行性、操作可行性等方面对该系统的可行性进行阐述,以表明该系统的实际可行性。
技术可行性:
android手机客户端开发技术目前已发展多年,网上及图书馆有关android开发的资料也很多,与服务端通信的技术也相对程序。
而JSP技术作为目前广泛的应用技术,已经被大量的开发者的所采纳,MVC模型-视图-控制开发模式在实践中也被大量应用,因此在技术上,采用android和JSP技术是完全可行的
经济可行性,本系统中服务端采用MyEclipse+Tomcat+Mysql开发软件及平台,其中服务器部署软件Tomcat和数据库软件Mysql都是开源免费的,使得该系统在服务端的开发成本非常的小,只需要一台能够运行Tomcat和Mysql的PC机就可以。
而对于客户端,目前几乎人人都有android智能手机,因此用户不需要单独采用任何的设备来使用该android系统。
综上所述,该系统在经济上不需要投入太多设备,软件也都是开源的,在经济上完全可行
操作可行性,该快递平台运行在Android客户端,只需用户有一台android手机就可以运行,目前几乎人人都在使用智能手机,尤其是年轻一代,对于智能手机的操作得心应手,因此该系统在操作上也完全是可行的。
综上所述,该系统在技术、经济、操作等方面都是可行的,
3.2.需求分析
经过调研分析,该快递平台主要分为以下二个角色:
系统管理员、用户。
如图3-1所示。
图3-1校园快递系统角色
该个校园快递系统的每个角色的主要功能需求如下所示:
管理员:
主要完成对系统信息的管理,包括对物品分类、用户、反馈信息以及举报信息的管理等。
用户:
注册、登录系统,可以查看物品、发布二手物品、举报发布者、收发私信、收藏物品、反馈等功能。
系统用例图如图3-2所示。
图3-2系统顶层用例图
3.3.系统的非功能性需求
通过调研,该系统具有如下的肺功能性需求:
(1)整体要求
随着移动设备深入人们的生活,移动APP的UI设计越来越重要,该设备维修系统的UI需要简洁大方,各个控件之间的布局合理,UI系统的风格及搭配需要统一。
对于用户的点击响应时间应该在4s以为,超过该时间,用户会无法忍受。
(2)安全性要求
为了防止他人进入系统并保护用户的个人信息,系统在传输数据的过程中应该对敏感数据进行加密。
4.校园快递系统设计
4.1.系统总体架构设计
4.1.1.系统总体架构图
本校园快递系统采用MVC(模型-视图-控制)的架构,系统分为服务端和客户端两大部分,android手机通过无线网络访问服务器,如图4-1所示为基于android的校园快递系统体框架。
图4-1系统的整体架构
4.1.2系统实现流程架构
整个系统的数据流图如图4-2所示。
数据请求的过程如下所示:
首先android手机端提出数据请求,通过TCP/IP的方式连接至服务端,服务端响应客户端的请求,按照具体的请求对数据库进行操作,操作完成后,将数据按照JSON的方式返回给客户端。
图4-2校园快递系统数据流框架
4.2.系统功能设计
4.2.1.服务端设计
该服务端采用JSP的MVC框架进行设计与实现。
MVC设计模式是指模型(model)、视图(view)、控制器(controller)构成的软件架构模式。
M:
Model模型。
Model是应用程序中用来操作数据逻辑的主要部分,对数据库的操作常放在该层。
V:
View视图。
View是视图层。
用以和用户直接的交互工作,例如用户输入或者提交表单,主要是显示处理结果;
在Android应用中一般采用XML数据格式作为用户界面布局语言。
C:
Controller控制层。
Android控制层的操作需要在Activity中完成,控制层是大多数业务流程的编写部分。
主要功能是管理校园地址信息的管理,框图如图4-3所示:
4.2.2.客户端功能设计
本客户端主要分为两个角色,快递管理员以及快递人员:
快递管理员的主要功能为:
登录系统、收件、发件以及个人资料管理。
快递人员的主要功能为:
查看分配给自己的快递,快递状态更新以及个人资料管理。
客户端的功能框图如图4-3所示:
图4-3客户端功能框图
4.3.数据库简要设计
数据库用来存储系统的数据,并供用户查找使用数据,是整个系统的核心所在,根据前面的系统分析,本节设计并实现了如下5个表,分别为管理员表、校园地址表、分件表、快递表、用户表。
表4-1tb_admin管理员表
字段
类型
含义
name
varchar(50)
用户名,主键
password
密码
表4-2tb_address校园地址表
id
int
编号,自动加1,主键
aname
名称
表4-3tb_assign分件表
expressid
快递id
username
astate
状态
adate
日期
表4-4tb_express快递表
eno
快递编号
eaddress
varchar(100)
收件地址
ename
收件人
ephone
联系电话
edate
收件日期
estate
addressed
所属校园地址
表4-5tb_user用户表
account
账号,主键
uphone
电话
urealname
用户名
addressid
整个系统ER图如图4-4所示,该ER图表示了各个数据表之间的关系。
图4-5数据库ER图
5.基于Android平台的快递系统实现
5.1.开发环境搭建
整个系统的开发环境如下所示:
开发语言:
JSP,android
Android手机开发平台:
Android系统4.0以上
PC端操作系统平台:
WINDOWSWin7
开发工具:
Eclipse4.2+MyEclipse10.0+Tomcat6.5+Mysql5.5
5.2.关键技术实现
5.2.1数据交换格式
本系统的重点是服务端与客户端的良好连接及数据交互。
在服务器端通过JSPServlet与客户端进行通信。
其中数据交换主要通过JSON格式。
JSON是一种轻量级的数据交换格式,相比于xml等交换格式,JSON格式在可读性及便捷性上有所提高,而且JSON支持大部分的主流平台,因而普及性也比较高。
JSON采用的文本格式兼容性很高,与C语言体系的行为类似。
JSON的类主要包括以下几个。
JSONObject:
JSON的基本单元,主要包括键值对,最外被大括号包裹,其中的Key和Value被冒号“:
”分隔)。
其对于内部(Internal)行为的操作格式略微,例如:
newJSONObject().put("
JSON"
"
Hello,World!
"
),在Key和Value之间是以逗号"
"
分隔。
Value的类型包括:
Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULLobject。
JSONArray:
它代表一组有序的数值。
用方括号包裹,数值以逗号“,”分隔把它转换成String输出(toString)作为它的表现的形式。
同时这个类的内部也拥有查询行为,通过利用index索引返回get()和opt()这两种方法指定的数值,添加或者替换数值可以使用put()方法。
同样这个类的value类型可以包括:
Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULLobject。
5.2.2Fragment
Android是在Android3.0发布时使用Fragment的。
Fragment能够作为Activity当中的一个模块,与Activity相似,Fragment也有活动周期,同时也具有自己的逻辑和视图,并能单独处理自己的输入。
Fragment使用起来非常灵活,可以在Activity运行的时候动态装载或者移除Fragment,也可以将Fragment设计成能够在多个Activity中复用的模块。
例如搜索栏,在多个Activity中都需要使用,如果是在Activity中编程,那么就需要重复多次的工作编写同样的代码。
如果使用Fragment,将搜索栏作为Activity的一个部件引入,那么将搜索栏的逻辑和页面在Fragment中编写一次即可,需要使用搜索栏模块时,Activity只需要在程序中声明引入即可。
Fragment必须重写onCreateView()方法,需要在此方法中完成Fragment的逻辑,并且绑定Fragment的View视图。
5.2.3AsyncTask
客户端和服务端数据交互是整个应用的核心部分,AsyncTask是客户端向服务端请求数据时使用的重要类。
Android4.0版本之后取消了在UI线程进行网络访问的功能,否则会出现
android.os.NetworkOnMainThreadException异常。
因此,需要启动一个异步线程完成网络连接方面的操作。
在Android的设置中,UI的更新只能在主线程中完成,因此异步处理是不可避免的。
在Android系统中完成异步操作的方式有两种:
Handler和AsyncTask。
Handler方式需要给每个异步任务创建一个新的Thread线程,任务完成后使用Handler的方法向UI主线程发送消息,UI线程收到消息后就会更新界面,这种方法对于异步操作的控制会非常细致,但同时也导致了一些问题,比如代码结构臃肿,在有多个线程任务运行时,不方便对线程进行精确的控制。
因此在新版本中,Android提供了专门的异步任务类android.os.AsyncTask,它的使用方法相对Handler而言更加简单易用,不需要定义线程,只需要按照规则重写AsyncTask类方法就能够完成和Handler同样的功能。
5.2.4页面设计
Eclipse提供了可视化的UI编辑器,利用XML语言完成元素编写和布局。
Activity和Fragment均能定制自己的视图文件。
一个视图通常由布局、控件、样式三部分构成。
常用的页面布局方式为:
LinearLayout线性布局,RelativeLayout相对布局。
LinearLayout是线性布局控件,它包含的子元素会按照横向或纵向的方式排列,按照相对位置来排列各种组件或者其他的容器,内容超过边界时,某些控件将缺失或消失。
因此一个纵向线性布局的每一行只能有一个组件或者是容器,而不管它们的宽度是多少,而一个水平线性布局就只会有一个行高。
线性布局会保持其子组件或者是子容器之间的间隔以及互相对齐。
RelativeLayout布局可以定义其子元素按照相对位置进行布局,因此可以对元素进行任意位置的摆放,因而RelativeLayout比LinearLayout的使用灵活性更高。
5.2.5ListView
ListView是应用中最常用的控件之一,它以列表的形式展示数据。
基础的ListView控件可以展示文字和图片,还可以给列表中的每个条目绑定点击事件。
ListView通常需要三个元素构成:
每个条目的视图布局,需要展示的数据和一个数据适配器。
适配器实际上就是将数据绑定到ListView的工具,同时,适配器还有自定义列表的功能。
有时基础的列表显示是无法满足需求的,若想在列表中添加checkbox、editview等控件,并为这些控件定义事件的话,就必须利用适配器的扩展功能。
BaseAdapter是一个基础适配器类,继承此类后可以重写类方法,以此自定义ListView的视图和功能。
5.3.服务端主要功能部分模块的实现与测试
为了减少底层数据对上层设计的影响,服务端数据库操作部门采用了Hibernate进行设计实现。
图5-1所示为本服务端生产的Hibernate文件,每个表都对应一个hbm.xml文件
图5-1Hibernate文件
其配置信息在hibernate.cfg.xml文件中,具体如下所示:
<
session-factory>
<
propertyname="
dialect"
>
org.hibernate.dialect.MySQLDialect
/property>
connection.url"
jdbc:
mysql:
//localhost:
3306/testtestdb<
connection.username"
root<
connection.password"
123<
connection.driver_class"
com.mysql.jdbc.Driver
myeclipse.connection.profile"
mysql<
mappingresource="
com/school/express/model/TbAdmin.hbm.xml"
/>
com/school/express/model/TbAddress.hbm.xml"
com/school/express/model/TbAssign.hbm.xml"
com/school/express/model/TbExpress.hbm.xml"
com/school/express/model/TbUser.hbm.xml"
/session-factory>
服务端的管理员的主界面如图5-2所示,主要实现校园地址的管理功能。
图5-2服务端界面
添加校园地址的界面如图5-3所示,其中包括校园地址的名称等。
图5-3添加校园地址的界面
添加完成的校园地址列表界面如图5-4所示。
图5-4校园地址列表界面
为了与客户端进行通信,本系统设计了如下7个Servlet,具体信息如表5-1所示。
表5-1与客户端通信的Servlet
功能
AppAddressServlet
处理与校园地址有关的操作
AppAssigntServlet
处理与快递分发有关的操作
AppExpressServlet
处理与快递有关的操作
AppGoodServlet
处理与物品有关的操作
AppUserServlet
处理与用户原有关的操作
LoginServlet
处理与快递员登录有关的操作
RegisterServlet
处理与注册有关的操作
Login2Servlet
处理与管理员登录有关的操作
配置信息(以AppAddressServlet为例)如下所示:
servlet>
servlet-name>
AppAddressServlet<
/servlet-name>
servlet-class>
com.wuye.app.servlet.AppAddressServlet<
/servlet-class>
<
/servlet>
servlet-mapping>
url-pattern>
/servlet/AppAddressServlet<
/url-pattern>
/servlet-mapping>
通过服务端的开发,可以向客户端提供固定的URL地址,这些URL实际对应着不同的JSPservlet,也就是对应不同的后台业务逻辑和返回数据,因此访问每个不同的URL地址会得到相应不同的内容。
当Android客户端需要访问数据时,已经知道需要访问的服务端URL地址,再将参数写入已知的URL格式当中,然后构造HttpGet访问对象,以此来访问服务器,如图5-5所示。
图5-5客户端和服务器的交互模型
5.4.客户端主要功能部分模块的实现与测试
5.4.1UI实现
客户端UI主要通过ViewPage+Fragment实现,主界面如图5-5所示。
该界面中的下方为导航界面,其上方为显示界面。
图5-5系统主界
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 校园 快递