周建華 劉佳文 蔡文靜 金德星 唐銘澤



摘 ?要: 針對貧困山區農產品銷路不暢及消費者不能及時獲悉并購買新鮮綠色的農副產品等問題,設計并實現了基于安卓及JSON的“友農”手機APP。系統后臺集群部署SLB負載均衡器、SCS安全認證系統和MYSQL庫服務器,負載均衡采用Tomcat和Nginx代理服務器的混合模式,Tomcat用JSON格式數據解析,系統前端采用HTTP協議進行服務器通信,通過JSONDUMP進行JSON格式數據解析,設計圖形控件進行數據的可視化展示。該系統的運行大大提高了山區農產品銷售效率和消費者滿意度,創新了精準扶貧模式。
關鍵詞: Android; MVP模式; Tomcat; JSON
中圖分類號:TP391.4 ? ? ? ? ?文獻標識碼:A ? ? 文章編號:1006-8228(2020)03-40-04
Design and implementation of "You Nong" APP based on Android and JSON
Zhou Jianhua, Liu Jiawen, Cai Wenjing, Jin Dexing, Tang Mingze
(Hunan Police Academy, Changsha, Hunan 410138, China)
Abstract: In response to the problem of poor sales of agricultural products in poor mountainous areas and the inability of consumers to timely learn and purchase fresh green agricultural and sideline products, the "You Nong" mobile APP based on Android and JSON (JavaScript Object Notation) technology was designed and implemented. The system's background cluster is deployed with SLB load balance server, SCS security authentication system and MYSQL database server. The load balancing adopts the mixed mode of Tomcat and NGINX proxy server. Tomcat uses JSON format data parsing. The system front end adopts HTTP protocol for server communication, JSONDUMP analyzes the JSON format data, and designed graphic controls to display the data visualized. The operation of the system has greatly improved the sales efficiency and consumer satisfaction of agricultural products in mountainous areas, and innovated the model of precise poverty alleviation.
Key words: Android; MVP mode; Tomcat; JSON
0 引言
2013年習近平總書記到湖南省湘西州十八洞村考察時首次提出了“精準扶貧”重要指示,為幫助貧困山區農民解決農產品滯銷和客戶采購放心高效等問題,設計并實現“友農”APP農產品商城,其主要功能包括農產品的分類,展示、檢索、購物車功能、付款功能、聯盟商戶功能。農產品在線購物系統“友農”APP,是電子商務和02O緊密結合的產物。傳統的基于PC的在線購物系統無法隨時隨地查看農產品的價格,也無法找到該地區最近的零售商。使用最新的Google的Android7.1技術,采用AES算法的加密技術,MySQL數據庫和其他中間件技術相集成來實現數據的存儲[1],并結合MVP設計模式進行系統開發與實現。
1 系統架構分析
1.1 開發環境
Android系統是基于Linux系統的流程控制策略來控制移動端設備[2],該系統采用分層次架構模式,按照上至下分為四層軟件的應用層、軟件應用框架層、系統的運行庫層和Linux系統的內核層。應用程序框架層包括Activity Manager、窗口管理(Window Manager)、內容提供者(Content Provider)、視圖系統(View System)、通知管理(Notification Manager)、包管理(Package Manager)等多個管理器。擁有多個視圖(View)控件,主要包括文本控件(TextView),編輯控件(EditText),按鈕(Button)等。Android系統運行庫基本上都是C/C++的Google官方的開源庫,提供四大核心組件活動(Activity),服務(Service),廣播接收者(Broadcast Receive),內容提供者(Content Provider),Android上層的庫,都是運行在Java的JVM虛擬機上的,開發環境為 Java 1.8 SDK和ADT。
1.2 整體架構
“友農”APP的總體架構如圖1所示,使用耦合度比較高的的MVP的框架的模式[3],其中服務器端使用LVS+DR的負載均衡器、MySQL 5.7服務器、Tomcat響應服務器,Tomcat是利用JSON格式的數據利用Retrofit第三方的網絡庫進行HTTP請求的解析,客戶端利用ISP提供的網絡利用HTTP協議進行服務器的通信,客戶端收到服務器發送的JSON數據包,然后通過Jsondump進行JSON格式的解析[4],得到相應的數據,然后通過Android控件進行數據的展示。“友農”賣家版通過發布新的農產品,并提交給云端的服務器,服務器將對應的數據存放到MySQL服務器中,“友農”買家版通過請求服務器來刷新數據,這樣,就進行了數據的交換。
1.3 系統功能
系統用戶的功能包括用戶登錄和注冊功能,產品瀏覽功能(包括農產品詳細信息頁面,推薦農產品頁面,分類農產品頁面),產品搜索功能(包括文本搜索),購物車功能,定位功能(通過定位附近的商家,自定義搜索業務信息,瀏覽詳細信息頁面,自定義目標區域功能等),付款功能(包括支付寶付款和微信支付),個人中心管理功能(個人信息修改,個人收藏展示,編輯收貨地址,用戶訂單和物流信息的查詢,客戶端版本的迭代更新)。著重介紹農產品展示和搜索的功能,農產品購物車功能,支付功能,用戶中心功能等。系統功能圖如圖2所示,圖3、圖4分別為APP啟動首頁及推薦供應界面圖。
2 系統關鍵模塊
2.1 商品瀏覽檢索模塊設計
用戶必須按照以下方式搜索和檢索商品[5]。用戶登錄均具有搜索農產品的權限。如果用戶允許打開定位服務,農產品將顯示常駐商人出售的產品,根據不同的用戶和其地理位置來推薦平臺特色的農產品產品和農產品分類產品。這個APP的首頁頂部一欄是促銷項目,底部是附近最近的精選農產品和促銷的農產品的活動,分類后的農產品在獨立的APP界面中展示。如果用戶不授權定位權限,則根據用戶搜索的歷史記錄來進行商品的推薦。如果用戶的搜索記錄為空,APP就請求平臺vip商鋪的的農產品的信息。農產品的屬性包括農產品的圖片,產品名稱,產品價格(新價格,當前價格,換購價格)。分類商品:新鮮蔬菜、肉類生鮮、家禽蛋類、新鮮水果、五谷雜糧、當地特產。為了增加廣告位,在首頁頂部以輪播圖的形式展示促銷產品。當前,僅顯示三個產品圖像,并根據在后臺配置的優先級顯示優先級:單擊促銷項目后,用戶直接跳至相應產品的詳細頁面。點擊加載農產品的詳情頁,顯示頁面的內容包含農產品的圖片,農產品的名稱,農產品的賣家店鋪,農產品的價格,愛心收藏模塊的按鈕,分享農產品到朋友圈、QQ、支付寶等功能,有加入商品到購物車的功能,農產品的詳細介紹和農產品的屬性等關鍵信息。
2.2 購物車模塊設計
購物車功能模塊的需求分析:添加農產品到購物車,實現統一的結賬和管理的操作,用戶必須在登錄狀態才能加入購物車,否轉跳轉至登錄/注冊頁面。用戶登錄時APP就會通過HTTP請求服務器返回購物車的數據。當用戶添加購物車的時候請求服務器將該農產品的信息存儲到MySQL服務器中,當用戶點擊APP底部的“購物車”的Tab的時候,數據從云端加載出用戶所有的購物車的農產品的信息,包括圖片、名稱、數量,單價或者總價,當用戶點擊進入購物車模塊界面時,所購買產品的數量是可以改變的,并且最大的購買數量不能超過庫存的數量。如果農產品已經銷售完了,即沒有庫存了,這是就將該農產品在購物車中刪除,還可以執行多個刪除功能。用戶處理購物車貨物,當單擊購物車列表中的一個項目時,將跳到相應的項目詳細信息頁面。在購物車界面中,通過“編輯”按鈕可方便進行批處理操作,下方顯示已購買商品的總金額,而計費按鈕位于右下角。點擊付款并進行支付過戶,就將該農產品在購物車中刪除。還可以通過農產品比較詳細的信息界面底端的一個工具欄來進入購物車的界面。用戶可以在一個或多個特定商店中購買多個商品,因此應在購物車列表中按產品的產品將其分類,并且將以相同的順序顯示同一商店,訂購后添加商品。
2.3 支付模塊設計
當用戶進入購物車模塊并支付時,將集成支付寶支付和微信支付。用戶單擊付款并跳至付款頁面。整個頁面分為兩部分。用戶必須根據情況輸入兩個主要信息。有兩個選擇:第一個是通過快遞配送接收貨物,以便用戶在直接進入離線商店時可以根據產品屬性輸入交貨地址和收件人(姓名和聯系電話)。在支付完成后,APP客戶端展示在用戶個人管理中心的訂單信息。工具欄顯示有“付款金額”狀態,其中顯示諸如總用量之類的信息。如果單擊底部狀態欄中的“付款”按鈕,將被重定向到相應的收銀機。選擇積分支付后,系統跳至積分支付界面,系統提示用戶輸入默認的支付密碼(可以在個人中心設置)。輸入字段的實際內容從外部隱藏。當支付完成后,系統提示支付成功,并且將剛才形成的農產品的訂單異步上傳到服務器里的MySQL中,并且同步用戶自己的購物車信息,然后返回到首頁。由于支付過程和農產品的訂單內容是用戶的隱私和保密的信息,所以在客戶端和服務器之間的通信就必須經過加密來保證,使用AES加密算法對比較重要的數據進行加密,以保證用戶數據的私密性和安全性,涉及到金錢交易的數據必須使用AES進行二次的加密處理,確保數據的安全性[6]。
2.4 聯盟商家模塊設計
聯盟商家是指,與“友農”APP建立合作關系的農產品經銷商。由于合作伙伴商家具有區域屬性,因此有必要在訪問聯屬公司的主頁之前找到并檢索用戶當前的經緯度。安聯經銷商的特殊需求分析如下。從商人那里進入聯盟家,讀取后臺位置功能,由用戶推薦當前位置,為用戶提供接近聯盟商戶信息,如果用戶不允許開啟定位,則推薦定位您打開顯示提示。瀏覽業務信息,包括推薦的零售商和分類商店。其中推薦農產品的算法主要考慮用戶評價和距離兩個方面因素。根據每個商戶賣的不同特色農產品來進行推送,根據用戶的評價來進行排名。用戶在篩選中可以按類別來篩選出商鋪。在商鋪平臺進行分門別類包括水果商品,特產商鋪,蔬菜商鋪,肉類商鋪等。每個商鋪都有按不同的標簽進行分類來進行推薦。APP的分類算法就是根據AI識圖的方法進行農產品的識別,并進行商鋪的分類。在APP的商鋪列表中展示包括農產品的信息,農產品的圖片,農產品的名稱,商鋪的類型,商鋪的評分等。
2.5 個人中心模塊設計
個人中心包括用戶的基本操作,基本信息的修改,收貨地址的編輯,APP版本迭代更新,用戶的反饋與意見,應用程序啟動,訂單明細以及物流信息檢索,個人收藏。由于具有許多功能,本節著重于詳細分析訂單詳細信息和物流信息檢索功能,顯示個人收款功能以及接收地址管理功能。在農產品的訂單狀態頁面包含已付款,待付款,待發貨三種狀態。根據上門的三種狀態對用戶的訂單列表進行篩選。用戶自己的訂單就會展示在APP訂單詳情頁上面。個人中心提供物流信息跟蹤,可查詢出發的地方,途徑的地方,送貨小哥名字和電話號碼,最后送到哪里。當用戶點擊收藏夾,即展示收藏夾列表中的內容。用戶可以在多個Activity之間切換。搜索收藏夾的內容時,提供的是模糊查詢的功能,通過HTTP的請求服務器,服務器通過MySQL的查詢引擎查詢出記錄,并通過數據包的方式發送給客戶端,客戶端再進行解析,得到可視化的數據展示。
3 安全加密算法實現
“友農”APP在登錄和注冊全部都通過AES+APP口令加密算法進行加密,相比傳統的只通過AES加密的方法更加的安全,注冊和登錄時對密碼進行AES+APP口令算法加密,APP口令是APP內部定義的一串密碼。AES加密算法的安全性比較高,再加上 AES+APP口令加密算法即使破解出也無法直接得到明文,必須要知道APP口令解密才能得到明文,所以即使有黑客入侵,它所花的時間大于密碼的有限期,從而確保了用戶帳戶的安全性[7]。為了使“友農”APP得代碼更規范,將AES+APP口令算法的進行封裝,如圖5所示。
4 結束語
“友農”APP為響應國家精準扶貧政策,幫助解決農產品滯銷,用戶買不到好的農產品等問題,設計并開發了基于Android的“友農”APP。設計了農產品分類,展示、檢索和購物車等模塊。系統對負載均衡、安全認證等問題做了創新設計部署,在處理性能上,大大提高了可靠性和高效性,系統運行一段時間以來,大大提高了山區農產品銷售效率和供求雙方的滿意度,創新了精準扶貧模式。
參考文獻(References):
[1] 陳飛,羅文廣.基于Android 的智能交互APP設計[J].廣西科技大學學報,2017.28(2):29-41
[2] 楊涵.基于移動應用的快消品銷售管理系統的設計與實現[D].山東大學碩士學位論文,2018:51-68
[3] Feiyue Li,Bruce Golden,Edward Wasil.A record-to-recordtravel algorithm for solving the heterogeneous fleet vehicle routing problem[J]. Computers and Operations Research,2015.9:121-143
[4] 周建華,龍苗苗,蔡婧雯,陳彥羽,李歡歡.基于Android手機的校園訂餐APP的設計與實現[J].計算機時代,2017.28(7):34-37
[5] 韓瑞東.基于Android的運城“智慧旅游”手機APP應用開發[J].計算機時代,2016.11:44-47
[6] 周建華,蔡婧雯,雷云智.基于Android的二維碼課堂點名系統關鍵技術研究[J].福建電腦,2018.25(2):25-26
[7] 賴海,超張君,朱晨鳴.移動APP安全及檢測體系分析[J].計算機時代,2018.1:27-29