999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

高校網(wǎng)上跳蚤市場Android客戶端的實(shí)現(xiàn)

2015-07-05 00:52:37莊海濤田柏玉錢旭
科技資訊 2015年34期

莊海濤 田柏玉 錢旭

摘 要:目前,二手物品交易成為當(dāng)代大學(xué)生課余生活的一大熱門。校園跳蚤市場商品多樣、價(jià)格低廉,備受同學(xué)們的青睞,有實(shí)體跳蚤市場和網(wǎng)上跳蚤市場兩種形式,仍以實(shí)體跳蚤市場為主。實(shí)體跳騷市場的功能很局限,交易效率低,無法很好地完成物品交換。而網(wǎng)上跳蚤市場,由于并不單獨(dú)針對(duì)高校學(xué)生,個(gè)人的安全便無法保障,在交易過程中容易上當(dāng)受騙。針對(duì)以上的問題,為了滿足高校學(xué)生二手交易的需求,該文重點(diǎn)研究和設(shè)計(jì)了一款大學(xué)校園二手交易Android客戶端——高校網(wǎng)上跳蚤市場,它具有良好的創(chuàng)新性與實(shí)用性,利用在校大學(xué)生的學(xué)號(hào)信息進(jìn)行實(shí)名注冊(cè),使高校學(xué)生能夠更安全、更便捷地進(jìn)行二手物品交易。

關(guān)鍵詞:二手交易 網(wǎng)上跳蚤市場 Android 實(shí)名注冊(cè)

中圖分類號(hào):TP39 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2015)12(a)-0026-03

在高校里,傳統(tǒng)的二手交易形式一般表現(xiàn)為一年一度的跳騷市場,通常集中于畢業(yè)之際。首先,跳騷市場時(shí)間長度很局限;其次,在跳騷市場舉辦期間,會(huì)造成學(xué)校交通的擁擠;另外,同學(xué)在搜集二手物品信息時(shí)沒有目標(biāo)性,交易效率很低。對(duì)于高校大學(xué)生這個(gè)群體,急需創(chuàng)建新型的大學(xué)校園二手物品交易平臺(tái)。

該文在Android平臺(tái)的移動(dòng)終端下,設(shè)計(jì)開發(fā)了一個(gè)借助在校大學(xué)生學(xué)號(hào)信息實(shí)現(xiàn)實(shí)名注冊(cè)的高校網(wǎng)上跳蚤市場應(yīng)用軟件,極大地提高了交易的可靠性。通過登錄個(gè)人賬號(hào),可隨時(shí)管理個(gè)人主頁信息的發(fā)布與收藏。另外,在這款軟件中具有物品分類選項(xiàng),加上個(gè)人對(duì)交易物品的文字描述和圖片展7示,更加方便同學(xué)們尋找自己需要的物品。相比傳統(tǒng)的二手交易方式有著更加強(qiáng)大的功能,在全國高校內(nèi)具有很大的實(shí)現(xiàn)和使用價(jià)值。

該文主要說明了軟件架構(gòu)設(shè)計(jì)、總體功能結(jié)構(gòu)設(shè)計(jì)以及軟件實(shí)現(xiàn)。

1 軟件總體設(shè)計(jì)

1.1 軟件架構(gòu)設(shè)計(jì)

“高校網(wǎng)上跳蚤市場”由客戶端和服務(wù)器端結(jié)合??蛻舳酥饕?fù)責(zé)與用戶進(jìn)行交互,完成注冊(cè)、登錄、發(fā)布物品信息等操作;服務(wù)器負(fù)責(zé)對(duì)用戶的請(qǐng)求進(jìn)行處理,并在客戶端和數(shù)據(jù)庫之間傳輸數(shù)據(jù);客戶端與服務(wù)器則通過服務(wù)器接口進(jìn)行相互通信[1]。

1.2 總體功能結(jié)構(gòu)設(shè)計(jì)

為了滿足用戶需求,制定如下功能模塊,各功能模塊如圖1所示.

2 軟件實(shí)現(xiàn)

2.1 服務(wù)器

服務(wù)器提供一個(gè)API接口,當(dāng)客戶端發(fā)來請(qǐng)求時(shí),服務(wù)器會(huì)把請(qǐng)求中的字符串轉(zhuǎn)化成json格式的數(shù)據(jù)字段,然后根據(jù)請(qǐng)求字段中的type來轉(zhuǎn)入相應(yīng)的程序流程處理請(qǐng)求[2]。

(1)用戶注冊(cè)。

