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