徐亞飛,劉璇,劉雯,劉丹丹,張梁政,康海燕
(北京信息科技大學,北京,100089)
在我國鄉(xiāng)村振興戰(zhàn)略的背景下,移動互聯(lián)技術有效促進了農業(yè)的快速發(fā)展[1],農產品的線上銷售占比也日益增多,從以往的實體銷售逐漸向互聯(lián)網(wǎng)銷售的方向不斷發(fā)展。何沛認為Android 平臺開發(fā)的軟件實質是基于Linux 開發(fā)的C/C++語言編程開發(fā), 采用虛擬機運行機制, Android 平臺上運行的軟件程序都是Java 編寫的,為農產品銷售網(wǎng)站的建設提供了技術參考資料。[2]余璇、戴丹認為農產品銷售的手機App 軟件是符合時代發(fā)展的潮流,能在一定的程度上依托農產品的地域性優(yōu)勢,更好優(yōu)化整合農產品資源,在保證產品質量,新鮮度的情況下,實現(xiàn)更好的銷量。[3]以上平臺都為農產品銷售提供了技術支持和運用思路,能夠在根本上解決農產品銷售難的問題,但是在平臺引流和公益性方面存在不足之處。因此,為了更好的拓展農產品的銷售渠道,鵝大俠農產品公益平臺能夠緩解農戶低收入問題,帶動農戶的積極性,使農產品質量更有保障。基于多種框架的鵝大俠農產品公益平臺Android 端的研究與設計,為本項目的落地實施提供了技術支持和保障。
鵝大俠農產品公益平臺的后臺應用Struts2 和Spring框架設計,分為農戶端、玩家端和合作端口、。農戶可通過注冊并認證農戶專屬賬號,在平臺上上傳產品信息進行宣傳,玩家可在平臺上直接購買產品。玩家可以通過鵝大俠公益平臺直接購買產品或通過積攢貨幣在平臺兌換產品,玩家下單后,由農戶內部人員指導與快遞公司合作,物流送貨至玩家手中。由于本平臺為公益平臺,玩家可以提出捐款意向,捐款到平臺的資金。平臺所得的投資資金、盈利資金等收入全部用于幫助農戶銷售農產品,開拓市場渠道,擴大平臺影響力,并將部分結余捐款到慈善機構、,形成一個合理的平臺運營閉環(huán)。
根據(jù)現(xiàn)階段互聯(lián)網(wǎng)技術的發(fā)展趨勢和用戶的使用習慣,鵝大俠農產品公益平臺提供電腦網(wǎng)頁、手機網(wǎng)頁、App、小程序等多種訪問形式。由于手機網(wǎng)頁和小程序具有無需下載安裝,不占存儲空間等優(yōu)點,更容易獲得用戶的青睞。但其不能記錄用戶的登錄狀態(tài),用戶在每次打開網(wǎng)頁或者小程序時,都需要重新登錄,為用戶的使用帶來了不便。Android 手機目前市場占有率最高,手機使用頻率高,時間長。因此,一款基于Android 的App 仍然是一個應用系統(tǒng)的必備用戶訪問方式。
在Android 端主要供玩家端(農產品購買者)使用,主要功能分為個人中心、購物管理和商品瀏覽。個人管理模塊主要包含用戶的登錄和退出,查看個人購物和瀏覽信息,修改賬戶密碼,添加和刪除收貨地址等功能。購物管理模塊包含支付管理、訂單管理、添加商品到購物車等功能。商品瀏覽模塊主要包含商品分類查詢、首頁、商品詳情展示、商品列表等功能。另外,玩家可以通過參加平臺活動,玩游戲,領紅包,捐贈等方式豐富用戶使用體驗。
鵝大俠農產品公益平臺的架構設計分為產品模型層、接口設計層、核心功能層和用戶界面層。模型層可以封裝所有的模型實體類。 JSON 對象作為一個android 應用程序與系統(tǒng)服務器和終端用戶交換系統(tǒng)數(shù)據(jù)的主要格式,一個android 應用程序運行中我們需要將其進行轉換后成為一個java 中的對象,轉換過程比較復雜,流程煩瑣,轉換數(shù)據(jù)過程比較復雜,流程比較煩瑣,因此我們可通過運用新的數(shù)據(jù)格式解析系統(tǒng)框架可以簡化轉換步驟,提高效率。在接口管理層完成Android 程序需要調用控制服務器網(wǎng)絡提供的接口API,需要通過控制機器網(wǎng)絡的端口訪問與控制服務器的網(wǎng)絡連接。在業(yè)務核心層在用戶接口管理層和用戶界面管理層之間,負責共同處理整個業(yè)務層的邏輯。界面展示層主要用于負責向用戶展示各類商品,提供用戶操作交互的窗口。為了大大提高效率,構建統(tǒng)一的設計界面風格,采用 Fragment 類和Activity 這兩類相互結合的設計方式進行設計即可完成。
HttpURLConnection 和HttpClient 作為常用的兩種數(shù)據(jù)交互方法,能夠實現(xiàn)Android 端與服務器之間的頻繁的數(shù)據(jù)交互。然而,其封裝如果不當,難免會出現(xiàn)代碼重復的現(xiàn)象,使用起來較為復雜且使得應用程序的穩(wěn)定性降低。因此,Volley,Retrofit,OKHttp 等網(wǎng)絡通訊框架的應用也較為廣泛[6]。Volley 適用于數(shù)據(jù)量小且通訊頻繁的網(wǎng)絡操作,是谷歌推出的圖片加載和異步網(wǎng)絡請求框架。Retrofit功能強大,性能高,但需要再次封裝且難度較大。OkHttp 作為一項高性能 http 請求開源庫,則使用較為復雜。[4]考慮到鵝大俠農產品公益平臺數(shù)據(jù)量不大,體量較小,因此選用Volley 框架完成網(wǎng)絡層的網(wǎng)絡通信工作。
本操作系統(tǒng)主要采用網(wǎng)絡服務器/網(wǎng)絡客戶端的網(wǎng)絡結構,服務器與網(wǎng)絡客戶端之間需要頻繁交互傳輸數(shù)據(jù),因此傳輸載體需要滿足安全性高,數(shù)據(jù)量較小,通用等特點[5]。JSON 具有安全性高,響應快速,通用性好和數(shù)據(jù)通信量小等優(yōu)點,但在Android 應用程序與服務器進行數(shù)據(jù)交互的過程中,需要將JSON 格式與Java 對象進行轉換,轉換過程較為復雜和繁瑣。[6]Gson 作為JSON 數(shù)據(jù)解析的開源庫,能夠便捷的進行數(shù)據(jù)JSON 格式化,封裝性非常好,操作簡便,效率更高,因此本項目選擇Gson 框架進行數(shù)據(jù)轉換。
平臺首頁需要同時展示較多的商品圖片,圖片展示需要同時占用較多的網(wǎng)絡內存。當手機用戶在網(wǎng)上瀏覽手機商品展示頁面時,通常可能會出現(xiàn)需要快速才能展示大量商品圖片,直接無法訪問這些圖片將可能會直接導致卡頓,用戶瀏覽體驗不佳,甚至可能出現(xiàn)手機內存大量溢出。在我的android 中發(fā)現(xiàn)有許多優(yōu)秀的圖片開發(fā)軟件框架,它們能夠有效的封裝了較好的緩存算法和文件緩存處理策略,可以有效解決各種企業(yè)圖片文件加載過慢引起的緩存問題,比較常見的企業(yè)圖像圖片處理開發(fā)框架主要有:Android Universal Image Loader 能夠有效加載緩存和圖片,但作為已經(jīng)停止更新的數(shù)據(jù)庫,已不適合使用[7]。Pi-casso 作為圖片下載和緩存的框架,使用較為廣泛。Fresco 作為Facebook所使用的圖片處理框架,功能強大,能夠實現(xiàn)三級緩存。鵝大俠農產品公益平臺的框架需要緩存和下載大量圖片,且各類農產品的圖片大小和分辨率等信息各不相同,因而,F(xiàn)resco框架更適合大量圖片的快速加載和緩存。另外,F(xiàn)resco 中的Drawees 模塊,能夠在一個圖片文件加載工作完成前,自動顯示目標占位效果圖,加載成功后自動進行替換它成為一個目標占位圖片。當這些圖片不再正常顯示在電腦屏幕上時,它們就會及時地自動釋放并使內存和存儲空間不被占用。
在Android 應用程序的設計開發(fā)中,出現(xiàn)了許多優(yōu)秀的應用開源開發(fā)框架,利用這些開源框架我們可以有效地幫助提高效率,簡化開發(fā)步驟,獲得較高的開發(fā)性能。本項目是一個農產品公益銷售平臺,需要頻繁與服務器進行數(shù)據(jù)交互,需要同時加載大量的視頻和圖片。根據(jù)鵝大俠農產品公益項目的自身特點,在網(wǎng)絡整體架構設計上項目采用了Volley 框架有效實現(xiàn)了網(wǎng)絡通信數(shù)據(jù)的訪問,采用Gson 框架有效簡化 JSON 與 Java 兩個對象的數(shù)據(jù)轉換,采用Fresco 框架有效實現(xiàn)下載和管理緩存網(wǎng)絡圖片。這樣的系統(tǒng)架構設計方案能夠有效率地提高系統(tǒng)的運行效率,簡化系統(tǒng)開發(fā)的操作過程,具備較好的系統(tǒng)可用性和改善用戶操作體驗性。