用戶注冊(cè)會(huì)接收參數(shù)sno(學(xué)號(hào)),school(學(xué)校),password(密碼),qq(qq號(hào)),moblie(聯(lián)系電話),userName(用戶昵稱)六個(gè)參數(shù),然后根據(jù)學(xué)號(hào)和學(xué)校查詢未注冊(cè)用戶表中的用戶,將查到的用戶從未注冊(cè)的用戶表中刪除,在已注冊(cè)的用戶表中添加用戶并給相應(yīng)的屬性復(fù)值,并根據(jù)用戶的密碼明文生成sha1加密用戶密碼,最后保存該用戶。

(2)用戶登錄。

用戶登陸請(qǐng)求會(huì)接收兩個(gè)參數(shù) username 和 password ,從已注冊(cè)的用戶表中查詢?cè)撚脩?,如果查詢服?wù)器根據(jù)當(dāng)前的時(shí)間生成sessionid來標(biāo)識(shí)本次會(huì)話,sessionid保存在會(huì)話表中,然后返回給客戶端sessionid,并將用戶昵稱字段存進(jìn)cookie和session數(shù)據(jù)中,返回給客戶端。sessionid和用戶昵稱存進(jìn)會(huì)話信息表中。如果在注冊(cè)的用戶表中查不到相應(yīng)用戶則返回用戶不存在。

(3)獲取最近的物品發(fā)布信息。

用戶登陸后首先獲得最近期的10個(gè)交易,該請(qǐng)求接收兩個(gè)參數(shù)recent-start和recent-end表示獲得交易數(shù)量的起點(diǎn)和終點(diǎn),首先請(qǐng)求會(huì)從請(qǐng)求頭中解析本次會(huì)話的sessionid,如果數(shù)據(jù)庫中包含該sessionid則表示該用戶現(xiàn)在是登陸狀態(tài),可以繼續(xù)進(jìn)行請(qǐng)求。

(4)獲取用戶基本信息。

請(qǐng)求接收用戶昵稱參數(shù),從數(shù)據(jù)庫中查出該用戶后取出用戶的真實(shí)姓名,昵稱,學(xué)校,電話,qq號(hào)并封裝成字典返回。用戶不存在返回提示信息。

(5)發(fā)布一個(gè)物品。

接收上傳用戶昵稱,交易標(biāo)題,簡介,類別參數(shù)。根據(jù)交易的標(biāo)題和當(dāng)前時(shí)間生成交易的sha1來唯一標(biāo)識(shí)該交易,計(jì)算出當(dāng)前時(shí)間,在數(shù)據(jù)庫交易表中創(chuàng)建一個(gè)新的交易,并將交易的屬性根據(jù)之前的參數(shù)賦值,之后保存該交易。返回該交易的sha1和上傳用戶昵稱。

圖片上傳在創(chuàng)建交易請(qǐng)求之后執(zhí)行,接收一個(gè)交易sha1參數(shù)和圖片的二進(jìn)制數(shù)據(jù)參數(shù)。首先從圖片的二進(jìn)制數(shù)據(jù)中獲取圖片名稱,根據(jù)名稱和當(dāng)前時(shí)間生成圖片sha1來唯一表示。再由圖片的數(shù)據(jù)生成圖片文件和縮略圖文件并保存。最后在圖片表里創(chuàng)建一個(gè)圖片的數(shù)據(jù),將所屬的交易sha1和圖片sha1存入數(shù)據(jù)庫。

(6)獲取單個(gè)發(fā)布物品的詳情。

請(qǐng)求接收交易的sha1和上傳用戶昵稱作為參數(shù)。首先根據(jù)交易sha1從數(shù)據(jù)庫中得到該交易,取出交易的類別,簡介,標(biāo)題,時(shí)間屬性封裝成字典,返回屬性值。在根據(jù)用戶昵稱和交易sha1在用戶收藏表中取值,如果取到則表明用戶已經(jīng)收藏,反之沒有收藏,返回是否收藏的標(biāo)志。根據(jù)交易sha1在交易圖片表中取出交易圖片的sha1,返回圖片sha1[3]。

(7)收藏和取消收藏。

收藏:接收用戶昵稱和交易sha1參數(shù),然后根據(jù)昵稱和sha1在用戶收藏表中判斷該收藏是否存在,如果存在返回你已經(jīng)收藏過,不存在就在用戶收藏表中添加一個(gè)收藏。

取消收藏:接收戶昵稱和交易sha1參數(shù), 然后根據(jù)昵稱和sha1在用戶收藏表中判斷該收藏是否存在,如果存在就刪除交易,不存在就會(huì)返回錯(cuò)誤信息提示收藏不存在。

