浙江中醫(yī)藥大學(xué)信息學(xué)院 胡奧杰
吃,是人的一生中最重要的事,每個(gè)人都是通過(guò)吃來(lái)生存。而吃的健康與否就決定了生存的質(zhì)量。我國(guó)是文化大國(guó),有著悠久的歷史,而我們學(xué)校也是有著與古文化相結(jié)合的中醫(yī)而聞名的學(xué)校,所以我們要結(jié)合我們的醫(yī)學(xué)背景,開(kāi)發(fā)與之相關(guān)的產(chǎn)品。而目前居民的生活水平提高,吃東西也都是按照自己的喜好去選擇,忽視了食物營(yíng)養(yǎng)的重要性。所以對(duì)于不同的人所需要的食物與禁忌是十分必要的。隨著移動(dòng)技術(shù)的發(fā)展和提高,移動(dòng)生活成為我們?nèi)粘I钪械囊徊糠?,而開(kāi)發(fā)用于移動(dòng)設(shè)備上的“體質(zhì)養(yǎng)生系統(tǒng)”會(huì)使得用戶在選擇食物的時(shí)候會(huì)根據(jù)自己的體質(zhì)去分析營(yíng)養(yǎng)價(jià)值,而不是僅僅看喜好。簡(jiǎn)單來(lái)說(shuō)開(kāi)發(fā)“基于android的體質(zhì)養(yǎng)生(食療)系統(tǒng)”會(huì)讓我們的生活更加方便與健康。
自2007年Android被Google公司正式推出以來(lái)可以說(shuō)是飛速發(fā)展,目前Android系統(tǒng)平臺(tái)已經(jīng)應(yīng)用到各個(gè)領(lǐng)域。早在2011年6月份,Google官方公布了一項(xiàng)數(shù)據(jù),當(dāng)時(shí)每天高達(dá)有50多萬(wàn)臺(tái)Android設(shè)備被激活,而之前的5月份的每天增加的設(shè)備是40萬(wàn)臺(tái),才過(guò)去一個(gè)月左右的時(shí)間,每天的增加量整整增加了10多萬(wàn)臺(tái),到目前為止,估計(jì)已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)1.9億多臺(tái)Android設(shè)備被激活,可見(jiàn)其發(fā)展的速度之快。
國(guó)內(nèi)Android應(yīng)用開(kāi)發(fā)主要有以下三類:為企業(yè)開(kāi)發(fā)應(yīng)用、開(kāi)發(fā)通用應(yīng)用以及游戲開(kāi)發(fā)。目前中國(guó)大多數(shù)應(yīng)用軟件公司都轉(zhuǎn)到了Android平臺(tái)上,在硬件方面,不管是手機(jī)芯片公司還是手機(jī)企業(yè)都早已經(jīng)開(kāi)始了Android平臺(tái)的開(kāi)發(fā)。所以說(shuō)第一類開(kāi)發(fā)者一般都是身處類似這樣的應(yīng)用軟件開(kāi)發(fā)公司或者手機(jī)芯片公司。而第二種或者第三種開(kāi)發(fā)者,主要是創(chuàng)業(yè)型公司或者是獨(dú)立開(kāi)發(fā)者,他們一般將應(yīng)用程序放到Android Market或者其他App Market銷售,一般情況下這種方式的銷售都是免費(fèi)提供給用戶下載,他們的盈利方式主要是通過(guò)在應(yīng)用程序中添加Google的移動(dòng)廣告(AdMob),通過(guò)廣告點(diǎn)擊分成[1]。
Android最初是由Andy Rubin創(chuàng)建,成立22個(gè)月后(2005年),這個(gè)新興的公司即被Google公司收購(gòu)。Google收購(gòu)Android兩年后(2007年11月5日)發(fā)布了Android 1.0手機(jī)操作系統(tǒng),并且宣布Android系統(tǒng)開(kāi)源。由于Android系統(tǒng)平臺(tái)是一個(gè)真正開(kāi)放式的系統(tǒng)平臺(tái),無(wú)須支付任何費(fèi)用即可使用,所以越來(lái)越多的手機(jī)生產(chǎn)商已經(jīng)搭載了Android操作系統(tǒng),其中包括:摩托羅拉、三星、HTC、索尼愛(ài)立信、LG等;國(guó)內(nèi)手機(jī)生產(chǎn)廠商如華為、聯(lián)想、中興等也已經(jīng)使用了Android系統(tǒng)[2]。
Android是一個(gè)為手機(jī)開(kāi)發(fā)的軟件集,包括操作系統(tǒng)、中間件和關(guān)鍵的應(yīng)用程序。Android SDK提供了用Java編程語(yǔ)言在Android平臺(tái)上開(kāi)始軟件開(kāi)發(fā)所必需的工具和API。Android的系統(tǒng)架構(gòu)和其它操作系統(tǒng)一樣,采用了分層的架構(gòu)。Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?Applications)、應(yīng)用程序框架層(Application Framework)、函數(shù)庫(kù)(Libraries)、Android運(yùn)行時(shí)(Android Runtime)和linux內(nèi)核層(Linux Kernel)[3]。
Android開(kāi)發(fā)環(huán)境搭建主要對(duì)Java JDK和SDK的下載、安裝和搭建,Eclipse開(kāi)發(fā)工具的下載和安裝、ADT插件的安裝。然后在在Eclipse中配置Android SDK,升級(jí)SDK版本,新建AVD(Android虛擬機(jī))[4]。
新建Android項(xiàng)目,首先單擊通過(guò)Eclipse工具條上的 圖標(biāo)打開(kāi)創(chuàng)建Android項(xiàng)目窗口,選擇Android Application Project然后點(diǎn)擊下一步填寫工程名,包名,程序名,并選擇Android版本,最后點(diǎn)完成,就成功建立了一個(gè)android開(kāi)發(fā)項(xiàng)目。
基于Android平臺(tái)下的應(yīng)用軟件體質(zhì)養(yǎng)生的設(shè)計(jì)和開(kāi)發(fā),實(shí)現(xiàn)對(duì)體質(zhì)的判斷和相應(yīng)的食療信息的查詢作為系統(tǒng)的主要實(shí)現(xiàn)目標(biāo)。
體質(zhì)養(yǎng)生的系統(tǒng)流程圖如圖3-1所示:
圖3-1 體質(zhì)養(yǎng)生(食療)系統(tǒng)流程圖
體質(zhì)養(yǎng)生(食療)系統(tǒng)在性能和表現(xiàn)上都具有自身鮮明的特點(diǎn),具體表現(xiàn)在以下幾個(gè)方面:
(1)基于開(kāi)放的Android平臺(tái)開(kāi)發(fā)和設(shè)計(jì);
(2)采用Java語(yǔ)言編寫,具有很好的跨平臺(tái)性;
(3)采用面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法;
(4)系統(tǒng)性能穩(wěn)定高效;
(5)系統(tǒng)運(yùn)行流暢,占用手機(jī)資源較小;
(6)功能明確,網(wǎng)絡(luò)上沒(méi)有與之相同的程序;
(7)系統(tǒng)界面簡(jiǎn)潔但不單調(diào),用戶體驗(yàn)較好;
(8)操作簡(jiǎn)單,具有良好的用戶可交互性;
體質(zhì)養(yǎng)生系統(tǒng)的開(kāi)發(fā)是針對(duì)我們中國(guó)人的不同體質(zhì)相對(duì)應(yīng)的食療而開(kāi)發(fā),用戶在使用后能夠按照自己的體質(zhì)選擇相應(yīng)的食療打到調(diào)養(yǎng)身心的目的。其開(kāi)發(fā)平臺(tái)為Android2.3.3平臺(tái),適用于Android2.3.3及以上的Android系統(tǒng)的手機(jī)[5]。
Android界面是由一個(gè)Activity組成的,一個(gè)Activity就是和用戶交互的UI顯示界面。而Activity交互界面的顯示樣式主要是靠XML格式的布局文件來(lái)完成的,雖然在Activity中也可以通過(guò)Java代碼來(lái)控制Activity的顯示布局,但是這種方法特別麻煩,而且效率低下,所以一般情況下不建議使用Java代碼來(lái)進(jìn)行界面顯示布局。
在Android系統(tǒng)中,提供了五大布局管理器來(lái)方便開(kāi)發(fā)者設(shè)計(jì)各種各樣的頁(yè)面布局顯示。它們分別是:LinearLayout(線性布局)、FrameLayout(幀布局)、TableLayout(表格布局)、RelativeLayout(相對(duì)布局)和AbsoluteLayout(絕對(duì)布局)。在本項(xiàng)目開(kāi)發(fā)過(guò)程中,就用到了LinearLayout和RelativeLayout這兩種布局管理器來(lái)進(jìn)行界面布局的設(shè)計(jì)[8]。
主界面的靈感主要來(lái)源于中醫(yī)是國(guó)術(shù),與我國(guó)的悠遠(yuǎn)的文化離不開(kāi),所以采用了陰陽(yáng)魚與龍鳳的搭配方式來(lái)作為主界面。
主界面大致設(shè)計(jì)如圖4-1所示。
這一部分主要是做題目對(duì)答,所以采用了Linearlayout和Scroll的布局方式來(lái)呈現(xiàn)題目。
其中題目來(lái)源是中醫(yī)體質(zhì)分類與判定(ZYYXH/T157-2009)。其正確性,科學(xué)性值得信賴,算法也同樣來(lái)源于此。
中醫(yī)體質(zhì)測(cè)試界面大致設(shè)計(jì)如圖4-2所示。
這一部分的設(shè)計(jì)主要是連接數(shù)據(jù)庫(kù),通過(guò)按鈕綁定傳遞值,同時(shí)在數(shù)據(jù)庫(kù)中進(jìn)行搜索,并顯示到listview中。
食療營(yíng)養(yǎng)查詢大致設(shè)計(jì)如圖4-3所示。
現(xiàn)在智能手機(jī)中主流的操作系統(tǒng)有:Windows Phone、iOS、Android(安卓)。而且可以像個(gè)人電腦一樣安裝第三方軟件,并且它具有獨(dú)立的操作系統(tǒng)以及良好的用戶界面,很強(qiáng)的應(yīng)用擴(kuò)展性、能方便隨意地安裝和刪除應(yīng)用程序。
在大量的訊息了解中我感覺(jué)到智能手機(jī)會(huì)是以后手機(jī)發(fā)展的一個(gè)大的趨勢(shì)。通過(guò)對(duì)安卓系統(tǒng)一段時(shí)間的學(xué)習(xí),讓我對(duì)Android程序有了一定的了解,畢業(yè)設(shè)計(jì)我就定下來(lái)做一個(gè)Android平臺(tái)的設(shè)計(jì)。
因?yàn)锳ndroid編程語(yǔ)言底層的要求是C/C++,應(yīng)用層以Java為主,而這些正是我們所學(xué)過(guò)的知識(shí),因此在進(jìn)行的時(shí)候感覺(jué)都挺順利。不過(guò)也有幾次遇到過(guò)一些問(wèn)題,比如說(shuō)有一次計(jì)時(shí)器時(shí)間更新后,游戲主界面無(wú)法及時(shí)的顯示出更新之后的效果,經(jīng)過(guò)一番檢查和詢問(wèn)老師發(fā)現(xiàn)原因就是計(jì)時(shí)器線程和程序主線程之間的通訊出現(xiàn)了問(wèn)題,可以使用Android中子線程和主線程通訊的組件Handle,通過(guò)Handle每隔一秒由計(jì)時(shí)器線線程向主線程發(fā)送消息,然后主線程來(lái)更新界面就解決了。
通過(guò)這次的設(shè)計(jì)開(kāi)發(fā)我學(xué)到了很多東西,對(duì)Android操作系統(tǒng)以及程序開(kāi)發(fā)方面也有了更深一步的了解和掌握,簡(jiǎn)單的總結(jié)了幾點(diǎn)比如開(kāi)源,只有你又編輯基礎(chǔ),就可以進(jìn)出其中;系統(tǒng)精煉,這是開(kāi)源的好處;個(gè)性發(fā)展,可以根據(jù)自己的使用習(xí)慣配置。并且它的系統(tǒng)會(huì)更安全。
[1](美)SHARON ZAKHOUR,SCOTT HOMME編著.JAVA教程(第4版)[M].2007,09.
[2]郭宏志編著.Android開(kāi)發(fā)應(yīng)用從入門到精通[M].電子工業(yè)出版社,2010,06.
[3]張?jiān)辆幹?Android開(kāi)發(fā)應(yīng)用實(shí)戰(zhàn)詳解[M].中國(guó)貼到出版社.
[4](美)James Steele編著,譯.Android開(kāi)發(fā)秘籍[M].人民郵電出版社,2011,08.
[5]李寧.Android開(kāi)發(fā)權(quán)威指南[M].人民郵電出版社,2011,09.
[6]張利國(guó),王植萌.Android移動(dòng)開(kāi)發(fā)入門與進(jìn)階[M].人民郵電出版社,2009,09.
[7]林城.Android 2.3應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)[M].機(jī)械工業(yè)出版社,2011,06.
[8]李剛.瘋狂Android講義[M].電子工業(yè)出版社[M].2011,07.
[9]GONG Lei,ZHOU Cong.Development and Research of Mobile Termaination Application Based on Android[J].Computer And Modernization,2008,8(1):67-98.
[10]韓超,梁泉.Android系統(tǒng)原理及開(kāi)發(fā)要點(diǎn)詳解[M].電子工業(yè)出版社,2010,01.
[11](美)達(dá)西,李奔.Android移動(dòng)開(kāi)發(fā)一本就夠[M].人民郵電出版社,2011,01.
[12](美)Shane Conder編著.張魏譯.Android移動(dòng)應(yīng)用開(kāi)發(fā)[M].人民郵電出版社,2010,07.
[13]汪永松.Android平臺(tái)開(kāi)發(fā)之旅[M].機(jī)械工業(yè)出版社,2010,08.
[14]百度百科.Angry Birds百科[EB/OL].http://baike.baidu.com/view/4256200.htm.2011-1-1.