陳桂凱 鄭劍
摘要:由于家庭生活中健康美食做法的等信息往往來源于不同的渠道,自然希望能有一個統(tǒng)一的信息查詢和服務(wù)平臺來給人們?nèi)粘I顜肀憷瑸榇嗽O(shè)計了一款廚房精靈app。利用JSP技術(shù)實現(xiàn)系統(tǒng)后臺食譜信息導(dǎo)入、視頻信息的導(dǎo)入和食譜信息管理,前臺基于Android平臺進行信息查看,圖片壓縮和數(shù)據(jù)分享,前后臺通過JSON數(shù)據(jù)交互。經(jīng)測試表明該系統(tǒng)可以滿足用戶、快捷及一站式查詢健康美食信息的需要。
關(guān)鍵詞:健康美食;Android;JSP;JSON數(shù)據(jù);圖片壓縮
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)17-0087-03
在當下移動互聯(lián)網(wǎng)時代,越來越多的人習(xí)慣于使用手機,智能手機給我們生活帶來了很大的便利。隨著人們生活的質(zhì)量的不斷提高,人們會追求吃的質(zhì)量問題,每個季節(jié)適合吃什么,需要哪些膳食來調(diào)節(jié)身體健康,越來越引起人們的關(guān)注。對于我們這些普通人想做到這些又會遇到很多問題:1)想知道在當下的季節(jié)身體最需要那些營養(yǎng)物質(zhì),這些可以通過那些膳食來調(diào)節(jié);2)想要吃上各地美味佳肴,但是苦于時間和經(jīng)濟的考慮不能前往,在家下廚又沒有專業(yè)廚師的指導(dǎo);3)愛好美食的朋友目前卻找不到可以分享美食或?qū)iT展現(xiàn)自己拿手好菜的統(tǒng)一移動平臺;41可以根據(jù)自己身體情況選擇膳食來解決身體的小問題。而這些問題在廚房精靈手機軟件里都有相對應(yīng)的解決。
1系統(tǒng)功能結(jié)構(gòu)的設(shè)計
系統(tǒng)采用Java技術(shù)開發(fā),系統(tǒng)結(jié)構(gòu)見圖端采用B/S(瀏覽器/服務(wù)器模式)。
1.1服務(wù)端系統(tǒng)功能
如圖1所示服務(wù)端具有如下功能:
具有對食譜信息的插入,視頻信息的管理,和數(shù)據(jù)庫添加信息功能。
能夠執(zhí)行將食譜的execel表解析,從而導(dǎo)入食譜程信息;
接受前端上傳食譜數(shù)據(jù)信息,并且添加到數(shù)據(jù)庫中同時保存可訪問數(shù)據(jù)權(quán)限。
2使用JSON與手機端進行交互。
2.1手機端的主要功能介紹
如圖2所示手機端具有如下功能。
對推薦食譜的瀏覽,菜肴的具體步驟的瀏覽,還有食譜查找等功能。
具有制作菜肴的視頻學(xué)習(xí),推送養(yǎng)生食譜的做法,健康營養(yǎng)的常識推薦等功能。
2.2分享佳肴的具體做法,展示自己的佳肴作品等
2系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)
2.1圖片壓縮提高效率
由于廚房精靈手機軟件涉及大量的圖文數(shù)據(jù),而且由于上傳數(shù)據(jù)的大小一般都遠大于手機顯示的需要所以為了提高數(shù)據(jù)加載數(shù)據(jù)率和節(jié)省空間和流量費用需對圖片進行壓縮。本系統(tǒng)使用將尺寸壓縮,質(zhì)量壓縮和JNI調(diào)用libjpeg庫壓縮相結(jié)合進行圖片壓縮,首先通過尺寸壓縮將圖片壓縮到手機常用的大小如1280*960,接著通過質(zhì)量壓縮將圖片壓縮到100KB以下并計算options,最終調(diào)用JNI將圖片保存到內(nèi)存;具體如圖3所示。
2.2臨時數(shù)據(jù)緩存優(yōu)化數(shù)據(jù)加載
首先我們知道app緩存包括了固定緩存,可手動清理緩存,不可手動清理緩存和臨時緩存,而廚房精靈手機軟件涉及大量的圖片和視頻的加載,所以優(yōu)化數(shù)據(jù)加載是十分重要的。在圖片的緩存方面,利用加載時候的年月日時分秒作為圖片的名字將圖片數(shù)據(jù)緩存到本地中。我們采用將圖片的URL地址加上圖片在本機存儲的地址一起作為在數(shù)據(jù)庫中的記錄。當頁面提出加載頁面圖片時候首先根據(jù)URL在數(shù)據(jù)中查詢是否已經(jīng)有緩存如果圖片已經(jīng)緩存就直接取出數(shù)據(jù)加載到相應(yīng)的控件中,如果數(shù)據(jù)沒有被緩存就用異步網(wǎng)絡(luò)加載數(shù)據(jù),并且存入到緩存中。具體如4所示。
2.3單頁面分塊加載節(jié)省數(shù)據(jù)流量
對于用戶在廚房精靈手機軟件瀏覽菜譜和視頻時候并不是每一個人都會感興趣的所以對于采用頁面分塊加載數(shù)據(jù),首先在模塊中只對當前頁面實行加載,對為瀏覽到的頁面不實行數(shù)據(jù)加載,而且數(shù)據(jù)加載也只會在頁面停止滑動的時候才會進行所以省去了不必要的數(shù)據(jù)加載。在加載圖文形式的菜譜時候考錄到圖文信息加載相對于視頻數(shù)據(jù)量要少得多,而且用戶停留下來仔細閱讀的內(nèi)容大多是用戶感興趣的所以這里在加載父內(nèi)容的同時也加載了內(nèi)容的數(shù)據(jù)部分。具體如圖5所示。
3系統(tǒng)界面設(shè)計
廚房精靈手機軟件:是一款集各種佳肴烹飪方法于一體,并且有條理得展現(xiàn)給用戶,使得用戶可以方便快速的學(xué)會烹飪方法的手機軟件。
1)食譜模塊:食譜模塊是將各種佳肴的名稱圖片簡介一起列出來,以一條一條記錄的形式呈現(xiàn)給用戶,方便用戶對需要的菜譜的查找瀏覽。
2)食譜詳情模塊:食譜步驟模塊是根據(jù)用戶選定的菜名稱加載菜肴的具體做法和注意事項,難度系數(shù),原料等詳細信息。
3)發(fā)現(xiàn)模塊:主要加載佳肴的視頻信息,和菜肴的名稱,同樣一條一條列出以供用戶瀏覽。
4)視頻播放模塊:加載播放用戶選擇的的佳肴視頻。
5)添加模塊:是提供用戶自己上傳菜肴的模塊,可以分享自己拿手好菜。
6)我的模塊:是對用戶基本信息,菜肴收藏和自己上傳菜肴的管理模塊。
4小結(jié)
本系統(tǒng)經(jīng)過測試,功能模塊運行穩(wěn)定,軟件基本滿足用戶學(xué)習(xí)美食的需求。軟件可以讓用戶方便快捷的學(xué)習(xí)到美味佳肴的詳細做法,讓愛好烹飪的人們分享自己拿手好菜,能夠及時方便的學(xué)習(xí)到健康營養(yǎng)的食療方法,了解健康小常識。解決了一直沒有健康美食的移動平臺問題。軟件優(yōu)化效率,相當精巧,極大地方便了用戶的日常生活。
LR分析法是當前編譯程序語法分析中最常用而且最有效的分析文法,幾乎能識別所有上下文無關(guān)文法描述的程序設(shè)計語言結(jié)構(gòu),比遞歸子程序分析法、預(yù)測分析法和算符優(yōu)先分析法對文法的限制要少得多,適用面更廣,而且LR分析法具有分析速度快,報錯準確及時等優(yōu)點。
3結(jié)束語
在編譯和運行計算機語言程序的過程中,都需要利用先進后出棧進行語法檢查、計算表達式的值、實現(xiàn)遞歸過程和函數(shù)的調(diào)用等。因此正確理解編譯程序語法分析中棧的原理對數(shù)據(jù)結(jié)構(gòu)中線性結(jié)構(gòu)的應(yīng)用以及編譯程序的教學(xué)具有重要意義。