(8)獲取我發(fā)布的物品。

接收開始和結(jié)束的數(shù)量參數(shù),從session數(shù)據(jù)中獲取當(dāng)前用戶昵稱,在根據(jù)開始和結(jié)束數(shù)量從交易表中取出制定數(shù)量的當(dāng)前用戶發(fā)布的交易,再分別對(duì)每一個(gè)交易取出各項(xiàng)屬性,根據(jù)用戶收藏表判斷用戶是否收藏過,根據(jù)圖片表取出交易的圖片,把各項(xiàng)屬性值封裝成字典,形成一個(gè)屬性集合的列表,對(duì)列表按照時(shí)間排序后返回。

(9)獲取我收藏的物品。

接收開始和結(jié)束的數(shù)量參數(shù),從session數(shù)據(jù)中獲取當(dāng)前用戶昵稱,根據(jù)用戶昵稱在收藏表中取出所有當(dāng)前用戶收藏的交易sha1,再分別對(duì)每一個(gè)sha1取出對(duì)應(yīng)的交易,取出交易的各項(xiàng)屬性值,在圖片表里取出對(duì)應(yīng)圖片形成交易的信息的字典。把每個(gè)交易信息按照時(shí)間排序后返回。

(10)按照分類獲取發(fā)布的物品。

接收類別參數(shù),開始和結(jié)束的數(shù)量參數(shù)從session數(shù)據(jù)中獲取當(dāng)前用戶昵稱,根據(jù)類別在交易表中找到所有當(dāng)前類別的交易,在根據(jù)數(shù)量參數(shù)得到對(duì)應(yīng)的交易,再分別對(duì)每一個(gè)交易取出所有屬性,在圖片表里取出對(duì)應(yīng)圖片,在收藏表里取出當(dāng)前用戶是否收藏過,形成一個(gè)交易的屬性的字典。返回所有交易字典的列表。

2.2 客戶端

手機(jī)客戶端采用android平臺(tái)。

程序中需要頻繁地發(fā)送http請(qǐng)求和接收http回復(fù),如果將請(qǐng)求和回復(fù)分別在每一個(gè)activity中都進(jìn)行定義的話,勢必會(huì)導(dǎo)致程序代碼量增大,結(jié)構(gòu)混亂。同時(shí),如果一個(gè)請(qǐng)求需要在不同的activity中執(zhí)行,就會(huì)出現(xiàn)重復(fù)定義的問題。因此,在整個(gè)應(yīng)用中,最重要的就是對(duì)整體框架的搭建[4]。

(1)定義兩個(gè)接口CollegeBarterRequest和CollegeBarterResponse。

在CollegeBarterRequest中定義方法toJsonString()和getType()。toJsonString()用來將字符串轉(zhuǎn)換成http請(qǐng)求中需要用到的JSON數(shù)據(jù),getType()返回當(dāng)前請(qǐng)求的類型。

在CollegeBarterResponse中定義方法fromJsonString()、getType()和getStatus()。fromJsonString()用來將服務(wù)器返回的JSON數(shù)據(jù)進(jìn)行解析,獲取需要獲得的字段值,getType()返回當(dāng)前回復(fù)的類型,getStatus()返回是否正確的對(duì)數(shù)據(jù)進(jìn)行解析。

在程序中每一個(gè)http請(qǐng)求和回復(fù)都要分別實(shí)現(xiàn)上述兩個(gè)接口。

(2)自定義一個(gè)CollegeBarterClient用來處理http的請(qǐng)求和回復(fù)。

在構(gòu)造函數(shù)中,初始化應(yīng)用程序需要訪問的服務(wù)器地址。

定義一個(gè)函數(shù)CollegeBarterResponse executeRemoteComm

and(CollegeBarterRequest request, AppData appData)。在這個(gè)函數(shù)中,需要初始化一個(gè)HttpPost,然后將需要上傳的數(shù)據(jù)添加到NameValuePair類型的參數(shù)里面,包括驗(yàn)證用戶是否登錄的sessionId。在接收到http回復(fù)之后,通過request的不同類型對(duì)http回復(fù)執(zhí)行不同的操作。

(3)定義類CollegeBarterOperation實(shí)現(xiàn)一個(gè)Runnable接口。

在CollegeBarterOperation中,通過線程發(fā)送http請(qǐng)求,接收http請(qǐng)求后,通過handle.post進(jìn)行通知??梢员苊庥捎诜?wù)器沒有響應(yīng)導(dǎo)致UI線程超時(shí),應(yīng)用程序出現(xiàn)ANR(Application No Response)的問題。

