Comutercience Sp
Vol.43No.11A
Nov2016
高校网上跳蚤市场Android客户端设计与实现
田柏玉 庄海涛 钱 旭
()中国矿业大学(北京)计算机科学与技术系 北京100083
摘 要 针对传统的实体跳蚤市场不能满足高校学生实时、高效地进行二手交易的需求的问题,在Android平台下,。该软件同时考虑了交易的可靠性、设计并开发了校园二手交易应用软件“高校网上跳蚤市场”消息发布与查找的实时性以及查找物品的高效性,采用了大学生学号信息实名注册及物品分类发布与查找的机制。同时,软件中的数据渲而且通过定义接口和抽象类来管理服务器与客户端之间的通讯。实际应用情况表明,与实染采用了异步加载的方式,
体跳蚤市场和现有的网上跳蚤市场相比,该软件不仅使高校学生的二手物品交易更便捷,而且解决了网上二手交易的可信度及安全问题。
,关键词 二手交易,实名注册,异步加载,网上跳蚤市场Android中图法分类号 TP311.52 文献标识码 A
AndroidClientDesin &ImlementationofUniversitOnlineFleaMarket gpy
TIANBaiHUANG HaitaoIANXuu - Z- Q y
(,,,)DeartmentofComuterScienceandTechnoloChinaUniversitofMinin&TechnoloBeiinBeiin100083,China ppgyyg gyjgjg
,roblemAbstractccordintotheofthetraditionalentitfleamarketwhichisn’trealtimeandefficientunderthe A - pgy camussecondhandtransactionalicationwhichisalsocalleduniversitonlinefleamarketwasdeAndroidlatform, - -pppyp ,sinedanddeveloed.Thereliabilitofthetradinudatininrealtimeandefficientlsearchinitemswereredefined gpygpgyg
,,usincolleestudentidreisterandinformationclassification.Meanwhileasnchronousloadinmethodwasadotedto gggygp andinterfacesandabstractclassesweredefinedtomanaethecommunicationbetweentheserverandtheclient.Com- garedwiththerealfleamarketandonlinesecondartradinlatform,theroosedalicationnotonlimrovesthe pygpppppyp
,tradinefficiencforcolleestudentsbutalsoimrovesthereliabilitandsecurit. gygpyy ,,,,KewordsecondhandtransactionsAndroidRealnamereistrationAsnchronousloadinOnlinefleamarket S- - gygy
物品的价格大多附加了邮费,无形中破坏了跳蚤市场价格低廉的本质特点。
针对以上问题,本文专门设计并开发了一款具有创新性——高校网上跳蚤市场。与实用性的大学校园二手交易软件—
该软件借助在校大学生的学号信息实现实名注册,极大地提高了交易的可靠性;其次,通过登录个人账号,可以随时管理另外,这款软件中有物品分类选个人主页信息的发布与收藏;
项,以及个人对交易物品的文字描述和图片展示,更加方便同学们寻找自己需要的物品。其既拥有在网络上发布、寻找信又给同学们提供了一个面对面交流的息的针对性与高效性,
地域的,克服了传机会。高校网上跳蚤市场突破了时间、
统跳蚤市场零散性的缺点,在高校内具有较强的实用价值和推广意义。
1 引言
在当代大学生的课余生活中,二手物品交易逐渐成为热价格低廉,校园跳蚤市场备受同学们门话题。由于商品多样、
的青睐,与此同时,它也有利于物品的再利用及资源节约,充分体现了低碳环保的理念。在各大高校的毕业季,多数学校目前的校内二手交易都会举办一年一度的跳蚤市场。但是,
)还存在许多不足:交易时间短暂,通常集中于毕业之际,在1)平时很少有二手交易的机会;交易方式局限,以在校内公告2栏贴小广告或者在朋友圈内发送消息为主,只能在少数人中进行交易。因此能够转让出售的物极少,而且信息交流滞后,导致许多具有时效性的物品不能及时地转让。可见,举办实体跳蚤市场的二手交易方式有很多局限性,无法满足大学生对于商品及时流通的需要。
目前在国内,网上跳蚤市场主要有3个:淘宝二手物品交易、赶集网、但是它们都处于发展阶段,物品的质量58同城,一旦交易后出现问题,很难联系到卖家进行调解,参差不齐,
因此支付、信用和物流都没有很好的保障,致使大学生在交易过程中很容易上当受骗。而且由于地域性问题,网上的二手
2 软件总体设计
2.1 软件架构设计
高校网上跳蚤市场由客户端和服务器端组成。客户端主要负责与用户进行交互,完成注册、登录、发布物品信息等操作;服务器负责对用户的请求进行处理,并在客户端和数据库
,:,田柏玉(女,硕士生,主要研究方向为人工智能,庄海涛(男,硕士生,主要研究方向为人工智能;1992-)E-mail1533324469@q.com;1990-)q,钱 旭(男,博士,教授,主要研究方向为数据库、信息融合技术、软件工程理论与技术、计算机支持的协同工作(技术、知识工程。1962-)CSCW)
·572·
之间传输数据。客户端与服务器通过服务器接口进行相互通
信[
1]
。系统架构如图1所示。图1 系统架构图
.2 总体功能结构设计
为了满足用户需求,该软件包括如下功能模块,如图2所示。
图2 总体功能结构图
软件实现及难点分析
.1 服务器端实现及难点
服务器提供一个API接口,当客户端发来请求时,服务器会把请求中的字符串转化成json格式的数据字段,然后根据请求字段中的type转入相应的程序流程,进而处理请求
[2]
。
(1
)上传图片的保存问题如果将发布物品的图片作为一个字段存储在交易表中,
可能会出现图片被覆盖的问题。由于django是多进程处理并发请求,
若客户端一次性发出多个上传图片的请求,在一个进程对交易的图片字段进行赋值之后,且在没有保存之前,第二个进程会对图片字段进行赋值,由此会造成原有的图片被覆盖
[3]
。软件中单独用一个表来存储图片,每一个进程都有
一个表字段来存储数据,这样多进程之间就不会相互干扰。
(2
)部署到新浪服务器需要注册新浪开发者帐号,使用mysql命令在新浪服务器上生成数据库表,使用新浪的storage存储上传的文件。解决方法为:登录http://sae.sina.com.cn注册开发者,创建一个应用,获得应用的svn地址并checkout到本地,把项目放到vn目录下并添加到svn代码管理中。在应用的MYSQL服务中添加数据库,使用django sqlall命令获得创建数据库表的sql语句,在新浪服务器上执行生成数据库,在setting.py中按照api添加MYSQL_HOST、MYSQL_PORT、MYSQL_USER、MYSQL_PASS、MYSQL_DB字段,重新配置数据库。在创建的应用里创建一个storag
e domain存储上传文件,添加处理上传文件的storag
e类[4]
。(3
)在新浪服务器上生成缩略图的问题新浪服务器不能在指定路径存储图片,只能由storage存取上传图片。在生成缩略图时,需要把处理后的图片保存。这时,需要先将处理后的图片保存在String
IO(内存)中,然后新浪的上传文件的接口才能正确保存处理的图片[
5]
。(4
)在程序中判别是线上环境还是调试环境由于线上的全局变量及方法与调试模式有很大不同,实际开发中需要区分两种环境。解决方法是判断全局变量en-viron中是否包含app
_name字段,若包含则执行线上环境流程,
否则视为调试环境[6]
。(5
)数据库的设计与分析1)系统关系E-R图
通过分析应用的结构可以知道,一共存在“用户”、“物品”和“图片”3个实体。其中一个用户可以发布多个物品,用户和物品存在一对多的关系;
每个用户可以收藏多个物品,每个物品又可以被不同的用户收藏,因此用户和物品存在多对多的关系;
每一个发布的物品包含多张不同的图片,物品和图片是一对多的关系。系统关系E-R图如图3所示。
图3 系统关系E-R图
2
)数据库表结构设计用户表:由于应用目标是在校大学生,为了验证用户的合法性,
需要提前将授权学校的学生基本信息录入到用户表中,需要字段“学号”、“姓名”、“学校”。在用户注册之后,需要增加“用户登录名”、“密码”、“手机号”、“QQ号”等信息。服务器对数据库进行访问时,绝大多数时间是对注册过的用户进行访问,
同时庞大的未注册用户数量势必会增加对数据库操作的时间,维护起来也相对比较麻烦。因此需要将用户表进行拆分,
将其拆分成“未注册用户表”和“已注册用户表”。“未注册用户表”
用来验证合法性,“已注册用户表”用来存储用户的基本信息。这样在服务器对数据库进行访问时可以大大提高数据库的访问和查询速度。“未注册用户表”中学号设置为主键,“已注册用户表”中用户昵称为主键,学号为外键。
物品发布表:这个表用来存储所有用户发布的每一个物品信息。包括物品sha1、用户昵称、发布时间、物品种类等基本信息。其中物品sha1为主键,用户昵称为外键,并建立索引。物品种类作为需要经常使用的查询条件,也需要建立索引。
用户收藏表:用来存储用户收藏的每一个物品sha1,用户昵称和物品sha1均为外键,
这两个字段作为联合主键。会话表:该表用来存储用户登录时服务器分配的ses-sion,在session的有效期内,用户的每一个http请求都需要在header里面携带session进行合法性验证。其中sessionId为主键,用户昵称为外键。
·573·
233s物品图片表:存放发布的物品展示的图片,图片sha1为主键,物品sha1为外键。
数据库表结构如图4所示。
图4 数据库表结构
.2 客户端实现及难点
手机客户端采用Android平台。(1
)物品信息发布在填写完物品的基本信息之后,用户从手机本地获取图片,
为了统一系统的界面效果,并没有调用系统提供的相册,而是调用自己系统的API,获取手机本地图片进行显示。在显示图片时要严格控制内存大小,防止出现内存溢出的问题。在点击发布之后,程序先将物品信息打包成JSON数据,然后上传;服务器接收后返回一个唯一的发布信息标识码,然后图
片夹带着该标识码进行上传操作[
6]
。在上传操作完成后,自动刷新主界面,将最新的发布显示出来。
(2
)查看发布的物品信息客户端向服务器发送对应的操作请求,请求被打包成SON数据格式,服务器返回给用户一段JSON数据,JSON数据中包含物品的基本信息和图片URL,客户端在本地对SON数据进行解析,
然后将解析出来的数据和图片通过异步加载渲染到对应的listview等控件上面[8]
。
在软件中,数据渲染采用了异步加载的方式,在基本信息从JSON数据中解析出来之后立即刷新界面进行显示。
(3
)查看单个物品详情在点击发布物品列表中的某一项后,会进入到查看物品详情界面。在这里可以查看与物品相关的所有图片,并且可对该物品进行收藏和取消收藏操作。图片默认显示原图压缩后的缩略图,点击缩略图可以查看每一个图片的原始图片,同时还可以对图片进行放大、缩小、左右滑动查看其它图片等操作。在查看物品详情界面,
点击右上角的爱心图标可以对物品进行收藏或者取消收藏,此时会向服务器发送一个对应的
ttp请求[8]。
(4
)解决图片加载时内存溢出的问题软件中使用了第三方的开源框架Universal_Image_Loader,该框架提供了良好的异常捕捉机制,有效避免了系统崩溃的情况。同时它还有很好的缓存管理机制,
开发者借助mageLoader可以选择性地将图片资源缓存到手机内存或者D卡中。由此,在避免内存溢出的同时还可以提高listview、ridview、viewpag
er等控件的滑动速度,避免加载大量图片导·574·
致的滑动卡顿问题[
9,10]
。(5
)应用程序全局变量的存放在Android应用程序的开发过程中,经常涉及到变量在activity之间频繁地进行传递。通常的做法是让Intent携带Intent.putExtra(),或者有一个Bundle,把信息加入Bundle让Intent推荐Bundle对象,实现传递。但是Intent和Bundle所能携带的数据类型都是基本的数据类型,如果想实现复杂的数据传递比较麻烦,通常需要实现Serializable或者Parcella-ble接口。还有一些在整个应用程序中都可能使用到的变量,需要在应用程序启动时初始化。该软件使用了Android提供
的App
lication类,很好地解决了上述两个问题[11]
。(6
)查看原图时缩放功能的实现在查看原图时,经常需要对图片进行缩放,以便查看图片的细节。图片一般显示在Imag
eView控件上面,在程序rix中写了TouchImageView继承ImageView类。在TouchIma-g
eView中主要用到了3个类:Matrix、ScaleGestureDetector和GestureDetector[1
2]
。4 应用实例展示
图5-图7是该款软件的部分截图。
图5 注册界面图6 登录界面
图7 最近的发布界面
图8 发布物品界面
结束语 “高校网上跳蚤市场”是针对当前跳蚤市场的现状和校园对跳蚤市场的需求开发的,目标人群是在校大学生。通过实名制的注册与登录,可以查看发布者个人真实有效的信息。因此,无论是对卖家还是对买家而言,都提供了一个良
(下转第590页)
3JJhiSg表5 第三组实验结果
实验组(56维特征)Total Churn AUC Top 50000 100000 150000 200000
1713356960880.9194recall 0.3918 0.5729 0.6654 0.7284
recision p0.6929 0.4505 0.3763 0.32
对照组(55维特征)Total Churn AUC Top 50000 100000 150000 200000
1713356960880.8913recall 0.3514 0.4394 0.5439 0.6173
recisionp0.67530.42220.34840.2966
IEEEInternationalConferenceonDataScienceandAdvanced ,DSAA)2015.IEEE,2015:110Analtics(-y
[]N7ieG,RoweW,ZhanL,etal.Creditcardchurnforecastinb ggy
loisticreressionanddecisiontree[J].ExertSstemswith ggpy,():Alications2011,38121527315285-pp
[]B8inL,PeiiS,JuanL.Customerchurnbasedontherediction jp
[decisionersonaltreeinhandhonesstemserviceC]007 ∥2pypyInternationalConferenceonServiceSstemsandServiceMana -y2007:15ement.IEEE,-g
[]L,9uN,LinH,LuJetal.Acustomerchurnmodelinrediction p
]telecomindustrusinboostinJ.IEEETransactionsonIn -ygg[ ,():dustrialInformatics2014,10216591665 -[]L10emmensA,CrouxC.Bainandboostinclassificationtrees gggg
,toredictchurn[J].JournalofMarketinResearch2006,43 pg ():2276286-[]H11uanY,ZhuF,YuanM,etal.Telcochurnredictionwithbi ggp
[dataC]roceedinsofthe2015ACMSIGMODInternational∥P gConferenceonManaementofData.ACM,2015:607618 -g[]X12ieY,LiX,NaiE W T,etal.Customerchurnusinrediction ggp
[]imrovedbalancedrandomforestsJ.ExertSstemswithA -ppyp,():lications2009,36354455449-p
[]H13unSY,YenDC,WanH Y.Alindataminintotele -ggppygg
[],comchurnmanaementJ.ExertSstemswithAlications gpypp():2006,313515524-[]Trediction14saiCF,LuY H.Customerchurnbhbridneural pyy
[],:J.ExertSstemswithAlications2009,36(10)networks pypp1254712553-[]F15aruadM A H,RaviV,RauSB.Churnredictionusincom- qjpg
:rehensiblesuortvectormachineAnanalticalCRMalica -pppypp[],():tionJ.AliedSoftComutin2014,1923140 -pppg
[]X16iaG,Jin W,etal.Modelofcustomerchurnredictiononsu -pp
]vectormachine[J.SstemsEnineerinheor&Pracort -T-yggyp ,():tice2008,2817177-[]B[],():17reimanL.RandomforestsJ.MachineLearnin2001,451 g
532-[]董师师,]:黄哲学.随机森林理论浅析[集成技术,18J.2013,2(1)
17-[]周绪宏,梁阿磊,戚正伟.基于嵌入式L5inux的智能手机系统软
]():件的设计与实现[计算机应用与软件,J.2008,2535961-[]孟岩.[]():上)程序员,6Android组件模型评析(J.200814951-[]乜聚虎,]周学海,余艳玮,等.计算机7Android安全加固技术[J.
():系统应用,2011,20107477-实验结果表明,加入服务号码特征之后,系统的预测精度有明显的提高。一般的,若是一个用户多次捆绑手机号码,那这些捆绑行为就会从一定程度降低其离网概率,通过本文实验也很好地证明了这一点。
结束语 客户流失问题一直是学术界和工业界广泛关注的一个重要问题。良好的离网预测模型,可以辅助运营商对潜在离网用户进行提前干预,通过提供有效的营销策略降低客户离网率,最大程度提高企业利润增长。本文以服务号码利用逻辑回归模型从中提取特征,加软捆绑行为为研究对象,
通过实验证明,服务号码软捆绑入到离网预测模型的特征库,特征的确可以提高系统预测精度。
参考文献
[]蒋国瑞,司学峰.基于代价敏感S1VM的电信客户流失预测研究
[]():计算机应用研究,J.2009,262521523-[]H2uanB,KechadiM T,BuckleB.Customerchurnrediction gyp
,intelecommunications[J].ExertSstemswithAlications pypp():2012,39114141425-[]V3erbekeW,MartensD,BaesensB.Socialnetworkanalsisfor y
[],customerchurnredictionJ.AliedSoftComutin2014,14 ppppg():1431446-[]罗彬,邵培基,罗尽尧,等.基于预算和客户挽留价值最大化4
]():的电信客户流失挽留研究[管理学报,J.2012,92280288-[]范波,]程久军.用户间多相似度协同过滤推荐算法[计算机科5J.
():学,2012,3912326-[]S6trilinE,AntonioK,BaesensB,etal.Profitmaximizinlois -pggg
ticreressionmodelinforcustomerchurnC]∥rediction[ ggp
(上接第574页)
好的交易平台。此外,软件的功能设计完善,可做到更高效、更便捷地处理高校大学生的闲置物品,减少浪费现象,提高物品利用率。
参考文献
[]韩敬海,丁春强.北京:电子工业出版1Android程序设计[M].
社,2012:1011-[]韩义波,宋莉,宋俊杰.2Alax技术结合XML或JSON的使用比
]():电脑知识与技术,较[J.2009,51101103-[]P[/[3ortinourasfrom Dano0.96to1.0EBOL].201605 --gyppjg
://////25].httdocs.danoroect.comendevreleases1.0or--pjgpjptinuide-gg
[]E[深入浅出G北京:人民邮42EColud工作室.ooleAndroidM]. g
电出版社,2009:812-[]雷刚跃.]基于XML的异构数据库间数据交互技术研究[科8J.
():学技术与工程,2006,6233650-[]尹文刚,]杨斌.9Android应用程序中的内存泄露与规避方法[J.
单片机与嵌入式系统应用,2012,16:46-[]丁锐.]基于多级缓存的内存管理方案[杭州电子科学大学学10J.
():报,2011,3152528-[]公磊,]周聪.基于A11ndroid的移动终端应用程序开发与研究[J.
():计算机与现代化,2008,17118689-[]王健.]:疯狂升级的A电脑爱好者,12ndroid系统[J.2012(23)
8384-·590·
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- pqdy.cn 版权所有 赣ICP备2024042791号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务