logo资料库

基于Android平台的拼单APP的设计与实现.docx

第1页 / 共57页
第2页 / 共57页
第3页 / 共57页
第4页 / 共57页
第5页 / 共57页
第6页 / 共57页
第7页 / 共57页
第8页 / 共57页
资料共57页,剩余部分请下载后查看
摘 要
Abstract
目 录
1 绪论
1.1 设计背景及意义
1.2 研究现状
1.3 课题的研究内容
2 技术方案分析
2.1 开发语言
2.1.1 Java语言
2.1.2 Kotlin语言
2.2 Android系统
2.3 开发IDE
2.3.1 Eclipse+ADT
2.3.2 Android Studio
2.4 主流开源框架
2.4.1 网络请求开源库——Retrofit
2.4.2 图片加载开源库——Glide
3 系统的分析与设计
3.1 系统需求分析
3.1.1 需求总体概述
3.1.2 功能性需求
3.1.3 非功能性需求
3.2 服务器端数据库与接口设计
3.2.1 数据库设计
3.2.2 传输数据格式
3.2.3 登录接口
3.2.4 注册接口
3.2.5 发现接口
3.2.6 发布接口
3.2.7 个人信息接口
3.3 系统总体架构设计
3.3.1 基类架构设计
3.3.2 Activity与Fragment
3.3.3 开发架构
3.4 系统功能模块设计
3.4.1 登录注册模块
3.4.2 发现模块
3.4.3 发布模块
3.4.4 即时通讯(IM)模块
3.4.5 我的个人信息模块
4 系统的实现
4.1 项目整体架构
4.1.1 封装工具类
4.1.2 封装基类
4.1.3 架构模式的选择
4.2 登陆注册模块实现
4.2.1 密码加密
4.2.2 短信验证码实现
4.2.3 实现截图
4.3 发现模块实现
4.4 发布模块实现
4.5 即时通讯(IM)模块实现
4.3.1 配置Bomb环境
4.3.2 添加权限
4.3.3 注册消息接收器
4.3.4 BmobNewIM SDK的使用
5关键问题解决方案
5.1 网络请求框架的搭建与使用
5.1.1 RESTful API
5.1.2 网络请求库之间的横向对比
5.1.3 通过Retrofit框架实现网络请求
5.2 图片加载的实现
5.2.1 Glide与Picasso的比较
5.3.3 通过Glide完成图片加载
结 论
基于 Android 平台的拼单 APP 的设计与实现 摘 要 近些年国内互联网电商发展迅猛,但大多数电商多数以平台、自营或者团购为运 营方式,以拼单的形式运营的平台极少——帮助用户之间完成组队以达到参加满减优 惠、满额免运费等活动要求。 本文完成了拼单平台 Android 客户端的设计与实现,将整个系统分为登录注册模块、 发现模块、发布模块、即时通讯模块、我的个人信息模块 5 个模块,并对每个模块进 行了设计与实现: 登录注册模块:有账号的用户直接登录,没有账号的用户在进行手机号验证码验 证后通过填写账号名和密码进行注册。在 APP 向服务器端传输密码的时候,为了安全 性考虑,对密码进行加密。 发现模块:此模块中有各个类别分类的入口,同时也会把服务器端根据用户的地 理位置所推荐的周围的拼单信息呈现在发现列表中。 发布模块:用户可以在此模块中填写拼单标题、详细信息、添加配图,在点击发 布按钮后会将拼单信息发送给服务器。 即时通讯模块:用户可以通过此模块进行相互的交流,可以发送的信息类型包括 文本、语音和图片;用户在收到消息的时候 APP 会通过系统通知告知用户。 个人信息模块:在此模块中用户可以设置个人头像、修改密码、账号绑定、设置 签名、查看修改已发布的拼单请求的状态、查看参与的拼单的状态与信息等。 在开发过程中对 Android 应用开发框架进行了研究。本文秉承在实践中学习的思路, 在 APP 的实现过程中,对 Android 应用开发的模式与框架进行深入的剖析,设计了基 类架构,分析了 MVC、MVP、MVVM 三种框架模式,举例说明了主流框架在 Android 开发中的使用,如网络请求通过 Retrofit 框架的实现与使用 Glide 框架进行图片加载等。
关键词: 拼单 APP、Android、MVP、Retrofit、Glide
Design and Implementation of Client-side in Bill-sharing System Base on Android Abstract Electronic business is developing rapidly in recent years, but most of them is operated by running a platform for sellers selling goods, selling self-support goods, or group purchasing. However, there is nearly none platform on which users can share the bill. The platform can assist users to meet the requirement of full reduction and free shipping. This paper presents the design and implement of bill-sharing application on Android system. The system is divided into 5 modules which are login module, module, release module, instant communication module, and my personal information module. Each module is designed as following: Login registration module: account users directly log in, no account users in the mobile phone number verification code, by filling in the account name and password for registration. When the APP transmits a password to the server, it encrypts the password for security reasons. Discovery module: This module has the entry of each category classification, and also presents the server side according to the user's geographical location, the recommended information about the spelling is presented in the discovery list. Release module: the user can fill in this module to spell title, detailed information, add pictures, click on the button will be released together single information sent to the server. Instant messaging module: users can communicate each other through this module, the types of information that can be transmitted including text, voice and picture; the user at the time of the message will inform the user through the system notification APP. Personal information module: users in this module can set up personal avatar, modify password, account is bound to set signature, view change published to spell the status of the request, check in to fight alone state and information.This paper introduces the system
architecture and functional modules design detaily, and studies Android application frameworks. I splited the system into five modules, which are log in and sign in module, observer module, post order module, instant messaging module, and user information module. And design and implement these modules respectively. In accordance with the thinking of learning in practice, I studied the method of developing Android applications and Android frameworks, design and implement base-architecture, analyze the MVC and MVP, MVVM framework model, illustrates the popular framework used in Android developing, such as network request by using Glide framework with the realization of the Retrofit framework image loading. Keywords: bill-sharing application, Android, MVP, Retrofit, Glide
目 录 1 绪论...................................................................................................................1 1.1 设计背景及意义................................................................................... 1 1.2 研究现状............................................................................................... 1 1.3 课题的研究内容................................................................................... 2 2 技术方案分析...................................................................................................4 2.1 开发语言............................................................................................... 4 2.1.1 Java 语言.....................................................................................4 2.1.2 Kotlin 语言..................................................................................4 2.2 Android 系统..........................................................................................5 2.3 开发 IDE............................................................................................... 6 2.3.1 Eclipse+ADT...............................................................................6 2.3.2 Android Studio............................................................................ 6 2.4 主流开源框架....................................................................................... 7 2.4.1 网络请求开源库——Retrofit....................................................7 2.4.2 图片加载开源库——Glide....................................................... 7 3 系统的分析与设计...........................................................................................9 3.1 系统需求分析....................................................................................... 9 3.1.1 需求总体概述............................................................................ 9 3.1.2 功能性需求................................................................................ 9 3.1.3 非功能性需求.......................................................................... 11 3.2 服务器端数据库与接口设计............................................................. 12 3.2.1 数据库设计.............................................................................. 12 3.2.2 传输数据格式.......................................................................... 14 3.2.3 登录接口.................................................................................. 14 3.2.4 注册接口.................................................................................. 15 3.2.5 发现接口.................................................................................. 15 3.2.6 发布接口.................................................................................. 16 3.2.7 个人信息接口.......................................................................... 17 3.3 系统总体架构设计............................................................................. 17 3.3.1 基类架构设计.......................................................................... 17 3.3.2 Activity 与 Fragment.................................................................19 3.3.3 开发架构.................................................................................. 21 3.4 系统功能模块设计............................................................................. 24 3.4.1 登录注册模块.......................................................................... 25 3.4.2 发现模块.................................................................................. 26 3.4.3 发布模块.................................................................................. 26 3.4.4 即时通讯(IM)模块............................................................. 27 3.4.5 我的个人信息模块.................................................................. 27
4 系统的实现.....................................................................................................29 4.1 项目整体架构..................................................................................... 29 4.1.1 封装工具类.............................................................................. 29 4.1.2 封装基类.................................................................................. 29 4.1.3 架构模式的选择...................................................................... 31 4.2 登陆注册模块实现............................................................................. 32 4.2.1 密码加密.................................................................................. 32 4.2.2 短信验证码实现...................................................................... 34 4.2.3 实现截图.................................................................................. 35 4.3 发现模块实现..................................................................................... 35 4.4 发布模块实现..................................................................................... 38 4.5 即时通讯(IM)模块实现................................................................ 38 4.3.1 配置 Bomb 环境...................................................................... 39 4.3.2 添加权限.................................................................................. 40 4.3.3 注册消息接收器...................................................................... 40 4.3.4 BmobNewIM SDK 的使用.......................................................41 5 关键问题解决方案..........................................................................................42 5.1 网络请求框架的搭建与使用............................................................. 42 5.1.1 RESTful API..............................................................................42 5.1.2 网络请求库之间的横向对比.................................................. 43 5.1.3 通过 Retrofit 框架实现网络请求............................................43 5.2 图片加载的实现................................................................................. 45 5.2.1 Glide 与 Picasso 的比较........................................................... 45 5.3.3 通过 Glide 完成图片加载....................................................... 47 论.............................................................................................................48 结 致 谢.............................................................................错误!未定义书签。 参考文献.............................................................................................................50 附 录.............................................................................错误!未定义书签。
1 绪 论 1.1 设计背景及意义 近些年,国内互联网迅猛发展,越来越多的人们开始通过电商购买东西,有数据 表明,在 2010 年,私人消费只有 3%的来自于线上;2015 年,国内线上购物人数总数 近乎翻了三倍,达到 4.1 亿,线上渠道的消费总额已占私人消费的 15%。报告还预测, 到 2020 年,私人网上消费将以每年 21%的速度增长,并占私人消费总额的 24%[1]。在 电子商务急速的发展现,也呈现出了各式各样的购物形式,如 B2B 商家对商家进行交 易、B2C 商家对个人进行交易、C2C 个人对个人进行交易、O2O 线上对线下进行交易 等。 为什么线上购物会逐渐被越来越多的人所接受呢,最主要的原因无外乎两个,一 是方便,人们可以足不出户、仅仅是滑动滑动手指便可以选购来自全球各地商家的各 式各样的产品,同时也能够在商品的介绍页面和买家评论中了解到产品的样子与质量; 二是便宜,从商家的角度来说,线上买卖可以省过以往旧的买卖形式中间各级代理产 生的费用,同时,线上卖产品可以避免店面和销售人员的大幅开支,这两方面直接促 使了成本的降低,带给消费者的是买到手的时候的低价,同时,由于价格低导致更多 的人前来购买,这是一种良性循环,符合人们对于购物方便和便宜这两方面的要求, 因此电商的发展是肯定的。 卖家在吸引消费者购买商品的时候经常使用的一种方式就是促使消费者购买比预 算多一些的商品,相应的给消费者一些价格上的优惠,比如满减优惠、买 3 送 1、满 多少送礼品等,但是往往多买出的这些商品对于消费者来说没有直接的及时作用,为 了迎合消费者的这个需求,拼单购物的形式应运而生,这样就解决了众多消费者使用 优惠的价格只购买自己需要的商品的问题。 1.2 研究现状 国内虽然一些团购网站发展的不错,比如美团、大众点评,但是团购这种消费形 式从根本上来说是商家主导的购物,或者说消费者依旧是直接从商家购买商品,但是
拼单这种购物形式,发展得并不是很繁荣。 消费者主要会通过两种方式进行拼单,一种是在社交圈中找人一起拼单,比如经 常在朋友圈里面看到有同学发动态找人拼单,某某购物平台图书满 200 减 100,还差 多少多少;另外一种就是拼单的平台,但是国内提起拼单平台,很少有人能够想到有 什么出名的做得不错的平台。 国内的拼单平台主要有三家:拼单网、拼多多、海淘拼单网。拼单网主要面向的 是母婴的产品,自称为“国内母婴零售 PAAS 平台”;海淘拼单网主要面向的是海淘, 购买国外的商品;拼多多虽然看起来像是一个拼单平台,但是里面更多的是团购,他 们的购物形式是参团,满多少件之后可以开始用团购价来发给用户,但是我所要做的 拼单平台所要解决的主要场景是:用户想在某个购物平台参加满减之类的活动,但是 并没有购买这么多商品的计划,在我的拼单平台上来发布、或者是查找该活动,找到 另外一个用户来一起拼单购买已达到参加优惠的效果。而且,我们也不关注用户具体 要买的是什么类别的东西,面向的是优惠活动,大到家具商场满 10 万送电视,小到外 卖满 30 免配送费,涵盖面更广。 因此,在当前国内的形势下,拼单平台是由很大的发展空间和商业价值的。 1.3 课题的研究内容 本课题的主要工作是完成拼单平台的整体设计和安卓客户端的实现。首先分析国 内形式,讨论可行性,然后结合需求分析对本平台进行各个模块的功能设计,拼单 APP 主要分为登录注册模块、发现模块、发布模块、即时通讯模块、我的个人信息模块 5 个模块,每个模块需要完成的功能如下。 登录注册模块:有账号的用户直接登录,没有账号的用户在进行手机号验证码验 证后通过填写账号名和密码进行注册。在 APP 向服务器端传输密码的时候,为了安全 性考虑,对密码进行加密。 发现模块:此模块中有各个类别分类的入口,同时也会把服务器端根据用户的地 理位置所推荐的周围的拼单信息呈现在发现列表中。 发布模块:用户可以在此模块中填写拼单标题、详细信息、添加配图,在点击发 布按钮后会将拼单信息发送给服务器。
分享到:
收藏