(4)定義接口CollegeBarterOperationListener。

在接口中定義方法onCollegeBarterOperationFinish()。在每一個(gè)需要進(jìn)行服務(wù)器通訊的activity中實(shí)現(xiàn)這個(gè)接口,可以在當(dāng)前activity中的onCollegeBarterOperationFinish()中接收到對(duì)應(yīng)請(qǐng)求的回復(fù),從而對(duì)回復(fù)進(jìn)行處理。

3 結(jié)語

“高校網(wǎng)上跳蚤市場”是針對(duì)當(dāng)前跳蚤市場的現(xiàn)狀和校園對(duì)跳蚤市場的需求開發(fā)的,目標(biāo)人群是在校大學(xué)生。通過實(shí)名制的注冊(cè)與登錄,可以查看到發(fā)布者的個(gè)人真實(shí)有效的信息。因此,無論是對(duì)賣家還是對(duì)買家而言,都提供了一個(gè)良好的交易平臺(tái)。此外,軟件的功能設(shè)計(jì)完善,可做到更高效、更便捷地處理高校大學(xué)生的閑置物品,減少浪費(fèi),提高物品利用率。

參考文獻(xiàn)

[1] 楊豐盛.Android應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010:88-91.

[2] 范懷宇.Android開發(fā)精要[M].北京:機(jī)械工業(yè)出版社,2012:154-156.

[3] 孟巖.Android組件模型評(píng)析(上)[J].程序員,2008(1):49-51.

[4] 張棟棟,徐峰.一個(gè)移動(dòng)應(yīng)用個(gè)性化集成框架的研究及其在Android平臺(tái)的實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2014(11):63-68.

主站蜘蛛池模板: 日本不卡在线播放| 久久久久国产精品嫩草影院| 国产乱子伦精品视频| 日本在线视频免费| 亚洲无码日韩一区| 亚洲bt欧美bt精品| 好吊色国产欧美日韩免费观看| jizz在线免费播放| 99在线观看视频免费| 天天摸天天操免费播放小视频| 国产高清无码麻豆精品| 国产jizzjizz视频| 99久久亚洲综合精品TS| 婷婷综合色| 东京热一区二区三区无码视频| 久久这里只精品国产99热8| 欧美精品一区二区三区中文字幕| 一级毛片免费播放视频| 亚洲欧美日韩精品专区| 视频二区亚洲精品| 999精品视频在线| 女人毛片a级大学毛片免费| 精品1区2区3区| 日本91视频| a级毛片网| 亚洲无限乱码| 欧美黄色网站在线看| 婷婷色狠狠干| 极品国产一区二区三区| 成人亚洲国产| 免费在线看黄网址| 国产欧美精品一区二区| 国产精品成| 亚洲嫩模喷白浆| 五月婷婷综合在线视频| 亚洲Av激情网五月天| 99精品热视频这里只有精品7| 国产va免费精品| 国产乱子伦视频三区| 国产高清在线精品一区二区三区| 色偷偷一区二区三区| 国产精品久久国产精麻豆99网站| 日本成人一区| 欧美日韩免费在线视频| 好紧好深好大乳无码中文字幕| 日韩少妇激情一区二区| 少妇被粗大的猛烈进出免费视频| 最新精品久久精品| 人妻中文久热无码丝袜| 国产成人亚洲日韩欧美电影| 国产欧美综合在线观看第七页 | 亚洲精品无码AⅤ片青青在线观看| 国内精品自在自线视频香蕉| 亚洲一道AV无码午夜福利| 久久久久88色偷偷| 精品国产自| 免费在线成人网| 国产日韩欧美黄色片免费观看| 人妻丰满熟妇AV无码区| 青青草原国产av福利网站| 国产精品乱偷免费视频| 久久美女精品国产精品亚洲| 一级片一区| AV片亚洲国产男人的天堂| 国产青榴视频在线观看网站| 波多野结衣亚洲一区| 久久夜色撩人精品国产| 久久久久国产一区二区| 丁香五月婷婷激情基地| 91精品在线视频观看| 欧美性色综合网| 日本人妻一区二区三区不卡影院| 国产jizzjizz视频| 国产免费黄| 国产精品久久久久久久久| 久草视频精品| 国产丝袜91| 韩日午夜在线资源一区二区| 日本人妻丰满熟妇区| 丝袜久久剧情精品国产| 国内精品91| 一级毛片免费播放视频|