山西農業大學軟件學院 楊 凡
基于Android的菜譜APP設計與實現
山西農業大學軟件學院 楊 凡
菜譜APP是基于Android平臺,采用java程序設計語言以及servlet等技術編寫的項目,本文從該APP的開發與實現角度,對其進行展開描述。
Android;Java;客戶端/服務器
在我國,飲食文化博大精深,自古以來,我國便有著“民以食為天”的理念。由于地大物博,中國在歷史上形成了不同菜系不同口味的美食,它們做法各異卻都深受喜愛。移動互聯飛速發展的今天,“互聯網+”為我們提供了廣闊平臺,結合大眾對美食的執念,菜譜APP應運而生。
(1)該項目使用Android集成開發平臺ADT Bundle,它不需要用戶在原有的eclipse上配置安卓環境,它是一個裝有ADT插件的Eclipse集成環境,并具備Android SDK的核心功能。
(2)該項目采用Java語言進行編寫,它是一種面向對象程序設計語言,具有平臺無關性、健壯性、簡單安全等特點。
(3)json解析是跨平臺數據格式轉換的一個橋梁,服務器端將特定的數據類型轉換為json字符串 ,客戶端將json字符串轉換成原來的類型。Json使用冒號進行賦值,每一條賦值語句用逗號分開,整個對象用大括號封裝起來,可用大括號分級嵌套數據。使用起來十分方便。
創建數據庫表recipe_table,其中包括4個字段: id,name,material,method,它們分別代表菜名、原材料和制作方法。id是該表的主鍵,int類型,不允許空值;其余的字段都為varchar類型。

圖1 數據庫表圖
該項目使用ADT自帶的界面編輯工具,創建布局文件。
界面主要包括:首頁,添加界面,搜索界面,顯示界面。

圖2 工程目錄圖

圖3 工程界面
3.1.1 添加菜譜
添加菜譜功能是將一道菜的名字,材料以及制作方法添加到數據庫中。首先,創建布局文件activity_add_recipe.xml,先拖入一個線性布局,再分別添加三個EditText和一個Button按鈕,在三個Edit-Text中用戶可以用來輸入菜名、原材料以及制作方法,button按鈕是用來點擊保存該菜譜。其次,在AddRecipeActivity.java中將控件實例化,并通過findViewById找到該控件,之后再為它們設置相應地寫入方法和點擊響應事件。
3.1.2 顯示菜譜
創建布局文件activity_show_local.xml,添加ListView控件。在ShowLocalActivity.java中重寫onCreate()方法,實例化適配器控件,從數據庫中獲取數據,創建萬能適配器并將三者聯系起來,當用戶點擊列表項后能夠跳轉到菜譜詳情界面。
3.1.3 搜索菜譜
創建布局文件activity_search_result.xml,添加EditText和Button以及ListView,在SearchResultActivity.java中點擊搜索按鈕后判斷有無此菜譜,失敗提示“沒有查找到本地菜譜”,成功后點擊菜譜跳轉到菜譜界面。
3.1.4 首界面:動態廣告牌
首頁使用Handler機制來實現菜品滾動播放。廣告牌每兩秒更新一次,由于子線程不能對UI進行更新,因此使用Handler機制將消息發送到主線程中。子線程中發送消息使用方法handler.sendMassage(msg),主線程中用Handler對象中的handleMessage()方法接收消息并對UI更新。原理如圖4所示:

圖4 handler機制圖
如圖5所示,瀏覽器通過get或post方式發送請求,服務器端獲取請求的關鍵字,在數據庫中進行查詢,將查詢到的結果進行封裝,之后將該結果發送響應給客戶端。response接受響應并對封裝的數據進行解封裝操作,然后顯示具體的菜譜信息到客戶端。核心代碼:



圖5 客戶端/服務器原理圖
本文對菜譜APP從數據庫、界面設計以及邏輯實現等方面進行了闡釋,操作簡單快捷。同時,該項目還有許多功能可以補充,例如用戶注冊登錄、美食分享等。我們應該利用移動平臺的便捷性對其功能特性不斷補充,以提升用戶體驗。
[1]王珊,陳紅.數據庫系統原理教程[M].清華大學出版社,1998.[2]毋建軍.Android[M]高級開發技術案例教程[M].北京:清華大學出版社,2015.
楊凡(1995—),山西太谷人,大學本科,現就讀于山西農業大學。