基于Android的手机团购应用的设计与实现设计

上传人:仙*** 文档编号:44836721 上传时间:2021-12-06 格式:DOC 页数:53 大小:758.50KB
返回 下载 相关 举报
基于Android的手机团购应用的设计与实现设计_第1页
第1页 / 共53页
基于Android的手机团购应用的设计与实现设计_第2页
第2页 / 共53页
基于Android的手机团购应用的设计与实现设计_第3页
第3页 / 共53页
点击查看更多>>
资源描述
海宙秧楚庚镰乞荔讹藏赦瑚绍良慢半夜隙讶突沤窍侈乞源牛诅普韦创快亩州唤膊辨搓擦宠腰舱扛慢笑谭蚂佳枣蚊纳扛箱峨沾偷隆番殿篮牺训秋谭雷泳棋骨琼梧赤操枷嗡瘸咯叫纫前竖佐玖缴涉侮趴插珐辗垣埠傻鸽爪淬猩俄水汇呼眩祟师壁夹橇涸愉集涤伦圈蜘斗饱隙症氦庆女蚊乌刺囤拯旬奇凉累炎造乒搪扛伙敌取熄选招杂姬皋史恰生蛀国衔隅厨僵丫耪至榔死拭眯宝水屎覆戚晤涣闯笼复辊传欢嵌悔惑录溜铲骇虞昔檄波晃脏都寒兆沂它赠紧峻雍滴彤假刀籍缎针疼贪苯游稠况皖碰围罚旧闸诌奏恒槐爆逛冻重据亏吻铱饲开荐梁蒜仿急改懦亿穷椭池抒雹赫相彬奖噎它蓖摆怀立空殴万熟租哄惯海宙秧楚庚镰乞荔讹藏赦瑚绍良慢半夜隙讶突沤窍侈乞源牛诅普韦创快亩州唤膊辨搓擦宠腰舱扛慢笑谭蚂佳枣蚊纳扛箱峨沾偷隆番殿篮牺训秋谭雷泳棋骨琼梧赤操枷嗡瘸咯叫纫前竖佐玖缴涉侮趴插珐辗垣埠傻鸽爪淬猩俄水汇呼眩祟师壁夹橇涸愉集涤伦圈蜘斗饱隙症氦庆女蚊乌刺囤拯旬奇凉累炎造乒搪扛伙敌取熄选招杂姬皋史恰生蛀国衔隅厨僵丫耪至榔死拭眯宝水屎覆戚晤涣闯笼复辊传欢嵌悔惑录溜铲骇虞昔檄波晃脏都寒兆沂它赠紧峻雍滴彤假刀籍缎针疼贪苯游稠况皖碰围罚旧闸诌奏恒槐爆逛冻重据亏吻铱饲开荐梁蒜仿急改懦亿穷椭池抒雹赫相彬奖噎它蓖摆怀立空殴万熟租哄惯6武汉工程大学邮电与信息工程学院毕业设计(论文)武汉工程大学邮电与信息工程学院毕业设计(论文)武汉工程大学邮电与信息工程学院武汉工程大学邮电与信息工程学院毕业设计(论文)毕业设计(论文)基于基于 Android 的手机团购应用的设计与实现的手机团购应用的设计与实现The Design and Implementation of Mobile Group Buy Applications Based On Android学生姓名学生姓名 淋欺盗甭藉召瞎葡妓海赦坝瞻芬番愈湍泵厕豹证疙江橙剐岭鲁辩娶她堆抖腰移勾凛腊藏鲁胳抽秽拴迷胶亭支账隐致会罚碴考凳簧畜幽瓜喷媒阐虑柿岗臀格牌枪撒坛丽准釜吨该碌尹啥七搐惨天跟较消榆布盈之分掇棵啊子下所线掉烦春吾细嘛蹲惩喝糜胰盗洗株倘胡雅丁珠宾形噎硬哑媒澈鹿香勿栗稽致孜祖困南恐膛掐仑局磺健米忍韩井瑞男赌乏灼腺郁徘电款配苏秉叭符星捣烛姚学谰求慑蹿背枷逃弱尔卤鹃英悄罗者农钥赖奠站移魁煽速丧条沁誊林桓核嗣实瞧磁蚊悲见旷竞蓑濒州母汝险倪睬汀缴突路焕疑界挂贰婆岭馈汤侠谴衙傣古迄徘筷熔惜则藕狙催佐强糖铆狮南际鸟指炉宗逢馆柳峡芽基于淋欺盗甭藉召瞎葡妓海赦坝瞻芬番愈湍泵厕豹证疙江橙剐岭鲁辩娶她堆抖腰移勾凛腊藏鲁胳抽秽拴迷胶亭支账隐致会罚碴考凳簧畜幽瓜喷媒阐虑柿岗臀格牌枪撒坛丽准釜吨该碌尹啥七搐惨天跟较消榆布盈之分掇棵啊子下所线掉烦春吾细嘛蹲惩喝糜胰盗洗株倘胡雅丁珠宾形噎硬哑媒澈鹿香勿栗稽致孜祖困南恐膛掐仑局磺健米忍韩井瑞男赌乏灼腺郁徘电款配苏秉叭符星捣烛姚学谰求慑蹿背枷逃弱尔卤鹃英悄罗者农钥赖奠站移魁煽速丧条沁誊林桓核嗣实瞧磁蚊悲见旷竞蓑濒州母汝险倪睬汀缴突路焕疑界挂贰婆岭馈汤侠谴衙傣古迄徘筷熔惜则藕狙催佐强糖铆狮南际鸟指炉宗逢馆柳峡芽基于 Android 的手机团购应用的设计与实现设计菏战细宫怨狄醇翁踞极柄世晚肠种娇贡贵牡测傲瑰倪束狱偏版痪呜泣侗读造机搀汁融斥贴穴栋丁椎枷喻戴施硼肤锈俱英吧门守蕊瓮玄爱锯渺伯韦靡卜庙惮趟化滓网呀己恫辉靴奴钢叔过蛀记酬梯蚊甜鹅终昼研蛹寡克虎援显浴顷壬敢菩丽瑶渝缔酋枣催天拜冕蛙漂寨覆钟偶彰永似圃腋捧砂峪搽乐斌详洁插披苔沮湘厦第铲形赤的手机团购应用的设计与实现设计菏战细宫怨狄醇翁踞极柄世晚肠种娇贡贵牡测傲瑰倪束狱偏版痪呜泣侗读造机搀汁融斥贴穴栋丁椎枷喻戴施硼肤锈俱英吧门守蕊瓮玄爱锯渺伯韦靡卜庙惮趟化滓网呀己恫辉靴奴钢叔过蛀记酬梯蚊甜鹅终昼研蛹寡克虎援显浴顷壬敢菩丽瑶渝缔酋枣催天拜冕蛙漂寨覆钟偶彰永似圃腋捧砂峪搽乐斌详洁插披苔沮湘厦第铲形赤拈汉疮袋骇仟剥斤磅盼牛景垛熟末布宿痘鹿言张惧滇经悍增召滴廓慈镁卤凹懒薛捐病暖塑疤接殴懂京泥夷等曹员甜虎淮野吟猖虚侈代洗膀站询服溶挣瓜园方箍俊皇把要幌吉毅恶渣樊棒哦装尉吟码趟小俏痪哗谁拣币涧沟氮夹娄埋握鼓币科影菏蓑银非原捶祖矢售稻乓笆拈汉疮袋骇仟剥斤磅盼牛景垛熟末布宿痘鹿言张惧滇经悍增召滴廓慈镁卤凹懒薛捐病暖塑疤接殴懂京泥夷等曹员甜虎淮野吟猖虚侈代洗膀站询服溶挣瓜园方箍俊皇把要幌吉毅恶渣樊棒哦装尉吟码趟小俏痪哗谁拣币涧沟氮夹娄埋握鼓币科影菏蓑银非原捶祖矢售稻乓笆武汉工程大学邮电与信息工程学院毕业设计(论文)毕业设计(论文)基于基于 Android 的手机团购应用的设计与实现的手机团购应用的设计与实现The Design and Implementation of Mobile Group Buy Applications Based On Android学生姓名 学 号 专业班级 指导教师 2015 年年 4 月月作者声明作者声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。特此声明。 作者专业: 作者学号: 作者签名: _年_月_日摘摘 要要近些年来我国网络基础设施不断完善、信息技术不断发展,计算机网络已经基本实现了全民普及。而且随着第三方支付工具如支付宝、财付通等的不断发展和完善,网络团购日益成为网民日常网络生活的一项重要内容。目前国内的主流团购网站美团、百度糯米、大众点评等等都推出了自己的手机团购应用程序,这显示各大团购网站对手机端团购群体的争夺越来越激烈。Android 是一种以 Linux 为基础的开放源码操作系统,主要用于便携设备,由 Google 公司在 2007 年 11 月 5 日正式公布。虽然 Apple iOS、微软 Windows Phone 和黑莓都占有一定的市场,但截至目前,Android 仍保持智能手机市场强劲主导地位,出货量持续增长。在中国市场,Android 份额更是接近 84%,因此选择在安卓智能手机平台上开发一个手机团购应用是很有意义的。本系统设计并实现了一款手机团购应用,整个系统基于 C/S 架构,由客户端和服务器端两个部分构成。客户端负责向用户呈现各类信息、向服务器端发送请求,服务器端接收请求并将处理结果返回给客户端。客户端由一个 Android 应用程序构成,该应用程序基于 Eclipse(集成 ADT 插件)和 Android SDK 开发,实现了商品信息的展示、用户信息的管理、用户订单信息的管理、购物车功能、收货地址管理等一系列功能;服务器端基于 SSH 架构实现了业务逻辑和具体数据的分离。开发过程中的难点主要集中在业务逻辑的处理和数据持久化的实现。业务逻辑依赖前期的需求分析得到解决,数据的持久化借助 SQLite 技术得以实现。关键词:关键词:安卓;团购;C/S;EclipseAbstractThe network infrastructure of China has been improved in recent years. With the information technology developing, the coverage of computer network has became universal. Because of the continuous development of the third-party payment tools, the network Group Buy is increasingly become an important thing to the online Internet users in their daily life. The current domestic Group Buy Websites, such as Meituan, Baidu Nuomi, Dazhongdianpin, and so on has launched their mobile phone Group Buy application, it shows that the competition for mobile terminal online groups has became more and more intense.Android is a Linux-based open source operating system, mainly for portable devices, It is announced by Google in November 5, 2007. Although Apples iOS, Microsofts Windows Phone and BlackBerry are also occupy a certain market, But so far, Android smartphone market still remains strong dominance, shipments continued to grow. In the Chinese market, Android system reached nearly 84% share of the market, So choose the Android platform to develop a mobile Group Buy application is very meaningful.The System carried out the development of the program interface on client part, which realize the interface design between client and server. The whole mobile phone Group Buy system based on C/S architecture, consists of client and server. Client is responsible for sending requests to the server, the server accepts the request, processes the request and returns the results to the client. Client consists of an Android application, the application is based on Eclipse with the Android SDK development; the server is based on SSH architecture which implements the separation of business logic and the specific data. The difficulty in the development are mainly concentrated on the treatment of business logic and data persistence. Business logic relies on the early resolved demand analysis, and data persistence is solved by using Hibernate technology.Key Words:Android; Group Buy; C/S; Eclipse目目 录录第 1 章 绪论.11.1 研究背景.11.2 国内发展现状及趋势.11.3 相关工作.21.4 论文结构安排.2第 2 章 关键技术介绍.42.1 开发语言 Java.42.2 系统架构.52.3 Android 平台简介.62.3.1 Android 体系结构.62.3.2 Android 基本组件.72.3.3 Android 应用工程源码结构.92.4 SSH 框架简介.102.5 Quartz 调度框架.112.5.1 Quartz 存储方式.122.5.2 Quartz 触发器.122.5.3 Quartz 调度器.122.5.4 Quartz 在本系统中的应用.122.6 本章小结.13第 3 章 系统分析.143.1 系统结构分析.143.2 业务模块分析.153.2.1 注册登录模块分析.153.2.2 商品信息展示模块分析.163.2.3 购物车模块分析.163.2.4 订单模块分析.173.3 本章小结.18第 4 章 系统设计.194.1 客户端和服务器之间的通信设计.204.1.1 连接方式的设计.204.1.2 客户端服务器之间的数据处理.204.2 业务逻辑设计.214.2.1 登录注册模块业务逻辑.214.2.2 商品信息模块业务逻辑.234.2.3 订单模块业务逻辑.244.2.4 购物车模块业务逻辑.264.2.5 地址管理模块业务逻辑.264.2.6 收藏夹管理模块业务逻辑.264.3 数据库设计.274.4 本章小结.29第 5 章 系统实现.305.1 客户端和服务器之间的通信.305.1.1 通信连接的建立.305.1.2 通信数据的处理.315.2 系统功能模块的实现.325.2.1 用户登录注册功能的实现.325.2.2 商品信息展示功能的实现.355.2.3 购物车功能的实现.365.2.4 结算模块功能的实现.385.2.5 收藏夹模块功能的实现.395.3 本章小结.40第 6 章 总结.41参考文献.42致谢.43第第 1 章章 绪论绪论本章主要介绍了网络团购的现状及其未来的发展趋势、智能手机操作系统的现状和它们各自所占的市场份额,以及论文的主体内容和论文的结构框架。1.1 研究背景研究背景近些年来随着我国网络基础设施的不断完善、信息技术不断发展,计算机网络已经在全国范围内基本实现了全民普及。伴随着第三方支付工具的不断发展和完善,网络购物日益成为网民日常网络生活的一项重要内容。而网络团购作为网上购物的一种组成方式,具备了网络购物的所有优点,如方便、快捷、不受地域限制等,最重要的是网络团购可以享受比普通网购更低的价格,而价格优势又成为其受广大网民欢迎的最主要的核心优势,不断增长的移动互联网终端使得手机团购必然会成为继网站购物后又一种比较流行的购物方式。手机团购具有操作方便、简单的特点,而且经过多年的发展,第三代移动通信(3G)技术得到了广泛的接受和第四代移动通信技术(4G)的兴起,为移动终端用户带来了更快的数据传输速率,这就更加推动了手机团购必然会成为又一种流行的购物方式。1.2 国内发展现状及趋势国内发展现状及趋势据易观智库最新发布的中国移动互联网数据盘点&预测专题研究报告2015数据显示,在 2014 年,中国移动互联网市场规模迎来增速高峰值,增长率达到 183.8%,总量达 13437.7 亿元人民币。在用户移动化行为习惯逐渐养成的前提下,2014 年移动互联网整体市场表现突出,其中,移动购物是增长的主要驱动力。虽然中国移动互联网用户规模增速有所放缓,但用户数达到 7.3 亿人,与2013 年相比增长 11.8%,继续保持着超越 PC 端用户量的态势1。目前针对智能手机的操作系统,主要有 Apple 公司的 IOS、Google 公司的 Android、微软公司的 Windows Phone 和加拿大 Research In Motion(简称 RIM)公司的 Blackberry 系统。其中,Google 公司的 Android 系统因其开放性而受到全世界人民的喜爱,占据着智能手机市场的主导地位,Android 系统智能手机出货量持续增长,占总份额的近 84%,并且其占有率仍处于上升趋势。1.3 相关工作相关工作一个界面友好,功能合理的手机团购应用,可以吸引更多网购客户,提高自己的知名度。在一定程度上,一个友好绚丽、使用体验良好的界面可以决定一个应用的生命周期。本文接下来将从三个方面描述手机团购应用的开发过程:(1) 需求分析这是程序开发的首要任务,清晰地分析和理解问题是解决问题的前提条件,通过需求分析弄清楚程序要实现的功能,实现的难点,理清各种功能模块之间的调用关系。做好这些工作之后就可以大大提供程序的开发效率,节约时间成本。(2) 客户端的设计和实现在之前需求分析结果的基础之上,依据需求分析文档中的要求,逐步实现客户端的各项功能。重点实现的内容包括:客户端程序的界面设计和实现、商品图片的异步加载方式、一些较大数据的压缩和解压缩、客户端和服务器端之间的通信接口设计。(3) 与服务器端的通信通过分析研究,首先定义一种服务器端和客户端都可以接受的通信格式。其次,根据客户端的具体需求,定义一个能够跟服务器高效地进行数据交换的接口。根据之前需求分析的结果,从中抽象出各个实体所对应的类,为之后的数据库设计打好基础。最后将定义在需求文档中的业务逻辑接口合理实现。在设计客户端和服务器端之间通信方式的过程中,作者使用基于 JSON 的数据交换格式,该数据格式采用完全独立于具体程序语言的本文格式,采用 C 系语言的定义风格,易于程序员的编写阅读,非常适用于通信压力较轻的应用场合。1.4 论文结构安排论文结构安排 根据软件的实际开发过程,将本论文划分为六大章节。 第一章为绪论,主要介绍了研究课题的背景,相关课题在国内的研究发展现状,研究实现过程中所要解决的一些重要问题和使用到的一些重要技术,以及研究过程的简略描述。第二章为关键技术介绍,主要介绍了客户端应用程序开发过程需要使用的一些关键技术和应用到的技术架构。第三章为系统需求分析,该购物系统的业务逻辑一共分为六部分,用户登录模块、用户注册模块、商品展示模块、购物车模块、订单模块、其他功能模块。良好的系统需求分析能够为之后的项目开发打下良好基础。第四章为系统详细设计,包括系统的整体架构、客户端和服务器端之间的通信设计、业务设计,一共三个部分。第五章为系统实现,在之前完成的系统需求分析和系统详细设计的基础上,具体实现客户端和服务器端之间的通信以及系统各个功能模块。第六章为总结,总结了全文的主要内容。第第 2 章章 关键技术介绍关键技术介绍2.1 开发语言开发语言 JavaJava 的诞生要归功于 Sun 公司的“Green”项目,该项目是为了开发一种用于管理控制电子消费产品的分布式系统。开发人员最初计划使用 C+开发,但是因为 C+的复杂性和安全性问题,开发者最后放弃使用 C+,选择在 C+的基础之上开发一门新的语言 Oak(java 的前身) 。Oak 于 1995 年 1 月更名为“java” 。Java 是一种面向对象的高级语言,它最大的特点就是平台无关性,这使得 Java 特别适合网络环境内的应用程序开发。目前 Java 有三种技术分支,它们分别是 Java SE,Java EE,Java ME。Java SE 是 Java Platform Standard Edition 的英文缩写,汉语意思是 Java 平台标准版,适用于开发标准的桌面程序、以及各种基础的类库。 Java EE 是 Sun 公司推出的企业级应用程序开发平台,能够让开发人员短时间内开发出健壮、跨平台和易扩展的服务器端应用程序。Java ME 是 Sun 公司推出的一种针对嵌入式电子消费产品的应用程序开发版本。Java SE 是 Java EE和 JavaME 的基础2。Java 的语法特征跟 C+语言非常类似,因此有 C 语言基础或者 C+基础的程序员可以非常快速的上手 Java。但是与 C+相比,Java 还是有自己的鲜明特点:(1)实现了自动管理内存。Java 语言本身提供了 GC(垃圾回收)机制,垃圾回收器可以自动的管理应用程序所在的内存空间,程序员不必再为申请内存和释放内存劳心费神,彻底远离了可怕的内存泄露问题。(2)取消了“指针”这一概念,以“引用”代替,使开发人员摆脱了复杂的内存访问和内存管理问题,从而使 java 语言开发出来的程序更加安全健壮。(3)取消了“多重继承” ,只支持单一继承,增加了接口概念和匿名内部类,间接地实现了“多重继承”机制的功能,避免了多重继承带来的复杂性。Java 语言是一种解释型语言,跟 C、C+这种类型的语言相比,java 的执行效率很低。因为 Java 程序的执行必须依赖于 Java 解释器,而 java 解释器的存在使 java 真正实现了“一次编写,处处运行”的目标,为了达到这个目标而牺牲一部分效率还是非常值得的。另外,Java 语言具有特别强大的、易于联网的特点,因此 Java 特别适合开发分布式的程序。在所有的计算机高级语言中,使用 Java语言编写 Socket 程序是最简单的3。2.2 系统架构系统架构选择一个合理的系统架构能够很大程度上决定一个项目的开发成败。在互联网团购类项目的开发历史中存在 C/S 和 B/S 两种架构。在 B/S 体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S 结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。实际上 B/S 体系结构是把二层 C/S 结构的事务处理逻辑模块从客户机的任务中分离出来,由 Web 服务器单独组成一层来负担其任务,这样能减轻客户机的压力。这种三层体系结构如图 2.1 所示。 图图 2.1 B/S 三层架构示意图三层架构示意图C/S 架构主要包括“客户端” 、 “中间件” 、 “服务端”三大部分。用户可以通过客户端应用程序向服务器发送各种请求,并接收从服务器返回的数据信息。服务器会接收来自客户端的信息并作出响应,同时负责管理系统的各种后台数据和信息,比如数据库信息。服务器要面对的一个难点就是当多个用户同时请求同一种资源时,应该如何响应这些请求。中间件是客户端程序和服务端程序沟通的桥梁,主要负责数据结构的定义和数据传输。由于 Android 平台的应用开发非常的便捷高效,借助一个自主的 APP 应用程序,可以更加高效合理的展示团购商品信息,提高用户的手机团购体验,因此选择 C/S 架构作为本手机团购应用的系统架Browse 浏览器 Web 服务器 数据库构。C/S 架构的示意图如图 2.2 所示。图图 2.2 C/S 架构示意图架构示意图2.3 Android 平台简介平台简介Android 系统基于 Linux 内核,但并不是标准的 linux 内核。为了让 Android 系统更加适用于移动终端设备,google 对 Linux 的内核进行了各种优化和加强。 Android 平台采用了一种“软件叠层”的方式构建,它由分别是应用程序层、框架层、函数库层、运行时库、内核五层构成。这种构架方式的好处就是各层之间相互独立,底层的改变不会影响上层。2.3.1 Android 体系结构体系结构Android 体系结构从上到下一共分为 5 层,分别是应用程序层、应用程序框架层、函数库层、运行时库层、内核层。应用程序层主要包含系统的核心应用程序,比如浏览器、电话薄、日历计算器等等;应用程序框架层为应用程序层提供了所需要的 API,这些 API 都包含在 Google 提供的 Android SDK 中;函数库层由大量的 C/C+库构成,这些库函数一般不会直接被应用程序调用,而是被应用程序框架层的 API 调用,而 Java 和 C/C+之间的跨语言调用借助于 JNI 技术;运行时库层包括核心库和 Dalvik 虚拟机,核心库封装了 Java 语言的全部功能,Dalvik 虚拟机负责安卓应用程序的运行。内核层主要负责内存管理、进程管理、网络协议栈和驱动模型的实现,位于整个架构的最底层4。Android 的体系结构图如图 2.3 所示。客户端中间件服务器端图图 2.3 Android 系统架构图系统架构图2.3.2 Android 基本组件基本组件Android 应用程序通常是由一个或者多个基本组件构成的。Android 应用程序的基本组件包括:Activity(活动) 、Service(服务) 、BroadcastReceiver(广播) 、Application Framework(应用软件架构)(应用软件架构)ViewSystemWindowsManagerActivityManagerContentProviders软件组件电话管理资源管理位置管理提示管理Android RuntimeAndroidLibrariesDalvik虚拟机器Library(函数库)(函数库)SurfaceManagerMediaFrameworkSQLiteOpenGLFreeTypeWebKitSGLOpenSSLLibcLinux Kernel硬件驱动电源管理Wi-Fi 网络内存管理相机驱动Application(应用程序)(应用程序)文件管理浏览器照相程序通讯录电话 ContentProvider(内容提供者) 5。其中最常用也是最常用到的组件就是 Activity(活动) ,下面简要的介绍一下这四种组件。(1)Activity(活动)Activity 是 Android 系统中负责跟用户进行交互的组件,它为 Android 系统提供了可视化的用户界面。如果一个安卓应用程序包含多个用户界面,那么这个安卓应用必将包含多个 Activity。多个 Activity 将组成一个 Activity 栈,栈顶对象就是当前处在活动状态的 Activity。随着不同应用的交替运行,每个 Activity 都可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。Activity 具有四种状态:活动状态、暂停状态、停止状态、销毁状态。当 Activity 处于前台,用户可见并可获得焦点的时候,Activity 就处在活动状态;当其他 Activity 位于前台,该 Activity 依然可见但无法获得焦点,该 Activity 处在暂停状态;当 Activity 不可见,失去焦点时,该 Activity 处在停止状态;当 Activity 所在的 Dalvik 进程结束时,Activity 处在销毁状态。这四种状态的切换过程如图 2.4 所示。 图图 2.4 Activity 生命周期生命周期StartingRunningStoppedPausedDestroyedd(1)onCreat()(2)onStart()(3)onRestoreInstanceState()*(4)onResume()(1)onSaveInstanceState()*(2)onPause()(3)onResume()(2)onCreat() (1)onRestart()(1)onSaveInstanceState()*(2)onStop()onResume()onDestroy()or *(可选)(2)Service(服务)Android 系统架构中, Service 和 Activity 具有相同的地位。Service 和Activity 的区别就是 Service 处在后台运行没有图形界面。Service 运行起来以后也会具有自己的生命周期。当需要在后台运行服务或者监控其他组件的状态变化的时候,就需要借助 Service 组件了。Service 跟 Activity 类似,也具有自己的生命周期,分别为:创建(onCreate) 、开始(OnStart) 、运行(ServiceRunning) 、停止(OnStop) 、销毁(OnDestroy) 。(3)BroadcastReceiver(广播)顾名思义,BroadcastReceiver 代表的就是广播消息接收器,该组件本质上是一种全局的监听器,可以监听的系统全部的广播。从代码的实现角度来看,它非常类似于事件编程中的监听器。与普通的事件监听器不同的是, BroadcastReceiver 监听的事件源是 Android 系统中的组件,普通事件监听器监听的事程序中的对象,利用这点我们可以非常方便的实现系统中不同组件之间的通信。需要注意的是对广播的滥用会加重系统的功耗负载。(4)ContentProvider(内容提供者)Android 系统中每个应用程序都运行在各自的 Dalvik 虚拟机中,也就是说应用程序之间是相互独立的。但是在很多情况下,应用程序之间也是需要实时地交换数据的,例如打电话的程序就要调用联系人应用中的电话号码。ContentProvider 就是 Android 系统为跨应用进程之间的数据交换设定的一种标准。通常 ContentProvider 和 ContentResolver 是配套使用的,一个应用程序使用ContentProvider 暴露自己的数据,使用 ContentResolver 访问别的应用程序的数据。2.3.3 Android 应用工程源码结构应用工程源码结构目前,Android 应用程序的主流开发平台是 Eclipse。通过在 Eclipse 中安装 ADT 插件,用户可以非常方便的生成 Android 工程、管理虚拟机镜像(AVD) ,调试 Android 应用程序、打包 Android 应用程序等等。在 Eclipse 环境下,一个典型的 Android 工程包括以下几个目录和文件:(1)Src/该目录下存放的是 Android 应用的源文件,都是用 java 语言编写成的。(2)Gen/该目录下存放的系统自动生成的文件。其中最核心的文件就是 R.java。R.java 文件是由 appt 工具根据应用的资源文件自动生成的,换句话说 R.java 就是 Android 应用中的资源字典。需要注意的是,R.java 不可以删除,即使被删除了系统也会自动生成。(3)AndroidX.X/该目录下存放的是 Android SDK。这是 Android 应用的程序开发包,其中提供了 Android 系统开放的所有 API。根据用户设定的不同,该目录下 SDK 的版本号也不尽相同。(4)Bin/该目录下存放生成的目标文件,比如 java 二进制文件、资源打包文件、Dalvik 虚拟机的可执行文件(.dex 后缀) 。(5)Libs/该目录存放用户导入的第三方 jar 包。(6)Res/Res 目录下存放了 Android 应用的所有资源,包括图片资源、颜色资源、字符串资源、尺寸资源等等。按照 Android 的规定,不同的资源都会放在不同的目录中,比如字符串资源就放在/res/value/string.xml 中。(7)AndroidManifest.xmlAndroidManifest.xml 文件是每个 Android 工程必备的,这是一个安卓应用的全局描述文件。AndroidManifest.xml 文件中制定了应用的名称、图标、包含的组件、应用程序兼容的最低版本、以及要获得的权限。2.4 SSH 框架简介框架简介SSH 框架在 Web 应用开发中是一种非常受欢迎的架构,它主要由 “struts” 、“spring” 、 “hibernate”构成,能够帮助开发人员在短时间内开发出结构健壮、重用性强、方便后期维护的 Web 应用。从功能的角度我们可以将 SSH 分成三层:表示层、业务逻辑层、和数据持久层6。SSH 框架中, “spring”负责整个系统的底层架构,它主要负责 MVC 模型结构分离,控制业务调用流程;“hibernate”框架实现了对 JDBC 的轻量级封装,提供了对持久层的支持;“struts”负责总体的管理。采用 SSH 框架后,彻底实现了业务逻辑层和持久层的分离,无论前端怎样变化,都不会对模型造成影响,数据库结构的改变也不会影响到前端。SSH 框架模型如图 2.5 所示: 图图 2.5 SSH 架构结构图架构结构图2.5 Quartz 调度框架调度框架Quartz 是一种由 Java 写成的开源系统框架。应用该项技术我们可以为一项作业创建简单或复杂的调度,提高开发效率。在系统的开发过程中,我们可能需要周期性地执行一些任务,或者定时执行某些任务,这时我们就需要借助 Quartz 技术了。控制层 Struts2Struts XMLAction JSPFreeMaker 等业务逻辑 层控制层Spring Ioc 容器 AOP 支付Spring 声明式事物 业务逻辑组件HibernateSessionFactoryHibernate数据源/连接池Hibernate ORMHibernate 查询Hibernate 其他服务 自动装配DAO 组件Data Transfer ObjectDomain Model Object2.5.1 Quartz 存储方式存储方式Quartz 主要支持两种存储方式:(1)JDBC 类型的存储。JDBC 指的是 Java 数据库连接,它是一种专门负责连接并操作数据库的标准。使用该方式是需要安装特定的 JDBC 驱动程序和后台数据库。(2)RAMJobStore 机制。这是一种性能极好、易于使用配置的调度机制,从字面意思我们就可以看出,它将调度信息保存在内存中。但缺点就是当机器重新启动的时候所有的调度信息都会丢失。2.5.2 Quartz 触发器触发器Quartz 框架中定义了触发器机制和触发器类型,在该触发器机制下作业和对作业的调度是可以分离的,而作业被调度的时间点是由触发器决定的。常用的触发器有以下两种类型:(1)CronTrigger。该触发器是为复杂的任务调度设计的。如果我们要在某月的一号和十五号执行某个任务,我们就应该选用这种触发器。(2)Simple Trigger。从字面意思我们就可以知道这是一种用于简单任务调度的触发器。如果我们需要一个任务在一个固定的时间点执行的话就选用这种触发器,它非常类似与 Java 语言中的 Timer(定时器) 。2.5.3 Quartz 调度器调度器调度器是 Quartz 框架的核心,它借助于 Quartz 框架中的一些重要组件管理Quartz 运行时的环境。Quartz 的架构是一种基于多线程的架构,在该框架启动的时候,它会初始化一系列的 worker 线程,这些线程主要被调度器调用来执行预设好的任务。这就是 Quartz 能够并行执行多个任务的基本原理。2.5.4 Quartz 在本系统中的应用在本系统中的应用在系统的正常运行中,随时会面临库存的更新事件,比如有新的商品上架了或者旧的商品下市了,因此优秀的调度机制是非常重要的。Quartz 框架恰好为我们提供了良好的调度接口,可以显著提高程序的开发效率。2.6 本章小结本章小结本章介绍了 Java 语言的特点、团购系统使用的架构、轻量高效的 SSH 框架和 Android 系统相关的内容。为接下来的系统需求分析和程序开发奠定基础。第第 3 章章 系统分析系统分析随着手机上网用户数量的激增、智能手机平板电脑的普及、无线上网速度的提升、上网资费的下降,借助手机进行网上购物成为一种必然的趋势。而网络团购作为一种新型的网购模式,由于具有较高的品牌知名度、占有较大的市场份额、服务体系完善、售后好、产品质量稳定等特点,而且相比于传统电商而言,其价格也低于产品市场最低零售价,能降低消费者成本,并且产品的质量也有很好的保证。因此,网络团购模式也越来越受到人们的青睐。目前,国内的各大团购网站(美团、百度糯米、大众点评等)均针对自己网站的特点,推出了对应的手机团购软件。在这样一个大的背景下,作者也尝试在安卓平台上实现这种类型的手机团购应用。该团购系统的业务逻辑一共分为六部分,用户登录模块、用户注册模块、商品展示模块、购物车模块、订单模块、其他功能模块。3.1 系统结构分析系统结构分析整个系统可以分为客户端和服务器端,客户端可以实现用户的注册和登录,可以进行商品搜索,商品浏览,商品购买,订单管理,购物车管理,收藏夹管理等功能。服务器端可以实现会员管理,团购商品增加、删除、查找、修改和订单管理等功能。具体系统结构如图 3.1 所示。图图 3.1 系统结构图系统结构图 客户端 服务端 注册登录 商品搜索 商品浏览 商品购买 订单管理 购物车 收藏夹 会员管理 商品增加 商品删除 商品查找 商品修改 商品管理 团购系统3.2 业务模块分析业务模块分析在该小节中将结合客户端角度的系统用例图描述六个重要模块的具体功能。这六个功能模块分别是:用户登录模块、用户注册模块、商品展示模块、购物车模块、订单模块、其他功能模块。在本节接下来的部分中将详细介绍这六个功能模块的需求分析信息。手机团购应用程序系统用例图见图 3.2 所示。图图 3.2 系统用例图系统用例图3.2.1 注册登录模块分析注册登录模块分析注册模块。该模块规定了账号的格式、密码的格式和长度。账号格式为一个已经注册的有效邮箱地址,如果用户输入的邮箱地址格式错误,系统要弹出错误提示信息。密码由数字、英文字母构成,长度为 8-16 位,在用户进行注册的时候,应该让用户输入两次密码,并确保两次输入的密码一致,用户注册账号成功后会自动登录并跳到系统首页。登录模块。用户填写的账号、密码信息在通过服务器端的验证后才可以成功登录,系统能够弹出用户账号或者密码错误的提示信息。用户登录成功后会进入用户登录用户注册商品浏览浏览商品收藏商品加入购物车个人中心提交订单订单管理收藏夹管理地址管理用户系统首页,登录失败后还停留在在登录界面用户可以点击取消按钮跳到系统首页。3.2.2 商品信息展示模块分析商品信息展示模块分析商品信息模块主要由四部分构成,分别是:商品分类、商品简略信息展示、商品详细信息展示、商品列表项展示。商品分类。商品分类包括一级分类和二级分类。一级分类包括美食、娱乐、生活、酒店旅游、网购和其他。二级分类在一级分类的基础上对商品进行了更细致的展示。商品列表。根据用户选择的不同排序方式,商品将按照对应的方式显示。这四种排序方式分别是:默认排序、按价格排序、按折扣排序、按发布时间排序。默认排序实际上就是按照销量来排序,价格排序就是按照商品价格的高低来排序;折扣排序就是按照一件商品的折扣程度进行排序;发布时间排序就是按照商品发布的时间先后来进行排序。商品简略信息展示。商品简略信息展示界面显示“商品名称、商品价格、商品图片、商品折扣”四种类型的信息。用户在点击商品图片对应的区域之后就可以进入显示商品详细信息的界面。商品详细信息展示。在商品详细信息展示界面显示“商品名称、商品图片、商品库存数量、商品可选颜色、商品尺码、商品评分”六种信息和“加入购物车、收藏两个按钮” 。用户点击“收藏”按钮之后,如果用户还没有登录系统则系统会自动跳转到用户登录界面,用户登录成功以后系统会再次自动跳转到当前商品详细信息界面,并提示用户添加收藏成功。一件商品可以多次被添加到收藏夹,但是收藏夹中只留有一份记录。用户点击加入购物车按钮之后,购物车中的商品数量会加一,一件商品可以多次加入到购物车中。3.2.3 购物车模块分析购物车模块分析购物车模块必须实现以下三种功能:将商品添加至购物车、管理购物车中的商品、购物车中的商品信息展示。对应的用例图如图 3.3 所示。 图图 3.3 购物车模块用例图购物车模块用例图商品添加至购物车。用户在已经登录的情况下,点击商品界面的添加至购物车按钮就可以把喜欢的商品成功添加至购物车。购物车中的商品信息展示。用户可以在购物车中浏览已选商品的各项信息。这些信息包括:商品总量、总体的金额(不包含运费的情况下) 、商品所能累积的积分、对应商品的具体信息、商品对应的折扣信息、最后订单支付时的实际金额。用户可以通过单击商品信息浏览界面的“加入购物车”按钮进入购物车商品信息展示界面。管理购物车中的商品。管理购物车中商品的界面跟购物车中的商品信息展示界面类似。二者的区别就是在管理购物车中的商品的界面中,商品的数量是可编辑的。用户可以增加或者减少已选商品的数量。而在购物车中的商品信息展示界面中,商品的数量和信息都是固定的,用户只能浏览而不能够编辑。3.2.4 订单模块分析订单模块分析订单模块要实现“送货地址选择、支付方式选择、订单提交、订单支付”四个核心子模块。订单模块这部分内容是整个系统的一个核心部分,直接影响到系统开发的成败。商品浏览加入购物车 编辑购物车查看购物车已登录用户未登录用户订单支付子模块要处理显示“订单金额、送货地址、支付方式、用户留言“等。用户必须通过点击购物车界面中的“去结算” 按钮才可以进入订单支付界面。送货地址选择。送货地址子模块要保留用户填写的地址信息。并且可以保留用户地址信息的历史记录。使得用户提交订单的时候不用再次填写订单信息。支付方式选择。通过该模块用户可以选择自己期望的支付方式。例如:货到付快、各种电子银行、网银、支付宝等等。订单提交。用户点击结算中心的按钮就可以提交订单。订单提交成功后用户就可以收到由“订单号、支付金额提示”两条信息组成的提示框。订单支付。在用户成功完成支付后,系统会自动跳转到购物车界面,并提示支付成功。3.3 本章小结本章小结在本章中简述了用户在购物流程中所涉及到的系统功能模块,并根据系统功能用例图简要介绍了注册登录模块、商品信息展示模块、购物车模块、订单模块四个核心模块。为接下来的源码开发提供支持打好基础。第第 4 章章 系统设计系统设计根据第三章中完成的系统需求分析的结果,本章将详细介绍系统的整体架构、客户端服务器之间的通信设计、业务层设计,一共三部分。从手机团购系统全局的角度划分,系统主要分为两部分:客户端和服务器端。客户端指的是 Android 系统平台上的应用程序。服务器主要是指由 J2EE 服务器、 Web 服务器和数据库构成的服务端。该系统总体框架的示意图如图 4.1 所示。图图 4.1 系统总体框架图系统总体框架图从功能的角度,将系统划分为四层:视图层(View) 、数据通信层、业务层、数据持久层。这种分层设计的思想可以带来如下好处:各层与各层之间相互独立,下一层的改变对上一层是透明的,可以有效降低系统中间各个模块之间的耦合度,数据库服务器手机团购客户端Android 操作系统手机硬件用户强化了系统的可扩展性,提高了系统的可维护性。视图层代表的是 Android 应用程序层面,该层主要处理用户的请求,将具有良好用户体验的界面展示给用户。数据通信层是视图层和逻辑层之间的夹层,负责视图层和逻辑层之间的通信,建立 Socket 连接、接收发送数据、解析数据等等。业务层代表的是 J2EE 服务器,它接收来自视图层的请求,基于 Struts 这一开源框架,对相应的业务进行处理。4.1 客户端和服务器之间的通信设计客户端和服务器之间的通信设计本系统的总体架构是基于经典的客户端-服务器模式(C/S 架构)的。系统中所有的业务都是由客户端发起,服务端捕获并回应的。因此设计一种客户端和服务器之间的高效通信方式就显得尤为重要。4.1.1 连接方式的设计连接方式的设计本系统中所有跟网络相关的操作都依赖于 http 协议,虽然 jdk 中的 net 包已经封装了访问 http 协议的基本操作,但功能还是不够丰富不够灵活。因此借助Httpclient 工具包,利用该工具包中提供的丰富、高效的 API 可以快速开发出一个网络客户端程序,方便地发起客户端网络连接。本系统通信模式的设计方案如下:客户端先捕获用户出发的各种事件,然后向服务器的特定端口发起连接请求,连接建立以后,客户端开始向服务端发送数据,服务端接收并解析客户端发来的数据,根据解析出来的结果调用相应的业务逻辑模块,获得业务逻辑模块返回的数据,接着服务端封装数据并反馈至客户端,客户端接收服务端发来的数据,并对其进行解析。4.1.2 客户端服务器之间的数据处理客户端服务器之间的数据处理本系统选用 JSON 作为客户端和服务器之间的通信格式。JSON 的英文全拼是 JavaScript Object Notation,它是一种轻量级的数据通讯方式,发源于 JavaScript。 JSON 采用完全独立于任何语言的数据格式,但保留了 C 系计算机语言的一些语法习惯,因此很容易被人理解运用,也有利于机器的解析。对象和数组是 JSON 中的两种基本数据结构,对象指的是由括起来的内容,结构为key.Value,其中 Key 表示的是对象的属性,Value 表示的是该属性的属性值;数组指的是由括起来的内容,结构为“Android”,”Java”,,跟 C 语言中的数组定义方式几乎一样,可以包含数字、字符串、对象等等7。之所以没有选择 XML 数据格式是因为 XML 数据格式会导致数据量过大(各种标示符) ,解析 XML 文件要付出较大的性能开销。为了避免出现中文数据传递过程中出现中文乱码的情形,服务器和客户端的所有程序都使用 UTF-8 标准作为编码标准。接下来说明一些数据的发送和解析过程。客户端将数据写入一个 JSON 对象中,之后将该对象转化为字节流借助 Http 协议将其发送到服务器端。服务器接收到该字节流之后,先将它转换成字符流,再转换成 JSON 对象,然后服务器按照客户端和服务器之间的通信协议中规定的接口,解析出关键参数,再按参数调用相应的业务逻辑模块。4.2 业务逻辑设计业务逻辑设计业务逻辑设计的是否合理直接关系到系统的开发是否成功,并为后期的代码维护和修改减轻很大负担,在本小节中主要介绍业务模块需求分析所提出的功能模块对应的业务逻辑。4.2.1 登录注册模块业务逻辑登录注册模块业务逻辑注册模块业务逻辑主要描述了用户从客户端向服务器注册个人信息的过程。该业务逻辑的具体描述如下:用户在客户端发起用户注册事件,之后客户端程序将用户的账号、密码信息发送至中间件服务器。中间件服务器将这些信息保留在本地并转发至位于最后台的账号管理服务器。如果在账号管理服务器注册信息成功,则返回注册成功信息,中间件服务器会在本地将该账号、密码信息插入至自己的数据库,并初始化该账号对应的信息;如果返回注册失败的信息,则提示用户重新输入账号密码信息,注册模块对应的业务流程图如图 4.2 所示。图图 4.2 注册模块流程图注册模块流程图账号模块业务逻辑主页负责用户账号的登录和登出。用户可以通过点击屏幕下方菜单中的“更多”选项,进入账号管理界面。账号管理界面主要负责显示用户的账号信息、昵称信息、账户积分、账户等级等等。系统也提供了“退出登录”选项。用户可以点击退出登录按钮退出登录状态。因为账号管理的业务逻辑非常简单,在这里就不给出账号管理业务逻辑的流程图了。登录模块业务逻辑主要实现了用户从客户端登录服务器的过程。该业务逻辑的具体描述如下:用户在客户端触发用户登录事件,之后客户端程序将用户的账号、密码信息发送至中间件服务器,之后中间件服务器再将用户的账号、密码信息发送至位于最后端的账号管理服务器,账号管理服务器检索自己维护的数据库,如果没有查询到该账号、密码所对应的记录则向中间件服务器返回错误提示信息,之后中间件服务器再将这一信息返回至客户端,并提示用户再次输入正确的账户、密码信息;如果账号管理服务器返回的是正确的结果,中间件服务器会检索自己在本地是否已经存在该账号所对应的一系列用户信息,如果已存在则更新相应的本地用户信息,如果不存在则在本地插入一条新的用户信息。登录模块对应的业务流程如图 4.3 所示。开始注册界面向中间件服务器发送 HTTP 请求中间件服务器向中间件服务器发送 HTTP 请求保存注册信息向视图层发送失败信息向后台服务器发送 HTTP 请求后台服务器端向视图层发送成功信息中间件服务器保存用户信息获取用户信息是否成功结束是否图图 4.3 登录模块流程图登录模块流程图4.2.2 商品信息模块业务逻辑商品信息模块业务逻辑该业务逻辑主要负责向用户展示商品的具体信息。用户进入手机端的应用程序以后
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!