基于线下导购的app.docx
《基于线下导购的app.docx》由会员分享,可在线阅读,更多相关《基于线下导购的app.docx(32页珍藏版)》请在冰点文库上搜索。
基于线下导购的app
基于LBS线下购物的智能导购应用
中文摘要:
随着移动互联网的兴起,手机逐渐了生活中不可以缺少的一样工具。
各种APP应用给人们的生活带来了许多便利和乐趣。
但是还有许多方面并没有涉及到。
一方面商场的打折促销信息没有被充分传播开来,有促销打折购买的人也不多。
另一方面人们想买到更加实惠的服装,却没法很快了解哪些服装,那个商场打折了。
逛街啦这款APP就是以用户和商家分享打折信息,致力于让人们更方便的知道周边的一些打折信息,随时随地知道自己喜爱的品牌服装打折促销信息。
而商家就能为自己带来更多的收益。
用户和商家分享打折信息时,APP会自己获取地点,并支持上传打折店铺的图片和手动填写地址。
打折信息分享出来之后,其它用户可以评论和点赞。
系统会根据浏览次数,评论次数和点赞时时排名,汇集成当前热门信息。
逛街啦是一款基于Android系统的APP,客户端采用Java语言开发,服务器端利用最近比较流行的PAAS平台LeanCloud。
中文关键词:
安卓APP线下导购打折促销
Abstract:
WiththeriseofthemobileInternet,mobilephonesandgraduallythelifeofnotmissingthesametools.APPapplicationtoavarietyofpeople'slivesalotofconvenienceandfun.Buttherearemanyaspectsanddoesnotrelateto.Ontheonehandthemalldiscountpromotionsarenotfullyspread,therearepromotionaldiscountsnotmanypeoplebuy.Ontheotherhandpeoplewanttobuymoreaffordableclothing,butcannotunderstandwhatclothingquickly,thatmalldiscount.TheAPPisshoppingittousersandbusinessestosharediscounts,dedicatedtomakingiteasierforpeopletoknowsomeofthesurroundingdiscountinformation,knowtheirfavoritebrandofclothingdiscountsinformationanytime,anywhere.Andbusinesseswillbeabletobringmorerevenueforthemselves.Usersandbusinessessharediscount
information,APPwillgettheirownplace,andsupportforuploadingimagesanddiscountstorestomanuallyfilladdress.Afterdiscountinformationsharingout,otheruserscancommentandpointpraise.Thesystemwillbebasedonviews,comments,andthenumberofrankingpointslikealwaystogetherintocurrentpopularinformation.ShoppingitisasystembasedontheAndroidAPP,theclientusestheJavalanguagedevelopment,server-sideusethemorepopularrecentlyPAASplatformLeanCloud.
Keywords:
androidappOfflineshoppingguideDiscounts
一、绪论
(一)背景介绍
1、APP背景
随着移动互联网的兴起,手机给人们的生活带来了很大的便利。
生活中无时无刻不在用手机,早上上班坐公交的时候,拿出手机看新闻,中午吃完饭后,在手机上玩一会游戏,晚上回到家,在手机上听音乐看电影。
订餐,订酒店,旅游门票购买,看新闻视频,购物,基本上生活的一切都能在手机上操作。
现在的APP应用也很多很多了,有淘宝、京东、XX这一类从PC互联网转过来的,还有像美团、微信、陌陌这些随着移动互联一起发展起来的一些应用。
这么多应用,获取本地周边商品打折促销信息的APP却很少。
2、购物背景
网上购物品质得不到保证,网上购买衣服,没法试穿,没法实地体验,网上买来的衣服往往不合适。
假货充斥着各类电商网站。
最近国家工商总局对淘宝抽查发现假货达到63%,越来越多的人不相信从网络买来商品的质量。
3、线下店铺背景
面对网络的充斥,网络购物的流行。
线下店铺促销打折的活动也越来越多。
但是打折促销的信息传播却不是很好,导致推广力度加大,成本增加。
(二)项目意义
1、用户的意义
用逛街啦app,用户可以随时获取周边有哪些商品促销打折,查看自己喜欢
的品牌有哪些在打折促销。
用户就可以从这些打折信息中快速选出自己喜欢的商品品牌。
相比网络购物来说,用户可以去商家店铺实际体验,再做购买决定,而且价格还很便宜。
用户就可以用更低的价格,买到更加实惠的商品。
2、商家的意义
商家可以在逛街啦APP中发布打折促销的信息,逛街啦的用户看到信息后,有一部分人就会去商家店铺里面去购买商品。
从而给商家带来人流量,增加销售量,获得更多的收益。
二、相关技术综述
(一)Android
Android是一个基于Linux的自由及开发源代码的移动操作系统。
2011年在全球的市场份额跃居第一。
现在与ios系统占据了全球80%以上的市场份额。
(二)LeanCloud
LeanCloud是国内的移动应用一站式云服务。
可以开发一个云存储的移动应用软件,给应用软件快速添加一个安全灵活的后台管理系统,方便浏览终端保存的各种信息。
提供了数据存储、实时消息、统计分析以及多种扩展组件,全面涵盖移动应用开发的需求,支持iOS、Android、Web等多平台。
帮助开发者摆脱繁重的后端开发负担,最大限度地缩短开发周期和加快迭代速度,在激烈的市场竞争中胜出。
(三)Eclipse
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
在上面、开发安卓应用需要配置下环境,首先安装上一个Androidsdk和javasdk下载好安卓sdk,然后安卓Eclipse。
三、系统功能介绍
(一)需求分析
1、逛街啦角色
(1)后台管理人员
(2)普通的用户
2、功能需求
(1)后台管理人员需求
1)查询用户信息
可以leancloud服务器中查询数据库,获取用户的相关信息。
2)删除用户信息
可以在数据库中,删除一些用户,或者删除用户的一些信息。
3)修改用户数据
用户的数据,可以在数据库中手动修改。
4)后台上传图片
可以直接上传图片到服务器,用户上传的图片可以为它修改。
5)查询用户状态
查询某个具体的用户是否在线。
6)推送功能
选择为全部用户,还是符合某些条件的用户推送消息。
(2)用户需求
1)上传打折促销信息的功能
用户看到身边的打折促销信息,登陆逛街啦,即可拍下商家的门店的图片,加上简单描述下,就可以上传到服务器。
2)定位功能
当用户上传的时候,可以选择自动获取当前位置。
用户要查看附近的打折促销信息的时候,也可以点击自动获取当前位置。
3)登陆注册
注册用手机号码注册,为了防止有人乱注册了乱发消息,注册的时候就必须用手机验证。
登陆的用户名也是手机号。
4)获取最新的打折促销信息
手指下拉一下即可获取最新附近的打折消息。
5)评论功能
用户看到别人发的打折促销信息之后,可以对其评论。
(二)功能介绍
1、客户端模块介绍
逛街啦是一款快速获取周边打折信息的一款应用。
客户端主要分为用户注册登录,用户上传打折促销,获取地理位置,用户评价。
2、leancloud后台模块介绍
(三)客户端功能用例
1、注册
用户打开APP的时候首先出现登陆的页面,有账号的就可以登陆进去,没有账号的点击登陆按钮右下角的注册,直接去注册。
来到注册页面就会有输入手机号码,然后密码,点击注册后,系统会给用户发一条短信,短信里面有验证码。
这时注册页面也会跳转到输入验证码的页面,输入正确的验证码点击完成就注册成功了,跳转到主页面如(图3.1)。
图3.1注册流程图
2、登陆
用户打开逛街啦APP,一开始就进入登陆界面。
用户输入用户名,也就是手机号码,然后输入密码,点击登陆即可,流程如(图3.2)所示。
图3.2登陆流程图
3、用户分享打折促销信息
用户登陆进来之后,点击分享,就出弹出来一个新的界面,点击这个分享的按钮的时候,APP会自己获取用户的位置。
这个页面有几个需要填的,用户在地址编辑框中输入自己所在的具体地址,在商品名称的输入框中输入详细的商店名称,然后在输入此商店具体打几折。
还有一个图片选项,用户可以从手机相册中选择一张,也可以调动相机直接拍一张图片,最后还有个其他内容,用户可以分
享现在的心情,也可以再更加详细的介绍下,流程如(图3.3)。
图3.3分享流程图
4、用户评论
点击用户分享的打折促销信息,就可以看到用户分享的商店打折促销信息。
有商店的图片,商家的具体名字。
商品的具体地址,在这个页面上你可以看到其他用户的一些评论。
在评论输入框中输入你想说的话,就发表了,流程如(图3.4)所示。
图3.4分享流程图
(四)leancloud服务器功能用例
1、查询用户
打开leancloud网站,登陆进入自己的控制台,可以看到有一个存储的选项。
找到数据按钮。
点击用户表,找到查询的按钮。
选择用户表,输入查询条件,点击查询即可查询到你想要查询的用户,如(图3.5)所示。
图3.5数据库查询流程图
2、删除用户
选择你要删除的行,然后点击删除就可以把这个用户的相关信息从数据库中删掉了,如(图3.6)。
图3.6删除流程图
3、修改用户数据
找到你要修改的用户,数据比较多,先查询到这个用户或者这一类用户的数据,鼠标双击就可以编辑用户的信息,如(图3.7)所示。
图3.7修改数据流程
4、消息推送
找到消息的选项,选择你要推送的平台,选择推送目标。
选择用户活跃天数。
然后选择推送时间,输入你想要推送给用户的内容。
选择推送文件的格式,再选择你想要推送的文件。
点击发送就可以给用户推送出去了,如图(3.8)。
图3.8消息推送流程
四、数据库设计
(一)服务器数据库建立
服务器数据库是用的leancloud的自带的数据库。
只需在leancloud后台控制,建立自己的数据表。
(二)数据表
1、用户信息表
用户信息表用来存储用户注册的信息,用户首次使用逛街啦的时候注册,用户名和密码都保存在数据表。
用户注册的时候,就把用户名和密码保存在用户信息表中。
实现代码如下:
AVOSCloud.verifySMSCodeInBackground(sym,user1, newAVMobilePhoneVerifyCallback() {
@Override
publicvoiddone(AVException e) {
AVUser avUser=newAVUser();
avUser.setUsername(user1);
avUser.setPassword(pwd);
avUser.put("phone",user1);
avUser.signUpInBackground(newSignUpCallback() {
publicvoiddone(AVException e) {
if(e == null) {
// successfully
Intent intent=newIntent(Yanzhengma.this, MainActivity.class);
Bundle bundle = newBundle();
bundle.putString("username", user1);
bundle.putString("pwd", pwd);
intent.putExtras(bundle);
startActivity(intent);
finish();
} else{
// failed
Toast.makeText(getApplicationContext(), "注册失败", 500).show();
}
}
});
}
});
2、商店数据表
商店数据表用来存储商店的信息,包括商店的名字,商店的地理位置,还有商店的图片信息,商店所卖东西的品类。
用户选择上传的时候就存储到商店数据表。
实现主要代码如下:
AVOSCloud.verifySMSCodeInBackground(sym,user1, newAVMobilePhoneVerifyCallback() {
@Override
publicvoiddone(AVException e) {
AVUser shop = newAVUser();
shop.setUser=("yangguang");
shop.setPlace("chongqing");
shop.setImage("yichun.jpg");
shop.setShopCategory("Fashionclous");
user.signUpInBackground(newSignUpCallback() {
publicvoiddone(AVException e) {
if(e == null) {
Toast.makeText(getApplicationContext(), "上传成功", 500).show();
} else{
Toast.makeText(getApplicationContext(), "上传失败", 500).show();
}
}
});
3、商品数据表
商品数据表用来存放商品品牌的数据,当用户填写的时候自动从数据库中加载商品名称。
而这些商品的品牌是以首字母来编写的,从A-Z,共26个json,把每个json的地址存在存在数据表的一行。
客户端选择的时候根据首字母来加载json文件。
显示出品牌让用户来选择。
这个表的数据从天猫品牌分类中搜集来的,后面还会逐渐增加。
(三)数据库逻辑设计
1、用户表设计
开发逛街啦期间,分析用户的需求,就确定了基本数据库的一个设计。
用户开始注册时有手机号码,密码,后面登陆进去了还可以设置邮箱,年龄,性别。
其中主键为id,其实体图如(图4.1)所示。
图4.1用户数据图
2、商店数据表设计
商店的数据表,是数据库的核心部分。
里面存储着商店的位置,商店的图片,商店的品牌,商店的折扣。
整个逛街啦基本全靠这个来支撑运行了。
没有商店的数据,用户浏览打折信息的时候不能够及时获取,影响用户体验,商店的数据表有问题,用户看到打折促销的信息之后,想上传,结果去传不成功。
很给用户的心理造成很大的困惑,体验也不好。
所以这个商店的数据表是相当重要。
当然商店数据表的主键也是ID。
其实体图如(图4.2)所示:
图4.2商店数据图
3、商品数据表设计
商品数据指各种品牌的服装和商品。
这些品牌名字,按其首字母A-Z分类。
每个类的数据存在一个json文件里面。
数据表主键为ID,字母,json文件。
其实体图如(图4.3)所示:
图4.3商品品牌图
(四)数据表基本信息
表一用户信息表
字段名数据类型长度主键备注
IDInt10是自己生成
手机号Varchar12否注册加入
密码Varchar50否用户填写
邮箱Varchar40否用户填写
性别Varchar3否用户填写
年龄Int3否用户填写
表二商店数据表
字段名数据类型长度主键备注
IDInt10是自己生成
位置Varchar80否分享加入
图片Varchar100否用户填写
品牌Varchar40否用户填写
折扣Float3否用户填写
表三商品数据表
字段名数据类型长度主键备注
IDInt10是自己生成
字母Varchar2否管理生产
JsonVarchar100否已有
五、核心模块开发与设计
(一)Eclipse安卓环境搭建
1、准备工作
下载Eclipse、JDK、ADT插件。
2、安装和配置JAVA开发环境
把准备好的Eclipse和JDK安装到本机上,在全英文路径下安装。
安装好了之后,右键我的电脑,点击属性选项,点击更改设置,找到高级选择。
点击环境变量,然后点击新建,在出来的窗口中,变量名设为JAVA_HOME,变量值为我JAVA的安装地址(C:
\ProgramFiles\Java\jdk1.8.0_40)。
打开命令提示符(cmd),输入java-version命令,显示如图(5.1)说明我的环境已经配置好了。
图5.1java配置验证图
3、安装ADT插件
打开已经安装好的Eclipse,选择菜单栏上的“help”,在弹出的下拉框中单击选择“installnewsoftware”,在新打开的对话框中我直接在"Workwith"中输入:
https:
//dl-
图5.2ADT插件图
4、安装SDK
把下载好的AndroidSDK安装到本机上(最好安装在全英文路径下),并为AndroidSDK配置环境变量。
AndroidSDK的环境变量值为SDK安装目录下的platform-tools文件夹和tools文件夹子目录路径,如我的分别为:
E:
\MyStudying\Android\android-sdk\platform-tools、E:
\MyStudying\Android\android-sdk\tools,在变量值中,两个路径用逗号隔开。
打开AndroidSDK的安装目录,双击"SDKManager"->在打开的窗口中先选择你需要安装的SDK版本,其中“Status”表示该SDK包是否安装,如我选的是“Android2.2(API8)”(我的之前已经安装过了,所以“Status”为“Installed”)->再点击“Installpackages...”按钮,在弹出来的窗口中最好选“AcceptAll”这样才能安装你刚才选的所有的包->最后点“Install”按钮就开始安装了。
5、创建Android模拟器
打开Eclipse->在Eclipse的工具栏如(图5.3)上单击下图指示的图标打开“AndroidVirsualDeviceManager”窗口;在“AndroidVirsualDeviceManager”窗口单击“New”按钮->在弹出来的窗口中"Name"可以随便取;“Target”指模拟器的系统版本;“SDCard”的"size"是指手机存储卡的大小,只要你不在模拟器上装太多的应用,一般给个二三十MB就够了;“Skin”是指屏幕的分辨率大小,其中“Builtin”是一般手机常用标准屏幕分辨率大小,而“Resolution”是自定义屏幕分辨率大小,具体做法,可以根据自身情况选择。
->一切设置好后点击“CreateAVD”,这时一个模拟器就创建好了。
如果有必要,我们可以创建多个模拟器用于测试时使用。
图5.3Eclipse工具栏
(二)获取用户的地理位置
1、定位方法概述
(1)GPS定位
GPS定位的主要特点就是精度高,耗电量大,不消费流量。
在室内的时候反应比较迟缓。
(2)网络定位
网络点位具有精度低,省电,需要网络访问,网络定位依赖蜂窝网络,获取的是最近的网络基站位置。
2、定位功能实现
要实现获取用户的基站信息,获取用户的经纬度,获取用户的具体地理位置。
获取基站的方法为getCelllnfo,返回基站信息。
获取经纬度的方法为getltuge,传入基站信息,返回经纬度。
获取地理位置的方法getLocation,传经纬度,返回地址位置。
实现主要代码如下:
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importorg.apache.http.HttpEntity;
importorg.apache.http.HttpResponse;
importorg.apache.http.client.HttpCli