任培花 宣昱如
(山西大同大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院 大同 037009)
?
基于Android的“校園跳蚤市場”移動端App的設(shè)計*
任培花 宣昱如
(山西大同大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院 大同 037009)
論文對二手市場進行現(xiàn)狀分析,調(diào)研了大學(xué)生對二手交易平臺的功能需求,提取出產(chǎn)品展示、產(chǎn)品推薦的主要功能需求點,結(jié)合當前大學(xué)生使用智能手機和網(wǎng)購意識強這些特點,將傳統(tǒng)的校園跳蚤市場遷移到移動互聯(lián)網(wǎng)上,并對整體系統(tǒng)規(guī)劃設(shè)計,構(gòu)建了一個服務(wù)于學(xué)生的“校園跳蚤市場”移動端App。該系統(tǒng)采用Eclipse為運行平臺,以Android為框架,運用Java語言,Bmob后臺管理數(shù)據(jù)庫等關(guān)鍵技術(shù)開發(fā)而成。實現(xiàn)了手機移動客戶端的用戶登錄與注冊、用戶商品信息發(fā)布、商品信息首頁展示、商品分類瀏覽、管理員后臺管理等功能。
校園跳蚤市場; Android; App
Class Number F713.5
隨著電子商務(wù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,線上交易在人們的生活中開始發(fā)揮出其不可替代的優(yōu)越性。當代大學(xué)生是一群被稱為“網(wǎng)絡(luò)原住民”的社會群體,擁有極強的網(wǎng)絡(luò)應(yīng)用能力,是線上交易的主要對象之一。伴隨電子商務(wù)網(wǎng)站的興起,它給人們生活帶來了極大的方便,很大程度上解決了傳統(tǒng)生產(chǎn)或消費方式的地域限制[1],與此同時發(fā)現(xiàn)有大量學(xué)生需要一個平臺去交易二手商品,尤其是在開學(xué)和畢業(yè)期間,花幾十塊錢買到電腦書桌、一兩折價錢買到參考書籍,這種物品交流方式越來越得到高校學(xué)生的喜愛,然而傳統(tǒng)的交易模式(如張貼廣告、擺地攤、網(wǎng)絡(luò)貼吧等)已經(jīng)嚴重影響了校園的正常秩序以及交易效率?;贏ndroid框架的二手貨物交易客戶端具備電子商務(wù)平臺的優(yōu)點,賦予了傳統(tǒng)物品交易市場新的活力,有利于建立文明節(jié)約型的校園[2]。
通過調(diào)查分析高校二手市場的現(xiàn)狀,完成一個基于Android框架的校園二手市場App(移動客戶端)的開發(fā),旨在建立一個基于高校學(xué)生服務(wù)管理,并在此基礎(chǔ)上實現(xiàn)用戶的登錄注冊、評價收藏、分類瀏覽、一鍵發(fā)布等核心功能點。系統(tǒng)的目的是開發(fā)一個適合高校學(xué)生的校園二手市場移動客戶端。
2.1 國內(nèi)現(xiàn)狀
隨著時代發(fā)展和生活節(jié)奏的加快,人們?nèi)粘I钣闷犯聯(lián)Q代的速度也變快了。進而出現(xiàn)了大量閑置物品如書本、自行車、家用電器等,由此涌現(xiàn)出一批二手交易平臺如中國二手交易網(wǎng)、中國二手車交易網(wǎng)等。國內(nèi)比較出名的趕集網(wǎng),凡是想在網(wǎng)站買賣二手商品的人,只要在趕集網(wǎng)注冊成為用戶,找到或發(fā)布需要交易的商品,留下相應(yīng)的信息,買賣雙方取得聯(lián)系即可進行交易[3]。二十世紀初互聯(lián)網(wǎng)進入移動互聯(lián)網(wǎng)時代,多數(shù)人的目光聚焦在面向個人用戶的應(yīng)用上,移動客戶端App以其自身小巧、可便攜的特點展現(xiàn)出新的活力。國內(nèi)比較出名的二手商品移動客戶端“閑魚”,是隸屬于電子商務(wù)網(wǎng)站淘寶旗下的,用戶使用淘寶或支付寶賬戶登錄可達成一鍵轉(zhuǎn)賣個人淘寶賬號中“已買到寶貝”,依靠淘寶的流量資源面向全網(wǎng)的個人交易平臺。
二手商品App的發(fā)展勢頭一點都不比一般電子商務(wù)網(wǎng)站低,但二手商品有折舊率和破損率的問題,不能像新產(chǎn)品一樣標明產(chǎn)品性能,讓購買用戶能一眼看懂,所以驗證二手商品要比新產(chǎn)品困難得多,一般都是采取線下當面交易的方式,一般區(qū)域性的二手商品App比全國性的更有優(yōu)勢??偟膩碚f,二手商品App都在不斷發(fā)展,不斷完善。
2.2 國外現(xiàn)狀
國外最大的二手商品網(wǎng)站要追溯到1995年由Pierre Omidyar創(chuàng)立于美國加州的eBay(易貝網(wǎng))。從發(fā)展勢頭看,該網(wǎng)站擁有1.471億注冊用戶(來自全球29國家),每天的成交量達到幾百萬件之多,它是目前全球名副其實的電子集市。該網(wǎng)站上商品的分類特別豐富,大約有幾千個分類,像家具、科技產(chǎn)品、代步工具、服務(wù)、虛擬物品等均可以在eBay上被刊登出售??梢哉feBay顛覆了傳統(tǒng)的“跳蚤市場”模式,拉近了買家和賣家的距離,也提高了交易的效率。根據(jù)eBay財報,其在2014年的移動用戶占比達到50%,移動端業(yè)務(wù)交易量達到380億美元[5]。截至2015年,eBay移動應(yīng)用下載量已經(jīng)超過2.8億次。eBay移動客戶端以其自身小巧個性便攜的特點帶動用戶的大幅上升。
系統(tǒng)由兩部分組成:手機客戶端和后臺Bmob服務(wù)器端??蛻舳俗鳛樾畔⒄故竞徒换サ钠脚_,服務(wù)器端作為數(shù)據(jù)接收和業(yè)務(wù)處理的平臺。
3.1 Android應(yīng)用設(shè)計
基于Android平臺的軟件開發(fā)已經(jīng)成為智能移動開發(fā)的熱點,呈現(xiàn)持續(xù)強勁增長的姿態(tài)。本系統(tǒng)采用Android 4.3版本和Eclipse Platform 4.2.1工具開發(fā)。
客戶端設(shè)計采用MVC(Model-View-Controller)模式,對代碼進行分層。在View中展示Activity對用界面,采用XML語言進行描述;Model中采用Java語言負責數(shù)據(jù)的操作;Controller控制Model和View之間的流程的控制[6]。用戶可以通過移動設(shè)備查看所在校區(qū)附近的閑置物品發(fā)布情況,可獲得物品的圖片和描述,并能即時發(fā)送消息咨詢賣家.另一方面,作為賣家用戶可以發(fā)布買物需求,這是系統(tǒng)一大特色??蛻舳酥饕譃椤笆醉摗?、“分類”和“分享”三大功能模塊,系統(tǒng)功能模塊圖如圖1所示,基本實現(xiàn)了同校或不同校區(qū)物品交易系統(tǒng)的各個業(yè)務(wù)流程。
圖1 “校園跳蚤市場”App功能模塊圖
3.1.1 用戶界面的實現(xiàn)
在Android系統(tǒng)內(nèi),每一個界面都由一個Activity來承載,Activity既是一個類也是Android中的重要組件之一,Activity內(nèi)不僅展示頁面信息,還包括邏輯處理的過程[7]。二手商品市場的界面設(shè)計是整個軟件的基礎(chǔ),所有的業(yè)務(wù)操作都是在界面上完成的,實際開發(fā)中二手市場一共有九個界面,這些界面實現(xiàn)可以分為三類:一類是界面框架MainActivity,第二類是包括三個主要界面在內(nèi)的Adapter模式實現(xiàn),第三類是簡單界面實現(xiàn)。以下是這些界面的具體實現(xiàn)。
1) MainActivity的實現(xiàn)
主界面框架中實現(xiàn)了三個功能界面:“首頁”、“分類”和“分享”。為了讓界面更好地適配展示,Android在3.0版本開始引入Fragment(碎片)功能,它類似于Activity可以包含布局。Fragment被嵌套在Activity中使用,本系統(tǒng)的子場景包括“首頁”、“分類”和“分享”,這些子場景活動于主場景之中。根據(jù)用戶交互情況,可對fragment進行替換、添加、移除等其他動作[9]。在activity中使用fragment的一個很大的好處是:提交給activity的每一套動作被稱為一個事務(wù),是由FragmentTransaction中API來管理處理的。
MainActivity實現(xiàn)了fragment,在該框架中包含了“首頁”、“分類”、“分享”等三個界面,并通過getSupportFragmentManager().beginTransaction().add(R.id.content, fragments.get(currentIndex)).commitAllowingStateLoss()方法來切換不同的頁面。
2) 綁定Adapter界面的實現(xiàn)
需要這種實現(xiàn)的界面包括“一鍵購買HpBuyActivity”、“一鍵出售HpSellActivity”、“分類頁Clissify”三個頁面。這些頁面都有統(tǒng)一的需求:把從服務(wù)器獲取的應(yīng)用信息以列表或者其他形式展示到頁面上。對這種需求的實現(xiàn),就需要用到Adapter,實現(xiàn)數(shù)據(jù)源和界面的綁定。
Adapter可視為是數(shù)據(jù)源和用戶界面UI視圖之間的橋梁類,它負責創(chuàng)建子視圖,用來表示父視圖中的每一個條目,由此提供對底層數(shù)據(jù)的訪問。Adapter是Android系統(tǒng)下的一級接口,在很多情況下,根據(jù)界面需求的不同,需要繼承Adapter或其子接口來創(chuàng)建自己的實現(xiàn)類。另外,Adapter類具有通用性,對于具有相同需求的界面可以通用Adapter[11]。
3)其他簡單界面的實現(xiàn)
其他還有包括登錄、注冊、設(shè)置等幾個簡單界面的實現(xiàn),這些界面通過簡單的界面配置文件就可以輕松實現(xiàn)。
3.1.2 個人中心模塊實現(xiàn)
個人中心加入了SlideMenu(滑動側(cè)邊欄),而且支持點擊或手勢打開側(cè)邊欄。先給側(cè)滑菜單通過 setBehindContentView設(shè)置一個布局,此布局中只有一個FrameLayout,然后使用FragmentManager將Fragment替換掉此Fragment,這樣這個Fragment就作為側(cè)滑菜單的布局了,事件處理代碼也可以寫在Fragement中,而不是Activity中。左邊的側(cè)滑布局應(yīng)用了一個ListView,右邊的側(cè)滑菜單應(yīng)用了Fragment,加載了一個布局,最后是MainActivity,MainActivity繼承的是SlidingFragmentActivity,在Activity中FragmentPagerAdapter和ViewPager作為主布局,然后分別初始化SlidingMenu的兩邊的菜單[9]。
3.1.3 商品信息發(fā)布模塊實現(xiàn)
商品信息發(fā)布模塊作為系統(tǒng)的關(guān)鍵模塊,實現(xiàn)了用戶發(fā)布出售或求購信息的功能。具體細化此模塊的功能需求,體現(xiàn)在兩方面:一是實現(xiàn)用戶的一鍵快速發(fā)布,二是對用戶商品信息的多項錄入[10]。
商品買或賣發(fā)布模塊主要由“我的買”和“我的賣”組成,用戶可通過該界面輸入商品的詳細信息,并且可以通過上傳圖片按鈕上傳商品的圖片。在填寫信息中,可通過下拉菜單選擇類別,并且添加商品描述和個人聯(lián)系信息。最后點擊發(fā)送按鈕,用戶可以將輸入的商品信息上傳到系統(tǒng)中。對于上傳圖片功能,用戶也有兩種選擇,可以直接通過獲取相冊中的圖片上傳,也可以通過手機攝像頭拍照來獲取,獲取圖片成功后,用戶可以通過應(yīng)用中的截圖工具截取想要上傳的部分,最后點擊發(fā)送即可。
3.1.4 商品分類瀏覽模塊實現(xiàn)
商品分類瀏覽模塊主要包含“商品分類”和“商品推薦”兩大功能,用戶可以直接點擊底部導(dǎo)航條上的商品Tab鍵進入商品瀏覽模塊。在商品瀏覽模塊用戶可以瀏覽商品類別列表,通過選擇類別來進入相應(yīng)類別的商品列表可通過下方的“今日推薦”快速進入商品列表(包含了商品名、商品價格以及用戶電話和用戶所在地區(qū)等),如需查看商品的詳細信息,可以點擊具體商品,進入詳細信息瀏覽界面。在商品信息瀏覽界面可以看到用戶上傳的商品圖片以及商品的詳細描述,用戶可以收藏感興趣的商品或者進一步交易。
功能實現(xiàn)方面主要分三步:
1) 首先用戶點擊分類頁中的“下載”按鈕,Onclick方法獲得響應(yīng)事件,每一個按鈕監(jiān)聽事件就是對同一屬性物品的集合。
2) 然后向服務(wù)器Bmob發(fā)送不同請求,收到回應(yīng)后,把回應(yīng)的信息返回到界面適配器Adapter中。
3) 最后返回到界面上。將Http請求前和返回的數(shù)據(jù)進行數(shù)據(jù)預(yù)處理,數(shù)據(jù)形式設(shè)置為鍵值對形式。其中,Http請求前數(shù)據(jù)用BasicNameValuePair把傳遞的參數(shù)以鍵值對形式存入[9]。發(fā)出請求后,Http返回JSON格式數(shù)據(jù),根據(jù)返回的JSON形式,進行不同方式的數(shù)據(jù)解析。
3.2 云端數(shù)據(jù)設(shè)計
在“移動跳蚤市場”App中,需要和數(shù)據(jù)庫打交道的,都交給Bmob后臺管理系統(tǒng)操作處理。Bmob可以開發(fā)一個云存儲的移動應(yīng)用客戶端,給客戶端添加一個安全靈活的后臺管理系統(tǒng),方便瀏覽終端保存的各種數(shù)據(jù)和信息。在Bmob平臺上,首先需要注冊一個帳號,然后申請創(chuàng)建多個數(shù)據(jù)庫,獲得對應(yīng)的Key,下載對應(yīng)版本的SDK,并將其下載嵌入到移動客戶端中,便可以調(diào)用存取API,進行數(shù)據(jù)的操作。Bmob在將組織后的數(shù)據(jù),再經(jīng)過其封裝方法返回給平臺顯示。采用了Bmob移動云服務(wù)后臺是因為它提供多樣化接口,在項目中加入jar包就可以直接調(diào)用其方法進行后臺數(shù)據(jù)的處理,大大簡化了開發(fā)步驟。
首先,根據(jù)下面的代碼步驟,連接Bmob后臺數(shù)據(jù)庫,獲取數(shù)據(jù)。
Bmob.initialize(this, "1582853e72463c1400 cfdb9ca841a616");
List
fragments.add(new HP()); //
fragments.add(new Classify());//
fragments.add(new Share());// getSupportFragmentManager().beginTransaction()
.add(R.id.content,fragments.get(currentIndex)).commitAllowingStateLoss();
然后,在這個數(shù)據(jù)列表的里面添加如下代碼。
listviewpsellv.setOnItemClickListener(this)
sJBeenAdapter = new QuickAdapter
R.layout.tall_item) {
protected void convert(BaseAdapterHelper helper, SJBeen sjbeen) {
helper.setText(R.id.username, sjbeen.getUsername()).setText(R.id.usertime, sjbeen.getCreatedAt()).setText(R.id.describle, sjbeen.getDescribe());
其中,sJBeenAdapter是發(fā)布信息列表listview的適配器,將發(fā)布信息的屬性對應(yīng)到適配器里面。
最后,啟動listview。
sJBeenAdapter.addAll(sjBeens);
hpselllv.setAdapter(sJBeenAdapter);
將程序打包后,安裝到Android手機中。點擊“校園跳蚤市場”App啟動,用戶注冊登錄后發(fā)表商品信息截圖如圖2所示。客戶端可以接收到商品發(fā)布信息并表現(xiàn)穩(wěn)定,商品模塊可以滿足“校園跳蚤市場”App用戶對商品發(fā)布的需求。
圖2 商品發(fā)布測試截圖
商品游覽分類模塊(如圖3所示)實現(xiàn)了商品管理功能,用戶點擊不同的分類可以快速獲取相應(yīng)的商品信息。該模塊響應(yīng)用戶的不同輸入和點擊,而且可以根據(jù)UI事件的不同向服務(wù)器發(fā)送不同的操作請求。
測試同時查看了Bmob后臺管理系統(tǒng),并對用戶注冊信息數(shù)據(jù)進行了測試,Bmob表現(xiàn)良好,將用戶不同的信息錄入對應(yīng)數(shù)據(jù)表,且提取數(shù)據(jù)及時。
圖3 分類瀏覽模塊測試截圖
隨著“校園跳蚤市場”App的版本和渠道越來越多,本系統(tǒng)需要支持的用戶數(shù)量也會越來越多,因此,服務(wù)器端的適配工作量只會越來越多。根據(jù)“校園跳蚤市場”App的實際情況,提出一些需要進一步研究的問題,以及未來可以開展的工作,以不斷改進本App。本文進行了App的初步設(shè)計及開發(fā),下一步將繼續(xù)完善,例如界面美化、版本兼容性等。
[1] 吳菊熘,吳茂雪,呂方圓.基于PHP的校園二手商品交易平臺的設(shè)計與開發(fā)[J].科技資訊,2014,12(13):33-34. WU Juliu, WU Maoxue, LV Fangyuan. Design and Development of PHP Campus Second-hand Commodity Trading Platform[J]. Science & Technology Information,2014,12(13):33-34.
[2] 屠曉云.二手物品交易平臺的設(shè)計及實現(xiàn)[J].福建電腦,2011,27(8):115-116. TU Xiaoyun. Design and Implementation of the Trading Platform for Secondhand Goods [J]. Fujian Computer,2011,27(8):115-116.
[3] 葉莖,何瓊.基于ASP.NET的網(wǎng)上二手交易平臺的設(shè)計[J].電腦知識與技術(shù),2010,6(5):1144-1145. YE Jing, He Qiong. The Design and Realization of the Online Second-hand Goods Trading Platform Based on ASP.NET[J]. Computer Knowledge and Technology,2010,6(5):1144-1145.
[4] 柳進軍.“由樂而生”的創(chuàng)新創(chuàng)業(yè)[J].中關(guān)村,2014(7):89-89. LIU Jinjun. “Born from hAppiness” Innovation and Entrepreneurship [J]. Zhongguan Village,2014(7):89-89.
[5] 楊振偉.B to C模式下的網(wǎng)絡(luò)營銷價格比較分析[J].河北旅游職業(yè)學(xué)院學(xué)報,2009,14(2):65-68. YANG Zhenwei. Comparative Analysis of Network Marketing Price Under B2C model[J]. Journal of Heibei Tourism Vocational College,2009,14(2):65-68.
[6] 吳軼群,朱亞東,王明敏.基于Android平臺的多屏互動系統(tǒng)設(shè)計[J].計算機應(yīng)用與軟件,2014(10):234-238. WU Yiqun, ZHU Yadong, WANG Mingmin. Android-Based Multi-Screen Interactive System Design[J]. Computer Application and Software,2014(10):234-238.
[7] 金泰延,武傳海.Android框架揭秘[M].北京:人民郵電出版社,2012. JIN Taiyan, WU Chuanhai. Android Framework Secret [M]. Beijing: People’s Posts and Telecommunications Press,2012.
[8] 潘曉東,費軍,張益明.基于安卓終端的呼叫系統(tǒng)設(shè)計與應(yīng)用[J].醫(yī)療衛(wèi)生裝備,2014,35(11):52-53,88. PAN Xiaodong, FEI Jun, ZHANG Yiming. Design and Application of Calling System Based on Android Terminal[J]. Chines Medical Equipment Journal,2014,35(11):52-53,88.
[9] 徐劍,武爽,孫琦,等.面向Android應(yīng)用程序的代碼保護方法研究[J].信息網(wǎng)絡(luò)安全,2014(10):11-17. XU Jian, WU Shuang, SUN Qi, et al. Research on Code Protection Method for Android Applications[J]. NetInfo Security,2014(10):11-17.
[10] Xin Chen,Songwei Ma,Bingli Guo,YanWang,Juhao Li, Zhangyuan Chen,Yongqi He. A novel fragmentation-aware spectrum allocation algorithm in flexible bandwidth optical networks[J]. Optical Switching and Networking,2014(12):6-22.
[11] 苗忠良.深入Android應(yīng)用開發(fā):核心技術(shù)解析與最佳實踐[M].北京:機械工業(yè)出版社,2013. MIAO Zhongliang. Android application development: core technology in-depth analysis and best practice [M]. Beijing: Mechanical Industry Press,2013.
“Campus Flea Market” Mobile Terminal App Based on Android
REN Peihua XUAN Yuru
(School of Math and Computer Science, Datong University, Datong 037009)
The paper analyzes the current situation of the secondary market, researchs the functional requirements of the secondary trading platform for college students. Product display and recommendation function are extracted mainly. Combined with strong sense of using smartphones and online shopping awareness for the college students, the traditional campus flea market is migrated to the mobile internet, and the planning and design of the overall system construct a service in the student's campus flea market mobile terminal App. The system uses Eclipse as the operating platform, and uses Java development language, the Android framework based on Java, Bmob background management database and so on. It Implements user login and registration, user commodity information, commodity information page display, commodity classification browsing, administrator background management functions.
campus flea market, Android, App
2016年5月11日,
2016年6月28日
2015年山西省高等學(xué)校大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目“‘校園跳蚤市場’移動端APP的設(shè)計與開發(fā)”(編號:2015345);山西省教育科學(xué)“十二五”規(guī)劃項目“以專業(yè)應(yīng)用為導(dǎo)向,在計算機公共教學(xué)改革中,實施大學(xué)生創(chuàng)新能力的培養(yǎng)”(編號:GH-13087)資助。
任培花,女,碩士研究生,副教授,研究方向:數(shù)據(jù)挖掘、軟件技術(shù)。宣昱如,女,助教,研究方向:軟件技術(shù)。
F713.5
10.3969/j.issn.1672-9722.2016.11.037