版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告學(xué)院:軟件學(xué)院專業(yè):軟件工程時間:畢業(yè)設(shè)計(jì)(論文)任務(wù)書畢業(yè)設(shè)計(jì)(論文)題目:基于Android的個人健康管理系統(tǒng)畢業(yè)設(shè)計(jì)(論文)要求及原始數(shù)據(jù)(資料):1.綜述個人健康管理系統(tǒng)應(yīng)用研究現(xiàn)狀;2.深入了解個人健康管理系統(tǒng)應(yīng)用開發(fā)的相關(guān)技術(shù);3.熟練Android的應(yīng)用與分析,訓(xùn)練編寫Android應(yīng)用程序的能力;4.設(shè)計(jì)并實(shí)現(xiàn)個人健康管理系統(tǒng)應(yīng)用;5.深入分析個人健康管理系統(tǒng)應(yīng)用開發(fā)的關(guān)鍵技術(shù)與編寫語言;6.訓(xùn)練檢索文獻(xiàn)資料和利用文獻(xiàn)資料的能力;7.訓(xùn)練撰寫技術(shù)文檔與學(xué)位論文的能力。畢業(yè)設(shè)計(jì)(論文)主要內(nèi)容:1.綜述個人健康管理系統(tǒng)的應(yīng)用;2.了解個人健康管理系統(tǒng)應(yīng)用的相關(guān)技術(shù);3.熟悉個人健康管理系統(tǒng)應(yīng)用的Android開發(fā)環(huán)境;4.設(shè)計(jì)基于Android的個人健康管理系統(tǒng)應(yīng)用;5.深入分析個人健康管理系統(tǒng)應(yīng)用的設(shè)計(jì)流程;6.熟練掌握個人健康管理系統(tǒng)應(yīng)用的編寫;7.設(shè)計(jì)與實(shí)現(xiàn)個人健康管理系統(tǒng)應(yīng)用的程序。學(xué)生應(yīng)交出的設(shè)計(jì)文件(論文):1.內(nèi)容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設(shè)計(jì)論文;2.包括畢業(yè)設(shè)計(jì)論文、源程序等內(nèi)容在內(nèi)的畢業(yè)設(shè)計(jì)電子文檔及其它相關(guān)材料。主要參考文獻(xiàn)(資料):張利國.代聞,龔海平Android移動開發(fā)案例詳解[M].北京:人民郵電出版社,2010王維虎,劉忠,李叢JAVA程序設(shè)計(jì)[M].華中科技大學(xué)出版社,2013程正權(quán),尹春嬌,王光亞Java程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)[M].安徽科學(xué)技術(shù)出版社,2012吳想想基于Android平臺軟件開發(fā)方法的研究與應(yīng)用[D].北京郵電大學(xué),2011馬駿驍;布魯卡;曹晨,關(guān)于UI不得不說的那些事[J].移動信息,2013Freeman,E.HeadFirstDesignPattern[M].O’ReillyMedia,Inc,2004鄭阿奇,丁有和,周怡君,鄭進(jìn)Oracle實(shí)用教程[M],電子工業(yè)出版社,2013聶少萍,黃靜芝飲水健康及其影響性研究現(xiàn)狀[J],華南預(yù)防醫(yī)學(xué),2013Johnson,Richard,A.JAVADATABASECONNECTIVITYUSINGSQLITE:ATUTORIAL[J],AlliedAcademiesInterontaionalConference,2014,(18)MarkMurphyBeginningAndroid2[M].APress,2010專業(yè)班級學(xué)生要求設(shè)計(jì)(論文)工作起止日期指導(dǎo)教師簽字日期教研室主任審查簽字日期系主任批準(zhǔn)簽字日期基于Android的個人健康管理系統(tǒng)摘要隨著生活水平的提高,健康一詞的關(guān)注度越來越高,人們越來越注重鍛煉、養(yǎng)生。與此同時,移動端產(chǎn)品基于它的便捷性以及相關(guān)科技的迅速發(fā)展等,也在人們的日常中占有重要的一席。Android是一個開源的開發(fā)語言,底層基于Linux操作系統(tǒng),并通過MVC模式,通過Java和XML配置共同進(jìn)行開發(fā)。通過對Android移動應(yīng)用技術(shù)和健康管理知識的了解與研究,遵循軟件工程的開發(fā)模式,進(jìn)行個人健康管理系統(tǒng)的應(yīng)用開發(fā)。該應(yīng)用實(shí)現(xiàn)了記錄日常鍛煉、休息提醒、健康飲水、推薦健康時蔬、健康評分等功能,通過Android開源技術(shù)很好的提高了界面友好性,通過添加動畫、制作界面、彈出提示信息等方式優(yōu)化人機(jī)交互性能。應(yīng)用旨在通過移動端提供便捷的健康管理方式,方便大家健康度過每一天。關(guān)鍵詞:Android;健康管理;軟件工程;開源系統(tǒng)PersonalHealthManagement
SystemBasedOnAndroidAbstractWiththeimprovementoflivingstandards,
thewordofhealth
hasbeenpaidmoreandmoreattention,
andmoreandmorepeoplepayattentionto
exerciseand
health.
Atthesametime,
themobileterminal
productsbasedon
itsconvenience
and
rapiddevelopmentoftechnology,
also
playsakeyrole
inpeople's
daily.
Androidisanopensource
programminglanguage,
theunderlying
operatingsystem
basedon
Linux,
andcommondevelopmentprojectthroughJavaand
XMLconfigurationwithMVC
model.
Throughunderstanding
andstudyaboutthe
Androidmobileapplication
technologyand
healthmanagement
knowledge,
followthesoftwareengineering
developmentmodel,
developingthe
applicationofpersonalhealthmanagementsystem.
Theapplicationhasfollowingfunction,the
recordsof
dailyexercise,
restreminder,
healthydrinkingwater,
recommended
healthyvegetables,
healthscore
andotherfunctions.ThroughtheAndroid
opensourcetechnology
canimprovethefriendlyofinterface,
andthroughadditional
animation,
beautifytheinterface,
pop-upprompt
information
andotherwaystooptimizethe
performance
ofhuman-computerinteraction.
Applicationof
healthmanagement
systemiswiththepurposeofproviding
aconvenientwaytomanagerhealthwiththe
mobileterminaland
healthy
tospendeveryday.KeyWords:Android;HealthManagement;SoftwareEngineering;OpenSourceSystem目錄TOC\o"1-3"\h\u18383基于Android的個人健康管理系統(tǒng) 5581PersonalHealthManagement
SystemBasedOnAndroid 288161引言 引言1.1課題背景隨著科技不斷發(fā)展,手機(jī)等移動產(chǎn)品憑借其便捷等特性已在人們?nèi)粘I钪幸颜加兄匾牡匚?,移動端市場發(fā)展極為迅速,而現(xiàn)今主流的移動端操作系統(tǒng)便是IOS和Android兩大系統(tǒng)。Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。Android操作系統(tǒng)最初由AndyRubin開發(fā),主要支持手機(jī)。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。生活水平的提高,使得人們已不滿足僅僅追求物質(zhì)財(cái)富,精神財(cái)富也成為人們喜聞樂見的話題。其中,“健康”一詞的關(guān)注度也隨之提升,健康是人的基本權(quán)利,健康是人生的第一財(cái)富。健康包含的內(nèi)容很多,現(xiàn)代人的健康內(nèi)容包括:軀體健康、心理健康、心靈健康、社會健康、智力健康、道德健康、環(huán)境健康等。身體健康是健康的前提,雖然健康的內(nèi)容越來越多,但身體健康仍是最根本的一項(xiàng)。通過鍛煉、飲食、生活習(xí)慣等的改善以達(dá)到身體上的健康。擁有一個健康的身體,是大多數(shù)人追求健康的首要目標(biāo),是我們更好的追求精神與物質(zhì)財(cái)富的重要保障。1.2編寫目的在快節(jié)奏的現(xiàn)代生活,一個移動端的應(yīng)用符合了現(xiàn)代生活的快捷與便利,并通過健康管理系統(tǒng)督促個人進(jìn)行健康的生活。本應(yīng)用目的為提供一種方便的方式可以對個人健康起到一定的幫助。通過友好的界面效果,實(shí)現(xiàn)相應(yīng)的健康管理功能。1.3關(guān)于AndroidAndroid一詞的本義指“機(jī)器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。它采用了軟件堆層(software
stack,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以Linux內(nèi)核工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。另外,為了推廣此技術(shù),Google和其它幾十個手機(jī)公司建立了開放手機(jī)聯(lián)盟。Android在未公開之前常被傳聞為Google電話。大多傳聞?wù)J為Google開發(fā)的是自己的手機(jī)電話產(chǎn)品,而不是一套軟件平臺。到了2010年1月,Google開始發(fā)表自家品牌手機(jī)電話的Nexus
One。Android系統(tǒng)有如下的幾大特性:應(yīng)用程序框架,支持組件的重用與替換;Dalvik虛擬機(jī),專門為移動設(shè)備做了優(yōu)化;內(nèi)部集成瀏覽器,該瀏覽器基于開源的WebKit引擎;優(yōu)化的圖形庫,包括2D和3D圖形庫,3D圖形庫基于OpenGL
ES;SQLite,用作結(jié)構(gòu)化的數(shù)據(jù)存儲;多媒體支持
包括常見的音頻、視頻和靜態(tài)印象文件格式(如MPEG4,
H.264,
MP3,
AAC,
AMR,
JPG,
PNG,
GIF);GSM電話(依賴于硬件);藍(lán)牙Bluetooth,EDGE,3G,and
WiFi(依賴于硬件);照相機(jī),GPS,指南針和加速度計(jì)(依賴于硬件);豐富的開發(fā)環(huán)境,包括設(shè)備模擬器,調(diào)試工具,內(nèi)存及性能分析圖表,和Eclipse集成開發(fā)環(huán)境插件。Applications,Android會同一個核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是用JAVA編寫的。Application
FrameWork,開發(fā)者完全可以訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序架構(gòu)用來簡化組件軟件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。該應(yīng)用程序重用機(jī)制使得組建可以被用戶替換。所有的應(yīng)用程序都由一系列的服務(wù)和系統(tǒng)組成,包括:可擴(kuò)展的視圖(Views)可以用來建應(yīng)用程序,包括列表(lists),網(wǎng)格(grids),文本框(text
boxes),按鈕(buttons),甚至包括一個可嵌入的web瀏覽器;內(nèi)容管理器(Content
Providers)使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)。;資源管理器(Resource
Manager)提供非代碼資源的訪問,如本地字符串,圖形,和分層文件(layout
files);通知管理器(Notification
Manager)使得應(yīng)用程序可以在狀態(tài)欄中顯示客戶通知信息;活動類管理器(Activity
Manager)用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。Libraries庫,Android包括一個被Android系統(tǒng)中各種不同組件所使用的C/C++庫集。該庫通過Android應(yīng)用程序框架為開發(fā)者提供服務(wù)。以下是一些主要的核心庫:系統(tǒng)C庫,媒體庫,Surface
Manager,LibWebCore,SGL,F(xiàn)reeType,SQLite。Android
Runtime,Android
包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個獨(dú)立的Dalvik虛擬機(jī)實(shí)例。Dalvik是針對于同時高效地運(yùn)行多個VMs來實(shí)現(xiàn)的。Dalvik虛擬機(jī)執(zhí)行.dex的Dalvik可執(zhí)行文件,該格式文件針對最小內(nèi)存使用做了優(yōu)化。該虛擬機(jī)是基于寄存器的,所有的類都經(jīng)由JAVA匯編器編譯,然后通過SDK中的dx工具轉(zhuǎn)化成.dex格式由虛擬機(jī),Dalvik虛擬機(jī)依賴于linux的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。Linux內(nèi)核
,Android
的核心系統(tǒng)服務(wù)依賴于
Linux
2.6
內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。
Linux
內(nèi)核也同時作為硬件和軟件堆棧之間的硬件抽象層。其最震撼人心之處在于Android手機(jī)系統(tǒng)的開放性和服務(wù)免費(fèi)。Android是一個對第三方軟件完全開放的平臺,開發(fā)者在為其開發(fā)程序時擁有更大的自由度,突破了iPhone等只能添加為數(shù)不多的固定軟件的枷鎖;同時與Windows
Mobile、Symbian等廠商不同,Android操作系統(tǒng)免費(fèi)向開發(fā)人員提供,這樣可節(jié)省近三成成本。1.4關(guān)于MVC框架Android應(yīng)用程序的開發(fā)使用了MVC框架結(jié)構(gòu)。MVC全名是ModelViewController,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結(jié)構(gòu)中。MVC開始是存在于桌面程序中的,M是指業(yè)務(wù)模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。模型-視圖-控制器(MVC)是XeroxPARC在二十世紀(jì)八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,已被廣泛使用。后來被推薦為Oracle旗下Sun公司JavaEE平臺的設(shè)計(jì)模式,并且受到越來越多的使用ColdFusion和PHP的開發(fā)者的歡迎。模型-視圖-控制器模式是一個有用的工具箱,它有很多好處,但也有一些缺點(diǎn)。MVC是一個框架模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。最典型的MVC就是JSP+servlet+javabean的模式。視圖,視圖是用戶看到并與之交互的界面。對老式的Web應(yīng)用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括AdobeFlash和像XHTML,XML/XSL,WML等一些標(biāo)識語言和Webservices.MVC好處是它能為應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。模型,模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務(wù)。例如它可能用像EJBs和ColdFusionComponents這樣的構(gòu)件對象來處理數(shù)據(jù)庫,被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個模型能為多個視圖提供數(shù)據(jù),由于應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復(fù)性??刂破?,控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求,所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后再確定用哪個視圖來顯示返回的數(shù)據(jù)。MVC框架優(yōu)點(diǎn)有,耦合性低,視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動MVC的模型層即可。因?yàn)槟P团c控制器和視圖相分離,所以很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則;重用性高,隨著技術(shù)的不斷進(jìn)步,需要用越來越多的方式來訪問應(yīng)用程序。MVC模式允許使用各種不同樣式的視圖來訪問同一個服務(wù)器端的代碼,因?yàn)槎鄠€視圖能共享一個模型,它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(wap),比如,用戶可以通過電腦也可通過手機(jī)來訂購某樣產(chǎn)品,雖然訂購的方式不一樣,但處理訂購產(chǎn)品的方式是一樣的。由于模型返回的數(shù)據(jù)沒有進(jìn)行格式化,所以同樣的構(gòu)件能被不同的界面使用。例如,很多數(shù)據(jù)可能用HTML來表示,但是也有可能用WAP來表示,而這些表示所需要的命令是改變視圖層的實(shí)現(xiàn)方式,而控制層和模型層無需做任何改變。由于已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,所以可以最大化的重用代碼了。模型也有狀態(tài)管理和數(shù)據(jù)持久性處理的功能,例如,基于會話的購物車和電子商務(wù)過程也能被Flash網(wǎng)站或者無線聯(lián)網(wǎng)的應(yīng)用程序所重用;生命周期成本低,MVC使開發(fā)和維護(hù)用戶接口的技術(shù)含量降低;部署快,使用MVC模式使開發(fā)時間得到相當(dāng)大的縮減,它使程序員(Java開發(fā)人員)集中精力于業(yè)務(wù)邏輯,界面程序員(HTML和JSP開發(fā)人員)集中精力于表現(xiàn)形式上;可維護(hù)性高,分離視圖層和業(yè)務(wù)邏輯層也使得WEB應(yīng)用更易于維護(hù)和修改;有利軟件工程化管理,由于不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于通過工程化、工具化管理程序代碼??刂破饕蔡峁┝艘粋€好處,就是可以使用控制器來聯(lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇模型進(jìn)行處理,然后選擇視圖將處理結(jié)果顯示給用戶。MVC缺點(diǎn)有,沒有明確的定義;不適合小型,中等規(guī)模的應(yīng)用程序;增加系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性,對于簡單的界面,嚴(yán)格遵循MVC,使模型、視圖與控制器分離,會增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過多的更新操作,降低運(yùn)行效率;視圖與控制器間的過于緊密的連接;視圖對模型數(shù)據(jù)的低效率訪問;一般高級的界面工具或構(gòu)造器不支持模式。2可行性研究2.1技術(shù)可行性個人健康管理系統(tǒng)項(xiàng)目是基于Android開源語言的移動應(yīng)用軟件。以MVC模式,通過Java語言和XML配置混合進(jìn)行開發(fā)。Android語言發(fā)展至今,已經(jīng)非常成熟。項(xiàng)目相關(guān)數(shù)據(jù)庫功能使用Android自帶的SQLite輕量級數(shù)據(jù)庫,基于SQL語言進(jìn)行數(shù)據(jù)庫功能方面的設(shè)計(jì)與開發(fā)。項(xiàng)目的功能實(shí)現(xiàn)與交互界面的優(yōu)化方面,通過Android自帶組件、自定義組件和第三方組件可達(dá)到不錯的實(shí)現(xiàn)效果。所以,從技術(shù)方面來看,使用Android語言進(jìn)行本應(yīng)用開發(fā)是可行的。2.2經(jīng)濟(jì)可行性本項(xiàng)目屬于個人開發(fā),無需投入大量資金,所以經(jīng)濟(jì)上可行。2.3時間可行性本項(xiàng)目應(yīng)用開發(fā)時間上安排充足,所以時間上可行。3需求分析隨著生活水平的提高,健康一詞的關(guān)注度越來越高,人們越來越注重鍛煉、養(yǎng)生,加之現(xiàn)代社會快節(jié)奏的生活通,所以需要一個便捷、快速、隨時可使用的應(yīng)用軟件。所以通過開發(fā)Android移動應(yīng)用可以很好的實(shí)現(xiàn)上訴性能。對于個人健康管理系統(tǒng),需要實(shí)現(xiàn)的功能有記錄日常鍛煉、休息提醒、健康飲水、推薦健康時蔬、健康評分等功能。應(yīng)用需要保留相關(guān)信息,例如個人信息、鍛煉信息等。同時,人機(jī)交互性能需要得到注重,目標(biāo)是實(shí)現(xiàn)一個界面友好、操作簡單、便于使用的移動健康管理APP。4總體設(shè)計(jì)4.1功能設(shè)計(jì)根據(jù)項(xiàng)目的基本目標(biāo)和需求進(jìn)行分析可得項(xiàng)目所需基本實(shí)現(xiàn)的功能為登錄功能、注冊功能、鍛煉管理功能、飲水管理功能、飲食管理功能、休息管理功能、評分功能、個人信息管理功能、退出應(yīng)用功能。根據(jù)設(shè)計(jì)得出的用例圖如下:圖4-1總體設(shè)計(jì)用例圖登錄系統(tǒng)功能需要實(shí)現(xiàn)的基本內(nèi)容有進(jìn)行賬戶登錄,擁有一定規(guī)則的驗(yàn)證功能。注冊系統(tǒng)功能需要實(shí)現(xiàn)的基本內(nèi)容有進(jìn)行賬戶注冊,擁有一定規(guī)則的驗(yàn)證功能。鍛煉管理功能需要實(shí)現(xiàn)的基本內(nèi)容有記錄每天鍛煉信息、增加刪除修改鍛煉信息。飲水管理功能需要實(shí)現(xiàn)的基本內(nèi)容有記錄飲水狀況、提供相關(guān)健康飲水知識。飲食管理功能需要實(shí)現(xiàn)的基本內(nèi)容有提供健康飲食的知識。休息管理功能需要實(shí)現(xiàn)的基本內(nèi)容有健康作息提醒、使用手機(jī)休息提醒。評分系統(tǒng)功能需要實(shí)現(xiàn)的基本內(nèi)容有根據(jù)一套評分標(biāo)準(zhǔn)進(jìn)行評分并顯示。個人信息管理功能需要實(shí)現(xiàn)的基本內(nèi)容有管理個人信息,包括個人賬號的刪除、修改、更換等功能。退出系統(tǒng)功能需要實(shí)現(xiàn)的基本內(nèi)容有實(shí)現(xiàn)應(yīng)用退出功能。4.2數(shù)據(jù)庫設(shè)計(jì)根據(jù)應(yīng)用相關(guān)需求與功能,需要數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的管理。項(xiàng)目使用Android自帶的輕量級數(shù)據(jù)庫SQLite進(jìn)行數(shù)據(jù)的管理。項(xiàng)目一共需要建表7個,詳細(xì)信息見下表:表4-1DB_DRINK字段名屬性類型IDPKTXTTOTALTXTCURRENTTXTINCREMENTTXTFLAGTXT表4-2DB_TIME字段名屬性類型PICK1HTXTPICK1MTXTPICK2HTXTPICK2MTXTPICK3TXTSW1TXTSW2TXTSW3TXT表4-3DB_EXERCISE字段名屬性類型_IDPK,AUTOINCREMENTINTEGERNAMETXTCOSTTXTDATETXT表4-4DB_CHART字段名屬性類型DATETXTISUSETXTISEXERCISETXTISDRINKTXTISCHARTTXTGOALSTXT表4-5DB_CHART_MONTH字段名屬性類型DATETXTGOALSTXT表4-6DB_ACCOUNT字段名屬性類型USERNAMEPKTXTPWDTXTNAMETXT表4-7DB_CURRENT_AC字段名屬性類型USERNAMETXTPWDTXTNAMETXTISSAVEPWDTXTISAUTOINTXT4.3界面設(shè)計(jì)項(xiàng)目的界面主題以星空為主要背景,主界面以WIN8風(fēng)格進(jìn)行界面的設(shè)計(jì),并添加界面切換動畫效果。所有界面盡可能多的使界面友好化,提供友好的界面交互,例如按鈕等組件點(diǎn)擊后的反饋,提示信息的彈出等。4.4權(quán)限需求Android應(yīng)用為了實(shí)現(xiàn)一些功能需要調(diào)用系統(tǒng)功能、寫入寫出到系統(tǒng)等,為了安全性需要添加權(quán)限,以便擁有access來完成相關(guān)功能。項(xiàng)目添加用戶權(quán)限android.permission.RECEIVE_BOOT_COMPLETED,該權(quán)限允許應(yīng)用接受系統(tǒng)屏幕喚醒、睡眠的廣播動作,以便實(shí)現(xiàn)相關(guān)的邏輯功能。4.5應(yīng)用版本要求Android系統(tǒng)擁有良好的兼容性,可以向下兼容到指定版本。本項(xiàng)目的最低版本要求為android:minSdkVersion="14",目標(biāo)版本android:targetSdkVersion="18"。4.6項(xiàng)目編寫環(huán)境要求項(xiàng)目編寫使用環(huán)境Windows7OS、EclipseLuna4.4.1、SDK、JDK1.8、ADT,下圖為項(xiàng)目編寫時環(huán)境圖:圖4-2layout界面編寫環(huán)境圖4-3代碼編寫界面環(huán)境5詳細(xì)設(shè)計(jì)5.1Logo界面設(shè)計(jì)Logo界面需求為展示Logo并在一定時間后實(shí)現(xiàn)自動跳轉(zhuǎn)至登錄頁面。5.2登錄界面設(shè)計(jì)登錄界面要求實(shí)現(xiàn)的功能有:登錄功能,擁有基本的登錄驗(yàn)證功能,并可通過復(fù)選框勾選是否保存賬號、密碼和自動登錄功能。當(dāng)驗(yàn)證通過即可登錄跳轉(zhuǎn)至主頁面,并保存當(dāng)前賬戶基本信息,以便之后的功能使用;驗(yàn)證功能,驗(yàn)證輸入是否有效,賬號、密碼是否正確等;注冊功能,若無賬號可通過注冊按鈕,跳轉(zhuǎn)至注冊頁面進(jìn)行注冊后登錄;退出功能,實(shí)現(xiàn)退出系統(tǒng)應(yīng)用。系統(tǒng)用例圖如下:圖5-1登錄界面用例圖系統(tǒng)流程圖如下:圖5-2登錄界面流程圖登錄界面使用數(shù)據(jù)庫表DB_ACCOUNT,用于記錄賬號信息;DB_CURRENT_AC,用于記錄當(dāng)前登錄的賬號基本信息。5.3注冊界面設(shè)計(jì)注冊界面主要實(shí)現(xiàn)功能有:注冊功能,進(jìn)行賬戶的注冊并插入到數(shù)據(jù)庫表中,注冊時進(jìn)行一定的基本校驗(yàn)規(guī)則,注冊成功或失敗顯示提示信息;驗(yàn)證功能,驗(yàn)證輸入的有效性,并通過數(shù)據(jù)庫交互驗(yàn)證賬號是否已存在。系統(tǒng)流程圖如下:圖5-3注冊系統(tǒng)流程圖注冊界面使用數(shù)據(jù)庫表DB_ACCOUNT,用于插入賬戶信息。5.4主界面設(shè)計(jì)主界面主要實(shí)現(xiàn)功能有:顯示賬號昵稱功能,提取當(dāng)前賬戶昵稱并顯示;顯示健康狀態(tài)功能,通過數(shù)據(jù)庫表提取相關(guān)數(shù)據(jù),實(shí)現(xiàn)根據(jù)評分系統(tǒng)評分規(guī)則顯示以不同顏色為象征的健康狀態(tài);向飲水管理功能,實(shí)現(xiàn)向飲水管理界面跳轉(zhuǎn);飲食管理功能,實(shí)現(xiàn)向飲食管理界面跳轉(zhuǎn);休息管理功能,實(shí)現(xiàn)向休息管理界面跳轉(zhuǎn);鍛煉管理功能,實(shí)現(xiàn)向鍛煉管理界面跳轉(zhuǎn);個人信息管理功能,實(shí)現(xiàn)向個人信息管理界面的跳轉(zhuǎn);評分系統(tǒng)功能,實(shí)現(xiàn)向評分系統(tǒng)界面的跳轉(zhuǎn);退出功能,實(shí)現(xiàn)退出系統(tǒng)功能。用例圖如下:圖5-4主界面用例圖系統(tǒng)流程圖如下:圖5-5主界面系統(tǒng)流程圖主界面使用數(shù)據(jù)庫表DB_CHART,根據(jù)一定評分規(guī)則進(jìn)行評分,提取相關(guān)信息并根據(jù)規(guī)則進(jìn)行分?jǐn)?shù)轉(zhuǎn)換,更新數(shù)據(jù),通過平均分?jǐn)?shù)以不同顏色象征顯示健康狀況;DB_CHART_MONTH,根據(jù)DB_CHART表數(shù)據(jù)內(nèi)容,記錄上一個月的平均分?jǐn)?shù)并插入。5.5飲水管理界面設(shè)計(jì)飲水管理界面要實(shí)現(xiàn)的功能有:查看飲水進(jìn)度功能,顯示喝水量總量、現(xiàn)量、進(jìn)度等信息;飲水功能,通過飲水按鈕同步飲水狀態(tài),增加喝水現(xiàn)量;設(shè)置飲水信息功能,設(shè)置飲水的總量和每次飲水量;提供飲水小常識功能,例如喝水的壞習(xí)慣、喝水的最佳時間、喝水的功效、推薦喝水量等內(nèi)容,通過點(diǎn)擊按鈕彈出對應(yīng)的信息。詳細(xì)用例圖如下:圖5-6引水管理界面用例圖系統(tǒng)流程圖如下:圖5-7飲水管理系統(tǒng)流程圖飲水管理使用數(shù)據(jù)庫表DB_DRINK,記錄數(shù)據(jù)有標(biāo)識ID、喝水目標(biāo)量、現(xiàn)量、增量、是否完成目標(biāo),用于其它功能使用;DB_CHART,用于記錄是否完成喝水目標(biāo),以便進(jìn)行評分。5.6鍛煉管理界面設(shè)計(jì)鍛煉管理界面需要實(shí)現(xiàn)的功能有:查詢當(dāng)前日志功能,進(jìn)入界面初始化顯示當(dāng)前日期的鍛煉日志;添加鍛煉日志功能,添加新的鍛煉日志到當(dāng)前日期,內(nèi)容要求有鍛煉項(xiàng)目、鍛煉的持續(xù)時間等,添加成功后反饋提示信息;刪除日志項(xiàng)目功能,通過長按鍛煉日志Item進(jìn)行刪除操作,并反饋提示信息;按日期查詢功能,通過制定日期進(jìn)行查詢,與數(shù)據(jù)庫表進(jìn)行數(shù)據(jù)交互,得到日志數(shù)據(jù),并顯示。圖5-8鍛煉管理界面用例圖系統(tǒng)流程圖如下:圖5-9鍛煉管理系統(tǒng)流程圖鍛煉管理界面使用數(shù)據(jù)庫表DB_EXERICSE,進(jìn)行日志記錄,數(shù)據(jù)表示自增標(biāo)識_ID、鍛煉項(xiàng)目名稱、鍛煉時長、鍛煉日期,并通過該表實(shí)現(xiàn)查詢、刪除等功能;DB_CHART,記錄是否進(jìn)行過鍛煉,以便之后進(jìn)行評分使用。5.7休息管理界面設(shè)計(jì)休息管理界面需要實(shí)現(xiàn)的功能有:開啟或關(guān)閉起床提醒功能,通過switch打開或關(guān)閉該功能;設(shè)置起床提醒時間,需要打開起床提醒功能開關(guān)才可使用,可設(shè)置時間,系統(tǒng)會在設(shè)置的時間進(jìn)行鬧鈴提醒;開啟或關(guān)閉睡覺提醒功能,通過switch開啟或關(guān)閉該功能;設(shè)置睡覺提醒時間,需要打開睡覺提醒開關(guān)才可使用,可設(shè)置提醒時間,系統(tǒng)會在指定時間進(jìn)行鬧鈴提醒;開啟或關(guān)閉休息提醒功能,通過switch開啟或關(guān)閉該功能;設(shè)置休息提醒時間,需要開啟休息提醒開關(guān)方可使用,可設(shè)置時間,系統(tǒng)會在解鎖移動設(shè)備屏幕后經(jīng)過指定時間后進(jìn)行鬧鈴提醒休息以起到護(hù)眼的效果。圖5-10休息提醒界面用例圖系統(tǒng)流程圖如下:圖5-11休息管理系統(tǒng)流程圖休息管理界面使用數(shù)據(jù)庫表DB_TIME,需要插入刪除數(shù)據(jù)功能,數(shù)據(jù)內(nèi)容有起床提醒小時、分鐘時間,睡覺提醒小時、分鐘時間,休息提醒時間,以及三個開關(guān)的開關(guān)狀態(tài),通過查詢數(shù)據(jù)提取相應(yīng)信息用于相應(yīng)功能使用。5.8飲食管理界面設(shè)計(jì)飲食管理界面需要實(shí)現(xiàn)的功能有:春季/夏季/秋季/冬季推薦時蔬,通過點(diǎn)擊按鈕顯示推薦的春季、夏季、秋季、冬季健康時蔬,內(nèi)容要求顯示時蔬圖片、名稱和相應(yīng)的功效簡紹。系統(tǒng)用例圖如下:圖5-12飲食管理界面用例圖系統(tǒng)流程圖如下:圖5-13飲食管理系統(tǒng)流程圖5.9評分系統(tǒng)界面設(shè)計(jì)評分系統(tǒng)界面需要實(shí)現(xiàn)的功能有:本月平均健康分?jǐn)?shù),通過主頁面計(jì)算得到本月平均健康分?jǐn)?shù)并以圖表形式顯示;本月日健康分?jǐn)?shù),通過主頁面結(jié)算本月之前未結(jié)算過的分?jǐn)?shù),并通過柱狀圖形式顯示出本月每日的分?jǐn)?shù);月平均健康分?jǐn)?shù),通過主頁面結(jié)算上個月的平均分?jǐn)?shù)并插入表中,在本系統(tǒng)中通過數(shù)據(jù)庫取得數(shù)據(jù)并以柱狀圖顯示所有有值月份的平均健康分?jǐn)?shù)。圖5-13評分系統(tǒng)用例圖系統(tǒng)流程圖如下:圖5-14評分系統(tǒng)流程圖評分系統(tǒng)使用數(shù)據(jù)庫表DB_CHART,獲取本月所有日健康分?jǐn)?shù)和日期并顯示;C_CHART_MONTH,獲取所有有值月份的月平均健康分?jǐn)?shù)、日期并顯示。5.10個人信息管理界面設(shè)計(jì)個人信息管理界面需要實(shí)現(xiàn)的功能有:更改賬戶功能,點(diǎn)擊按鈕后返回登錄界面重新進(jìn)行賬戶登錄;修改個人賬戶信息功能,跳轉(zhuǎn)至修改界面,可修改賬戶的密碼、昵稱等信息,擁有基本的驗(yàn)證規(guī)則,修改成功后返回并顯示成功提示信息,失敗反饋失敗提示信息,也可以取消修改直接返回至個人信息管理界面;清除個人數(shù)據(jù),清空個人賬戶數(shù)據(jù),僅保留賬戶信息,其余表數(shù)據(jù)全部初始化。圖5-15個人信息管理界面用例圖系統(tǒng)流程圖如下:圖5-16個人信息管理流程圖個人信息管理界面使用數(shù)據(jù)庫表所有表數(shù)據(jù),關(guān)于DB_ACCOUNT、DB_CURRENT_AC兩個表,當(dāng)進(jìn)行個人賬戶信息修改時,需要修改兩個表的數(shù)據(jù)。關(guān)于其余表數(shù)據(jù),當(dāng)進(jìn)行清除個人數(shù)據(jù)時會進(jìn)行數(shù)據(jù)初始化,刪除表中所有數(shù)據(jù)。6項(xiàng)目結(jié)果6.1項(xiàng)目目錄結(jié)構(gòu)圖圖6-1項(xiàng)目目錄結(jié)構(gòu)圖上圖為本項(xiàng)目目錄結(jié)構(gòu)圖,src下放置java類文件和一些txt資源文件;gen文件夾為系統(tǒng)自動生成并維護(hù);res文件夾下放置一些資源文件,例如drawable-*文件夾下放置項(xiàng)目所使用到的圖片資源,anim下放置界面切換動畫的配置文件資源,layout文件夾下放置界面配置資源文件,raw文件夾放置一些音頻文件資源;AndroidMainfest.xml文件是項(xiàng)目的配置文件。項(xiàng)目一共構(gòu)建自定義類30個,分別用于界面類、數(shù)據(jù)庫幫助類、服務(wù)類、廣播接收器、工具類、自定義組件類等。詳細(xì)見下圖:圖6-2項(xiàng)目自定義類項(xiàng)目一共構(gòu)建定義xml界面視圖21個,用于各系統(tǒng)功能界面的定義、組件內(nèi)容界面的定義等。詳細(xì)內(nèi)容見下圖:圖6-3項(xiàng)目layout配置文件6.2項(xiàng)目主要界面展示項(xiàng)目詳細(xì)功能內(nèi)容請見詳細(xì)設(shè)計(jì)內(nèi)容。圖6-4應(yīng)用圖標(biāo)圖6-5項(xiàng)目Logo界面圖6-6登錄界面圖6-7注冊界面圖6-8主界面圖6-9飲水管理界面圖6-10鍛煉管理界面圖6-11飲食管理界面圖6-12休息管理界面圖6-13個人信息管理界面圖6-14評分系統(tǒng)界面圖6-15修改賬戶信息界面6.3項(xiàng)目部分代碼項(xiàng)目主界面onCreate代碼: protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); chart_db=newChart_Dao(this); chart_month_dao=newChart_Month_Dao(this); db_account=newUserAccountDao(this); chartInit(); chart_btn=(Button)findViewById(R.id.chart); name_title=(TextView)findViewById(R._title); Cursornamebar=db_account.db_C_Query(); namebar.moveToNext(); name_title.setText(namebar.getString(2)); if(chart_goals>70)chart_btn.setBackgroundResource(R.drawable.green_btn); elseif(chart_goals<50)chart_btn.setBackgroundResource(R.drawable.red_btn_select); elsechart_btn.setBackgroundResource(R.drawable.blue_btn); }項(xiàng)目主界面計(jì)分邏輯部分代碼:chart_goals=0; Cursordata=chart_db.dbQuery(); Calendarc_date=Calendar.getInstance(); Stringdate=c_date.get(Calendar.YEAR)+"-"+(c_date.get(Calendar.MONTH)+1)+"-"+c_date.get(Calendar.DAY_OF_MONTH); if(data.moveToNext()){ if(date.split("-")[1].equals(data.getString(0).split("-")[1])){ if(!chart_db.dbQuery(date).moveToNext()){ chart_db.dbInsert(newString[]{date,"Y","N","N","N","70"}); } for(intindex=0;index<data.getCount();index++){ if("Y".equals(data.getString(4)))chart_goals+=Integer.parseInt(data.getString(5)); else{ inttemp=70; if("Y".equals(data.getString(2))&&"Y".equals(data.getString(3)))temp=100; else{ if("Y".equals(data.getString(2)))temp=90; if("Y".equals(data.getString(3)))temp=80; } chart_goals+=temp; } data.moveToNext(); } }6.4項(xiàng)目其它界面展示項(xiàng)目飲水管理系統(tǒng)、休息管理系統(tǒng)等相關(guān)功能系統(tǒng)的其它界面及一些提示信息界面的樣式詳細(xì)見下圖:圖6-16飲水知識樣式界面圖6-17推薦時蔬樣式界面圖6-18退出提示信息圖6-19鬧鈴提醒界面圖6-20飲水設(shè)置功能界面圖6-21飲水管理系統(tǒng)正在飲水中界面圖6-22添加鍛煉項(xiàng)目提示信息界面圖6-23刪除個人信息提示信息界面結(jié)論基于Android的個人健康管理系統(tǒng)共實(shí)現(xiàn)主要功能有注冊登錄功能、飲水管理功能、鍛煉管理功能、飲食管理功能、休息管理功能、評分系統(tǒng)功能、個人信息管理功能。開發(fā)過程中涉及Android、Java、SQL等知識,使用到PhotoShop、Eclipse等工具,于WindowsOS、SDK、ADK、JDK-1.8等環(huán)境下編寫。通過對基于Android的個人健康管理系統(tǒng)的設(shè)計(jì)與開發(fā),使個人從中學(xué)到很多東西,不僅將所學(xué)知識融會貫通,還掌握了許多新知識,對整個項(xiàng)目開發(fā)流程也有了一定的認(rèn)識與了解。首先就Android知識而言,通過對項(xiàng)目的設(shè)計(jì)、思考、編寫代碼等過程,加深了解了之前所學(xué)知識。同時,學(xué)到了許多新知識。通過應(yīng)用的開發(fā),對ListView、Button、ImageButton、SeekBard、TextView等組件的使用有了深入了解,對界面切換動畫的相關(guān)知識也有了一定的了解,在本次應(yīng)用中使用了大量的數(shù)據(jù)庫操作,也對數(shù)據(jù)庫的相關(guān)知識更加熟悉,對Android四大組件的使用加深了認(rèn)識。雖然此次項(xiàng)目為個人開發(fā),但是仍然認(rèn)識了解到了項(xiàng)目開發(fā)的整個流程和各個階段的作用。對于本次應(yīng)用的另一個主題,健康,通過對其的研究與了解,對相關(guān)功能的設(shè)計(jì)與資料的搜集,使加深了對健康的認(rèn)識與了解,學(xué)到了許多健康的知識。通過此次畢業(yè)設(shè)計(jì),很好的鍛煉與提升了自己的軟件開發(fā)能力與經(jīng)驗(yàn),對日后的開發(fā)與工作起到了很大的幫助。參考文獻(xiàn)張利國.代聞,龔海平Android移動開發(fā)案例詳解[M].北京:人民郵電出版社,2010王維虎,劉忠,李叢JAVA程序設(shè)計(jì)[M].華中科技大學(xué)出版社,2013程正權(quán),尹春嬌,王光亞Java程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)[M].安徽科學(xué)技術(shù)出版社,2012吳想想基于Android平臺軟件開發(fā)方法的研究與應(yīng)用[D].北京郵電大學(xué),2011馬駿驍;布魯卡;曹晨,關(guān)于UI不得不說的那些事[J].移動信息,2013Freeman,E.HeadFirstDesignPattern[M].O’ReillyMedia,Inc,2004鄭阿奇,丁有和,周怡君,鄭進(jìn)Oracle實(shí)用教程[M],電子工業(yè)出版社,2013聶少萍,黃靜芝飲水健康及其影響性研究現(xiàn)狀[J],華南預(yù)防醫(yī)學(xué),2013Johnson,Richard,A.JAVADATABASECONNECTIVITYUSINGSQLITE:ATUTORIAL[J],AlliedAcademiesInterontaionalConference,2014,(18)MarkMurphyBeginningAndroid2[M].APress,2010致謝作者在設(shè)計(jì)(論文)期間都是在降愛蓮副教授全面、具體指導(dǎo)下完成進(jìn)行的。降愛蓮副教授淵博的學(xué)識、敏銳的思維、民主而嚴(yán)謹(jǐn)?shù)淖黠L(fēng)使學(xué)生受益非淺,并終生難忘。感謝降愛蓮副教授等在畢業(yè)設(shè)計(jì)工作中給予的幫助。感謝我的學(xué)友和朋友對我的關(guān)心和幫助。外文原文Application
FundamentalsAndroid
applications
are
written
in
the
Java
programming
language.
The
compiled
Java
code
—
along
with
any
data
and
resource
files
required
by
the
application
—
is
bundled
by
the
aapt
tool
into
an
Android
package,
an
archive
file
marked
by
an
.apk
suffix.
This
file
is
the
vehicle
for
distributing
the
application
and
installing
it
on
mobile
devices;
it's
the
file
users
download
to
their
devices.
All
the
code
in
a
single
.apk
file
is
considered
to
be
one
application.
In
many
ways,
each
Android
application
lives
in
its
own
world:
(1)By
default,
every
application
runs
in
its
own
Linux
process.
Android
starts
the
process
when
any
of
the
application's
code
needs
to
be
executed,
and
shuts
down
the
process
when
it's
no
longer
needed
and
system
resources
are
required
by
other
applications.
(2)Each
process
has
its
own
virtual
machine
(VM),
so
application
code
runs
in
isolation
from
the
code
of
all
other
applications.
(3)By
default,
each
application
is
assigned
a
unique
Linux
user
ID.
Permissions
are
set
so
that
the
application's
files
are
visible
only
to
that
user
and
only
to
the
application
itself
—
although
there
are
ways
to
export
them
to
other
applications
as
well.
It's
possible
to
arrange
for
two
applications
to
share
the
same
user
ID,
in
which
case
they
will
be
able
to
see
each
other's
files.
To
conserve
system
resources,
applications
with
the
same
ID
can
also
arrange
to
run
in
the
same
Linux
process,
sharing
the
same
VM.
Application
Components
A
central
feature
of
Android
is
that
one
application
can
make
use
of
elements
of
other
applications
(provided
those
applications
permit
it).
For
example,
if
your
application
needs
to
display
a
scrolling
list
of
images
and
another
application
has
developed
a
suitable
scroller
and
made
it
available
to
others,
you
can
call
upon
that
scroller
to
do
the
work,
rather
than
develop
your
own.
Your
application
doesn'tincorporate
the
code
of
the
other
application
or
link
to
it.
Rather,
it
simply
starts
up
that
piece
of
the
other
application
when
the
need
arises.
For
this
to
work,
the
system
must
be
able
to
start
an
application
process
when
any
part
of
it
is
needed,
and
instantiate
the
Java
objects
for
that
part.
Therefore,
unlike
applications
on
most
other
systems,
Android
applications
don't
have
a
single
entry
point
for
everything
in
the
application
(no
main()
function,
for
example).
Rather,
they
have
essential
components
that
the
system
can
instantiate
and
run
as
needed.
There
are
four
types
of
components:
(1)Activities
An
activity
presents
a
visual
user
interface
for
one
focused
endeavor
the
user
can
undertake.
For
example,
an
activity
might
present
a
list
of
menu
items
users
can
choose
from
or
it
might
display
photographs
along
with
their
captions.
A
text
messaging
application
might
have
one
activity
that
shows
a
list
of
contacts
to
send
messages
to,
a
second
activity
to
write
the
message
to
the
chosen
contact,
and
other
activities
to
review
old
messages
or
change
settings.
Though
they
work
together
to
form
a
cohesive
user
interface,
each
activity
is
independent
of
the
others.
Each
one
is
implemented
as
a
subclass
of
the
Activity
base
class.
An
application
might
consist
of
just
one
activity
or,
like
the
text
messaging
application
just
mentioned,
it
may
contain
several.
What
the
activities
are,
and
how
many
there
are
depends,
of
course,
on
the
application
and
its
design.
Typically,
one
of
the
activities
is
marked
as
the
first
one
that
should
be
presented
to
the
user
when
the
application
is
launched.
Moving
from
one
activity
to
another
is
accomplished
by
having
the
current
activity
start
the
next
one.
Each
activity
is
given
a
default
window
to
draw
in.
Typically,
the
window
fills
the
screen,
but
it
might
be
smaller
than
the
screen
and
float
on
top
of
other
windows.
An
activity
can
also
make
use
of
additional
windows
—
for
example,
a
pop-up
dialog
that
calls
for
a
user
response
in
the
midst
of
the
activity,
or
a
window
that
presents
users
with
vital
information
when
they
select
a
particular
item
on-screen.
The
visual
content
of
the
window
is
provided
by
a
hierarchy
of
views
—
objects
derived
from
the
base
View
class.
Each
view
controls
a
particular
rectangular
spacewithin
the
window.
Parent
views
contain
and
organize
the
layout
of
their
children.
Leaf
views
(those
at
the
bottom
of
the
hierarchy)
draw
in
the
rectangles
they
control
and
respond
to
user
actions
directed
at
that
space.
Thus,
views
are
where
the
activity's
interaction
with
the
user
takes
place.
For
example,
a
view
might
display
a
small
image
and
initiate
an
action
when
the
user
taps
that
image.
Android
has
a
number
of
ready-made
views
that
you
can
use
—
including
buttons,
text
fields,
scroll
bars,
menu
items,
check
boxes,
and
more.
A
view
hierarchy
is
placed
within
an
activity's
window
by
the
Activity.setContentView()
method.
The
content
view
is
the
View
object
at
the
root
of
the
hierarchy.
(See
the
separate
User
Interface
document
for
more
information
on
views
and
the
hierarchy.)
(2)Services
A
service
doesn't
have
a
visual
user
interface,
but
rather
runs
in
the
background
for
an
indefinite
period
of
time.
For
example,
a
service
might
play
background
music
as
the
user
attends
to
other
matters,
or
it
might
fetch
data
over
the
network
or
calculate
something
and
provide
the
result
to
activities
that
need
it.
Each
service
extends
the
Service
base
class.
A
prime
example
is
a
media
player
playing
songs
from
a
play
list.
The
player
application
would
probably
have
one
or
more
activities
that
allow
the
user
to
choose
songs
and
start
playing
them.
However,
the
music
playback
itself
would
not
be
handled
by
an
activity
because
users
will
expect
the
music
to
keep
playing
even
after
they
leave
the
player
and
begin
something
different.
To
keep
the
music
going,
the
media
player
activity
could
start
a
service
to
run
in
the
background.
The
system
would
then
keep
the
music
playback
service
running
even
after
the
activity
that
started
it
leaves
the
screen.
It's
possible
to
connect
to
(bind
to)
an
ongoing
service
(and
start
the
service
if
it's
not
already
running).
While
connected,
you
can
communicate
with
the
service
through
an
interface
that
the
service
exposes.
For
the
music
service,
this
interface
might
allow
users
to
pause,
rewind,
stop,
and
restart
the
playback.
Like
activities
and
the
other
components,
services
run
in
the
main
thread
of
theapplication
process.
So
that
they
won't
block
other
components
or
the
user
interface,
they
often
spawn
another
thread
for
time-consuming
tasks
(like
music
playback).
See
Processes
and
Threads,
later.
(3)Broadcast
receivers
A
broadcast
receiver
is
a
component
that
does
nothing
but
receive
and
react
to
broadcast
announcements.
Many
broadcasts
originate
in
system
code
—
for
example,
announcements
that
the
timezone
has
changed,
that
the
battery
is
low,
that
a
picture
has
been
taken,
or
that
the
user
changed
a
language
preference.
Applications
can
also
initiate
broadcasts
—
for
example,
to
let
other
applications
know
that
some
data
has
been
downloaded
to
the
device
and
is
available
for
them
to
use.
An
application
can
have
any
number
of
broadcast
receivers
to
respond
to
any
announcements
it
considers
important.
All
receivers
extend
the
BroadcastReceiver
base
class.
Broadcast
receivers
do
not
display
a
user
interface.
However,
they
may
start
an
activity
in
response
to
the
information
they
receive,
or
they
may
use
the
NotificationManager
to
alert
the
user.
Notifications
can
get
the
user's
attention
in
various
ways
—
flashing
the
backlight,
vibrating
the
device,
playing
a
sound,
and
so
on.
They
typically
place
a
persistent
icon
in
the
status
bar,
which
users
can
open
to
get
the
message.
(4)Content
providers
A
content
provider
makes
a
specific
set
of
the
application's
data
available
to
other
applications.
The
data
can
be
stored
in
the
file
system,
in
an
SQLite
database,
or
in
any
other
manner
that
makes
sense.
The
content
provider
extends
the
ContentProvider
base
class
to
implement
a
standard
set
of
methods
that
enable
other
applications
to
retrieve
and
store
data
of
the
type
it
controls.
However,
applications
do
not
call
these
methods
directly.
Rather
they
use
a
ContentResolver
object
and
call
its
methods
instead.
A
ContentResolver
can
talk
to
any
content
provider;
it
cooperates
with
the
provider
to
manage
any
interprocess
communication
that's
involved.
See
the
separate
Content
Providers
document
for
more
information
on
using
content
providers.Whenever
there's
a
request
that
should
be
handled
by
a
particular
component,
Android
makes
sure
that
the
application
process
of
the
component
is
running,
starting
it
if
necessary,
and
that
an
appropriate
instance
of
the
component
is
available,
creating
the
instance
if
necessary.
Activating
components:
intents
Content
providers
are
activated
when
they're
targeted
by
a
request
from
a
ContentResolver.
The
other
three
components
—
activities,
services,
and
broadcast
receivers
—
are
activated
by
asynchronous
messages
called
intents.
An
intent
is
an
Intent
object
that
holds
the
content
of
the
message.
For
activities
and
services,
it
names
the
action
being
requested
and
specifies
the
URI
of
the
data
to
act
on,
among
other
things.
For
example,
it
might
convey
a
request
for
an
activity
to
present
an
image
to
the
user
or
let
the
user
edit
some
text.
For
broadcast
receivers,
the
Intent
object
names
the
action
being
announced.
For
example,
it
might
announce
to
interested
parties
that
the
camera
button
has
been
pressed.
There
are
separate
methods
for
activating
each
type
of
component:
(1)An
activity
is
launched
(or
given
something
new
to
do)
by
passing
an
Intent
object
to
Context.startActivity()
or
Activity.startActivityForResult().
The
responding
activity
can
look
at
the
initial
intent
that
caused
it
to
be
launched
by
calling
its
getIntent()
method.
Android
calls
the
activity's
onNewIntent()
method
to
pass
it
any
subsequent
intents.
One
activity
often
starts
the
next
one.
If
it
expects
a
result
back
from
the
activity
it's
starting,
it
calls
startActivityForResult()
instead
of
startActivity().
For
example,
if
it
starts
an
activity
that
lets
the
user
pick
a
photo,
it
might
expect
to
be
returned
the
chosen
photo.
The
result
is
returned
in
an
Intent
object
that's
passed
to
the
calling
activity's
onActivityResult()
method.
(2)A
service
is
started
(or
new
instructions
are
given
to
an
ongoing
service)
by
passing
an
Intent
object
to
Context.startService().
Android
calls
the
service's
onStart()
method
and
passes
it
the
Intent
object.
Similarly,
an
intent
can
be
passed
to
Context.bindService()
to
establish
an
ongoing
connection
between
the
calling
component
and
a
target
service.
The
service
receives
the
Intent
object
in
an
onBind()
call.
(If
the
service
is
not
already
running,
bindService()canoptionally
start
it.)
Forexample,
an
activity
might
establish
a
connection
with
the
music
playback
service
mentioned
earlier
so
that
it
can
provide
the
user
with
the
means
(a
user
interface)
for
controlling
t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深基坑計(jì)算書課程設(shè)計(jì)
- 2024年度物業(yè)服務(wù)企業(yè)合同爭議解決合同樣本3篇
- 生態(tài)監(jiān)測與大數(shù)據(jù)分析應(yīng)用考核試卷
- 電氣cad課程設(shè)計(jì)目的
- 2024宅基地租賃與農(nóng)村社區(qū)法律援助合作協(xié)議3篇
- 電容器介質(zhì)損耗與絕緣電阻測試考核試卷
- 2024年新條款:變壓器租賃合同3篇
- 特效教學(xué)課程設(shè)計(jì)
- 2024年智慧農(nóng)業(yè)示范園農(nóng)產(chǎn)品種植技術(shù)服務(wù)及推廣協(xié)議3篇
- 礦產(chǎn)勘查安全規(guī)范考核試卷
- 三相異步交流電動機(jī)的直接啟動試驗(yàn)報(bào)告(五篇)
- 電子商務(wù)概論題庫(250道)
- 一年級數(shù)學(xué)認(rèn)識鐘表-空白表盤圖(每張20圖)
- 移動互聯(lián)網(wǎng)的實(shí)訓(xùn)報(bào)告優(yōu)秀三篇
- 父愛深深 閱讀附答案
- 讀書分享 《被討厭的勇氣》
- 急性呼吸衰竭的診斷和處理
- GB/T 9846.4-2004膠合板第4部分:普通膠合板外觀分等技術(shù)條件
- 2021屆虹口區(qū)高三英語一模
- GB/T 337.1-2014工業(yè)硝酸濃硝酸
- 小學(xué)語文課程標(biāo)準(zhǔn)(2023年版)
評論
0/150
提交評論