版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
太原理工大學畢業(yè)設(shè)計(論文)用紙畢業(yè)設(shè)計題目:基于android平臺的電子課表查詢設(shè)計與實現(xiàn)姓名:班級:軟件1015班學號:學院:軟件學院專業(yè):軟件工程指導教師:2014年4月18日
摘要智能手機雖然早在多年前就已出現(xiàn),但那時的智能手機的功能主要是本地應(yīng)用,這些手機以Nokia的Symbian系統(tǒng)為主。但隨著移動互聯(lián)網(wǎng)時代的到來,本地應(yīng)用已遠遠無法滿足用戶的需求了。然而在創(chuàng)新為王的今天,新的技術(shù)總在不斷取代舊的技術(shù)。以創(chuàng)新聞名的Google為了進軍移動廣告市場,就開始研制新的移動操作系統(tǒng)Android。本程序主要使用了Java和Android的基礎(chǔ)編程知識,用戶界面采用MVC模型的電子課表應(yīng)用程序的結(jié)構(gòu)和設(shè)計實現(xiàn)過程。本程序的開發(fā)工具為Eclipse,并通過與SQLite數(shù)據(jù)庫相連,從而實現(xiàn)了基于Android的電子課表管理應(yīng)用程序。關(guān)鍵詞:Android,Sqlite,MVC太原理工大學畢業(yè)設(shè)計(論文)用紙-Queryandroidplatform-basedelectroniccurriculumDesignandImplementationAbstractAlthoughmanyyearsagosmartphoneshadalreadyappeared,butatthattimethesmartphone'smainfunctionisthelocalapplicationandthesephonesisbasedonNokia'sSymbianOS.ButwiththearrivaloftheeraofmobileInternet,thelocalapplicationhasfarunabletomeettheneedsofusers.However,ininnovationisthekingoftoday,newtechnologyisalwaysreplacingtheoldtechnology.Inordertoenterthemobileadvertisingmarket,Google,knownforinnovation,startedtodevelopanewmobileoperatingsystemAndroid.TherehavebeenallkindsofsoftwareandapplicationstojointheAndroidsystem,thecalendarapplicationprogramasoneofthedailytools,ithasmanysmallfunctions.Mainlyinthedisplayofdategivespeopletheexpressionofthevisualeffect,inquiresthedateisveryconvenientandsimple,anditisalsoareminderofcertainfestivalsthatcanbroughtusgreatconvenience.Itisamorepracticallittletool.ThisprogramismainlyusedthebasicprogrammingknowledgeofJavaandAndroidanduserviewusingtheMVCmodel.ItsdevelopmenttoolisEclipse,andconnectstotheSQLitedatabase,therebyachieveacalendarapplicationprogrambasedonAndroid.Itsmainfunctionsincludethefollowingtwoaspects:first,thefrontdisplay,intheapplicationhomepageyoucanviewdate;Second,backgroundmanagement,mainlydosomethingaboutcreate,retrieve,update,deleteofinformation.Keywords:Android,Sqlite,MVC太原理工大學畢業(yè)設(shè)計(論文)用紙-目錄TOC\o"1-3"\h\u11726摘要 121572Abstract 225952目錄 324061第1章緒論 510271.1論文研究主要內(nèi)容 5264451.2國內(nèi)外現(xiàn)狀 628304第2章關(guān)鍵技術(shù)介紹 8291412.1Java開發(fā)方面 8224092.2Android用戶界面技術(shù) 826580第3章系統(tǒng)分析 107513.1系統(tǒng)概述 10238303.1.1功能框架 10240403.1.2系統(tǒng)特性 11144813.1.3需求規(guī)格 11123963.1.4系統(tǒng)用例規(guī)約 1250653.1.5系統(tǒng)的流程分析 1585993.2系統(tǒng)開發(fā)環(huán)境 16180303.3系統(tǒng)任務(wù)的可行性分析 1719283第4章系統(tǒng)設(shè)計 1820054.1設(shè)計指導思想和原則 18164954.1.1指導思想 1874734.1.2軟件設(shè)計原則 18164864.2系統(tǒng)的功能結(jié)構(gòu)設(shè)計 187094.3系統(tǒng)靜態(tài)模型設(shè)計 20282564.4數(shù)據(jù)庫設(shè)計 22121244.4.1數(shù)據(jù)庫設(shè)計的概述 22197604.4.2概念結(jié)構(gòu)設(shè)計 23196594.4.3邏輯結(jié)構(gòu)設(shè)計 2341954.4.4物理結(jié)構(gòu)設(shè)計 2421841第5章系統(tǒng)實現(xiàn) 2547585.1應(yīng)用程序功能實現(xiàn) 25176695.2應(yīng)用程序界面功能實現(xiàn) 259435.2.1應(yīng)用程序主界面 25183625.2.2指定課表界面 27137435.2.3顯示所有的課表 28202245.3數(shù)據(jù)庫存儲方式 3025904第6章系統(tǒng)測試 3264406.1測試方案及測試用例 327266.2系統(tǒng)測試計劃 32147156.3系統(tǒng)測試 32279576.4測試總結(jié) 3329434第7章結(jié)論 3418173參考文獻 35621致謝 3613161外文原文: 376529中文翻譯: 43太原理工大學畢業(yè)設(shè)計(論文)用紙-第1章緒論Android是由Google發(fā)布的基于Linux的開放源碼操作系統(tǒng),剛開始的時候它主要用于手機移動設(shè)備,它是第一個完全定制、免費、開發(fā)的手機平臺。最初由AndyRubin開發(fā),剛開始主要支持手機,后來慢慢發(fā)展逐漸擴展到平板電腦及其他領(lǐng)域上。Android是一種基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),采用了軟件堆層(SoftwareStack)的架構(gòu),共分為四層。第一層是Linux內(nèi)核,提供由操作系統(tǒng)內(nèi)核管理的底層基礎(chǔ);第二層是中間件層,由函數(shù)庫和Android運行時構(gòu)成;第三層是應(yīng)用程序框架層,提供了Android平臺基本的管理功能和組建重用機制;第四層是應(yīng)用程序?qū)?,提供了一系列核心?yīng)用程序。Android作為一種開放操作系統(tǒng),隨著它的快速發(fā)展,受到了越來越多的人的關(guān)注。所以就有越來越多的開發(fā)者使用許多種編程語言來編寫Android。而不再像以前那樣只能使用單一的編程語言來編寫應(yīng)用程序,因而有越來越多的人來開發(fā)Android。在這幾年中由于Android的便攜性和可開發(fā)性,使得Android的操作系統(tǒng)已經(jīng)移植于越來越多的手機上。1.1論文研究主要內(nèi)容通過開發(fā)一個項目,了解Android平臺的相關(guān)特性和開發(fā)的流程。具體來講:1、通過分析當前階段下各種人群的喜好和對事物的關(guān)注程度來選擇究的項目,既日程管理軟件。2、通過獨立設(shè)計UI來了解Android以至于移動平臺開發(fā)的UI的設(shè)計方法。3、通過選取相應(yīng)的數(shù)據(jù)存儲來方式存儲日程管理的數(shù)據(jù),來了解Android平臺的類庫和其相關(guān)的設(shè)計模式,了解其先進的思想和API的特點。4、通過設(shè)計功能點來初步的了解移動平臺開發(fā)的所需注意事項,初步的了解移動平臺的開發(fā),并了解別體會如何獲得更好的人機交互。5、通過測試來完善程序,使其Bug不合理地方最少化,并進一步了解Android平臺的相關(guān)先進的特點和其人性化的設(shè)計,與此同時熟悉軟件開發(fā)的相關(guān)流程并深刻認識在編碼時一些注意事項的重要性。6、其實完全可以通過發(fā)布程序到GoogleAndroidMarket上,了解Android程序發(fā)布的流程,并通過它了解其他平臺下的開發(fā)、發(fā)布的流程。并通過用戶的反饋來進行相關(guān)的修改?;诖烁羁痰睦斫馊藱C交互的重要性和設(shè)計的重要性。1.2國內(nèi)外現(xiàn)狀Android操作系統(tǒng)于2007年在美國推出后,憑借其良好的用戶體驗,低廉的成本和較高的開放性吸引著越來越多的終端廠商采用,根據(jù)Gartner等國際研究機構(gòu)的報告,Android在這幾年的全球智能手機的市場份額在逐漸增多,并且于2011年成功超過了Symbian系統(tǒng)在全球智能手機的市場份額。在Android出現(xiàn)之前,智能手機操作系統(tǒng)市場中Symbian和WM兩者占據(jù)大部分的市場份額,但隨著移動互聯(lián)網(wǎng)的快速發(fā)展,終端+應(yīng)用的趨勢逐漸成為主流的情況下,兩者的劣勢逐漸突出,而Android的優(yōu)勢也越來越明顯。Symbian由于發(fā)展了很多年,已經(jīng)被很多人熟悉,在這十多年中Symbian幾乎沒發(fā)生什么變化,它的用戶體驗功能已經(jīng)無法滿足現(xiàn)在人的需求。WM系統(tǒng)同樣也較為封閉,對終端廠商來講引入成本較為昂貴,娛樂性一般,多用于商務(wù)機型。2007年,蘋果iPhone上市后iOS憑借iPhone優(yōu)秀的用戶體驗和多種多樣的功能獲得了巨大的成功,特別值得一提的是蘋果的應(yīng)用開發(fā)分成模式刺激了開發(fā)者不斷進入,使得蘋果的應(yīng)用程序能不斷的更新和發(fā)展,截至2010年8月,可用于iOS的應(yīng)用已經(jīng)超過了25萬,蘋果公司因為順應(yīng)了終端+應(yīng)用的智能手機發(fā)展趨勢,取得了快速的發(fā)展.但iOS也有許多問題,因為iOS屬于半開放的OS,實現(xiàn)了移動互聯(lián)網(wǎng)產(chǎn)業(yè)鏈上各環(huán)節(jié)的普及還是較為困難;其次iPhone的價格比較高,短期時間內(nèi)難以滿足中低端市場的需求。而Android系統(tǒng),雖然它目前存在安全性和版本混亂等問題,但是擁有低廉的引入成本,良好的用戶體驗和開放性較強的特點,再加上AndroidMarket和眾多第三方應(yīng)用商店做后盾,在應(yīng)用方面的資源也非常豐富。Android系統(tǒng)在近幾年取得了迅猛的發(fā)展,主要還是因為其適應(yīng)了移動互聯(lián)網(wǎng)的發(fā)展趨勢,符合了移動互聯(lián)網(wǎng)產(chǎn)業(yè)鏈各方的發(fā)展變化需求。當然,Android也同樣面臨著一些挑戰(zhàn)和爭議。雖然Android在發(fā)展過程中遇到一些問題,但在多方面積極的因素推動下,總體趨勢仍舊看好。當前,隨著HTC進入中國市場,以及酷派、華為、中興等終端廠商的發(fā)力,Android在國內(nèi)的發(fā)展會越來越好;而隨著Android系統(tǒng)的發(fā)展,Android手機在中國市場的銷量在未來必然還將有較大發(fā)展空間。太原理工大學畢業(yè)設(shè)計(論文)用紙第2章關(guān)鍵技術(shù)介紹2.1Java開發(fā)方面對于Java語言而言,Android系統(tǒng)給了Java一個新的機會。隨著Android平臺在市場占有率的逐漸上升,采用Java語言開發(fā)的Android應(yīng)用肯定會越來越多。由于Android的Java開發(fā)方面從接口到功能,都有層出不窮的變化,所以Android支持并使用了Java作為編程語言來開發(fā)應(yīng)用程序。為了能夠提高效率和減少資源占用并且考慮到Java虛擬機的效率和資源的占用,Google重新設(shè)計了Android的Java,因而它與J2ME等有許多不同之處。其中Activity就是一個Android的用戶界面,一個Activity類(Class)主要負責創(chuàng)建UI界面(Windows),Service就是一個活動中的Activity在前景模式,背景運行下的程序。它們兩者之間通過由ServiceConnection和AIDL連接,達到多種程序同時運行的效果。如果運行中的Activity下的全部畫面被其他的Activity取代時,該Activity便會被停止(Stopped),甚至有可能會被系統(tǒng)清除(Kill)。在Android中的View和J2ME的Displayable挺類似的,程序開發(fā)人員可以通過把View類與“XMLlayout”文件放置在UI的視窗上,Android1.5的版本也可以利用View創(chuàng)建出所謂的Widgets,其實Widget只是View的一種形式,所以也可以使用xml文件來設(shè)計它的layout,現(xiàn)在的許多手機都包含大量Widget的。至于ViewGroup它是各種layout的基礎(chǔ)抽象類(abstractclass),ViewGroup之內(nèi)還可以包含ViewGroup。View的構(gòu)造函數(shù)其實是不需要在Activity中調(diào)用,但是Displayable是必須被調(diào)用的,在Activity中,是需要通過findViewById()來從XML中來獲得一個View的,并且Android的View類的顯示在很大程度上是從XML中獲取的。View與事件息息相關(guān),它們之間通過Listener結(jié)合在一起,每一個View都可以注冊一個事件監(jiān)聽器。2.2Android用戶界面技術(shù)Android用戶界面框架采用MVC模型。MVC模型為用戶界面提供了處理用戶輸入的控制器,顯示用戶界面和圖像的視圖,以及保存數(shù)據(jù)和代碼的模型。MVC模型中的視圖將應(yīng)用程序的信息反饋給用戶,可能的反饋方法包括視覺、聽覺或觸覺等,但最常用的就是通過屏幕顯示反饋信息。(1)創(chuàng)建界面①通過工程下的res/layout目錄下的main.xml,mydate.xml,record.xml,about.xml等配置文件,分別設(shè)置日程應(yīng)用程序的主界面,制定日期的界面,添加記錄的界面和關(guān)于的界面。②通過工程下的res/values目錄下的colors.xml,strings.xml,dimension.xml配置文件獲得界面中的顏色,尺寸大小,一些屬性的名字。③通過工程下的res/drawable目錄獲得應(yīng)用程序所用到的圖片。④通過工程下的AndroidManifest.xml的文件來描述Android應(yīng)用程序整體資訊的設(shè)定檔。簡單來說,這是一個自我介紹檔,我們可以向Android系統(tǒng)介紹我們的Android應(yīng)用程序,以便讓Android系統(tǒng)完整地了解我們的應(yīng)用程序資訊。(2)創(chuàng)建模型類創(chuàng)建Disservice類實現(xiàn)對數(shù)據(jù)庫的增、刪、改、查操作,創(chuàng)建Grid類繪制萬年類的主體部分:日期和表格,創(chuàng)建CalendarElement接口,定義繪制圖形的方法,創(chuàng)建Border類定義邊框,Remind類定義提醒時間的一些信息,AllRecord類定義記錄的一些信息。(3)創(chuàng)建控制器主要的是Main類來實現(xiàn)界面和一些模型類的交互,把結(jié)果展示在界面上。RemindSetting類設(shè)置指定日期的類,Record類設(shè)置記錄信息界面和處理記錄的交互。太原理工大學畢業(yè)設(shè)計(論文)用紙第3章系統(tǒng)分析3.1系統(tǒng)概述3.1.1功能框架課表應(yīng)用程序根據(jù)需求調(diào)研結(jié)果確定本系統(tǒng)主要包括以下功能模塊,如圖3.1所示。課表應(yīng)用程序 查詢幫助界面課表信息添加課表登陸 查詢幫助界面課表信息添加課表登陸業(yè)務(wù)處理業(yè)務(wù)處理DBDB圖3.1系統(tǒng)功能框架從系統(tǒng)功能框架中很容易看出,本應(yīng)用程序采取的是MVC模型,一個Android的Activity通過業(yè)務(wù)處理來處理一些事務(wù)并把它反映在界面之中。啟動應(yīng)用程序首先看到的是一個顯示的主界面,然后可以根據(jù)菜單選項訪問SQLite數(shù)據(jù)庫進行事件的添加、修改、查看、刪除,這樣做的好處是后臺服務(wù)可以及時更新數(shù)據(jù),以保證數(shù)據(jù)的準確性。設(shè)置提醒的時間功能同樣也要和數(shù)據(jù)庫相關(guān)聯(lián)進行一系列的操作。DB下的DBService類封裝了許多SQLite的數(shù)據(jù)庫的增、刪、改、查的操作,后臺服務(wù)會調(diào)用它來實現(xiàn)數(shù)據(jù)庫的操作。3.1.2系統(tǒng)特性基于Android的課表應(yīng)用程序是為了向用戶展示一個友好的課表界面并能提供一系列的應(yīng)用操作的一個應(yīng)用程序。整個系統(tǒng)分為以下幾個模塊,見表3.1。表3.1基于Android的課表應(yīng)用程序特性概述功能編號功能名稱功能描述優(yōu)先級1課表的顯示對日期按照一定的規(guī)則顯示在界面上中2提醒時間的管理對設(shè)置的提醒時間進行管理和維護高續(xù)表3.1基于Android的課表應(yīng)用程序特性概述功能編號功能名稱功能描述優(yōu)先級3記錄信息的管理對所記錄的信息進行管理和維護高4切換界面的顯示對切換日期的進行準確的顯示中5幫助界面的顯示對一些額外的信息的介紹中3.1.3需求規(guī)格(1)日期的顯示支持的日期范圍從1901-1-1至2100-12-31,在日期界面上我們能夠很詳細的看到這個月的詳細信息,在這個界面我們可以通過鍵盤和觸摸能夠看到任何一天的日期和帶有標記的記錄信息和提醒事件的信息。(2)提醒時間的管理用戶可以通過提醒時間的界面來設(shè)置什么時候去提醒自己去做某件事,在提醒時間界面中用戶可以滑動屏幕來設(shè)置小時和分鐘。(3)記錄信息的管理通過菜單選項的記錄和提醒控件,用戶可以進入記錄界面,在記錄界面中用戶可以添加、查看、修改、刪除記錄,并且為記錄設(shè)置提醒時間。這樣我們就可以在某一個時間點來通過程序來提醒我們做一些事情。(4)切換日期界面的顯示當我們向任意查看某天的信息的時候,我們可以通過菜單選項的制定日期來進入我們想查看的那天的日期。(5)幫助界面的顯示在應(yīng)用程序中要把一些額外的信息告知用戶,所以就是在此界面中設(shè)置的一些信息來供用戶查看。3.1.4系統(tǒng)用例規(guī)約課表應(yīng)用程序的幾個功能中按照前、后臺交互的功能劃分,只有提醒時間的管理和記錄信息的管理體現(xiàn)了這一部分。提醒時間管理的用例規(guī)約①用例圖提醒時間用例圖,如圖3.2所示。圖3.2提醒時間用例圖②用例描述本用例主要描述了提醒時間的相關(guān)功能和進行相關(guān)的設(shè)置,如表3.2-3.5所示。表3.2提醒時間-查看日期用例描述用例名稱查看日期參與者任何使用本應(yīng)用程序的用戶用例概述想查看某一天日期的詳細信息前置條件無基本事件流用戶打開本課表應(yīng)用程序可以制定時間的日期。當用戶使用鍵盤或者觸摸屏幕時可以查看這個日期對應(yīng)的其他信息。在有記錄的信息上添加標記,這樣用戶在查看日期時就能知道此日期對于的提醒時間。其他事件流無表3.3提醒時間-查看記錄用例描述用例名稱查看記錄參與者查看日期并且已經(jīng)設(shè)置記錄的用戶用例描述查看自己在某一天某一個時間設(shè)置的記錄信息前置條件用戶已經(jīng)在某一個記錄下設(shè)置了提醒時間續(xù)表3.3提醒時間-查看記錄用例描述基本事件流用戶打開課表應(yīng)用程序在某一天記錄信息設(shè)置相應(yīng)的提醒時間其他事件流無表3.4提醒時間-設(shè)置時間用例描述用例名稱設(shè)置時間參與者登陸本應(yīng)用程序并且已經(jīng)設(shè)置好記錄信息用例描述為某一個記錄下的事件設(shè)置時間前置條件用戶已經(jīng)記錄下時間基本事件流用戶記錄下某一事件2、在這一事件下設(shè)置指定的時間其他事件流無記錄信息管理的用例規(guī)約①用例圖記錄信息管理用例圖,如圖3.3所示。 圖3.3記錄信息管理用例圖②用例描述本用例主要描述了記錄信息管理的相關(guān)功能,如表3.6-3.9所示。表3.6記錄信息管理-添加記錄用例描述用例名稱添加記錄參與者用戶用例概述在用戶打開應(yīng)用程序后可以在記錄界面中添加記錄前置條件用戶打開應(yīng)用程序并且在記錄界面上基本事件流1、當用戶點擊“添加記錄”按鈕時,程序打開添加記錄界面2、用戶在相應(yīng)的文本框中輸入信息3、用戶點擊“完成”按鈕時,添加成功其他事件流無表3.7記錄信息管理-修改記錄用例描述用例名稱修改記錄參與者用戶用例概述在顯示記錄的界面中可以修改相關(guān)的記錄信息前置條件用戶已經(jīng)完成記錄的添加基本事件流當用戶打開“修改/查看”按鈕時,系統(tǒng)打開記錄修改頁面,并且顯示本記錄的信息2、用戶填寫相關(guān)信息,點擊“完成”按鈕時,更新記錄的信息其他時間流無表3.8記錄信息管理-查看記錄用例描述用例名稱查看記錄參與者用戶用例概述用戶查看已經(jīng)寫好的記錄前置條件用戶在應(yīng)用程序下查看日期基本事件流用戶點擊“修改/刪除”按鈕,程序打開記錄查詢頁面在此頁面下用戶可以看到各種相關(guān)的記錄的信息其他時間流無表3.9記錄信息管理-刪除記錄用例描述用例名稱刪除記錄參與者用戶用例概述用戶刪除已經(jīng)不用的記錄前置條件用戶已經(jīng)成功添加了記錄信息基本事件流用戶打開記錄界面,點擊“刪除”按鈕,就可以刪除此記錄信息刪除完成后在界面中就看不到這個記錄的信息其他時間流無通過以上的描述,能夠很清楚的知道記錄信息相關(guān)的功能和操作的步驟,并且很容易發(fā)現(xiàn)系統(tǒng)相關(guān)方面的漏洞。3.1.5系統(tǒng)的流程分析用戶進入課表應(yīng)用程序可以任意查看每個年份相對應(yīng)得日期,在每個日期的標志用戶可以看到查看的那天是哪一個月的,并且可以為某一天設(shè)置記錄信息和相應(yīng)的提醒時間以便提醒我們?nèi)プ瞿骋患?,從而相?yīng)的我們也可以對這個記錄進行添加、修改、查看、刪除操作。添加記錄模塊用戶進入記錄信息管理頁面,點擊“添加”選項菜單,在添加記錄界面中輸入信息,如果輸入一些非法字符則重新輸入信息。流程圖如圖3.4所示。 圖3.4添加記錄流程圖設(shè)置提醒時間模塊用戶進入設(shè)置時間狀態(tài),然后通過滑動時間選項來設(shè)置時間。流程圖如圖3.5所示。圖3.5設(shè)置提醒時間流程圖3.2系統(tǒng)開發(fā)環(huán)境(1)軟件環(huán)境開發(fā)環(huán)境:JDK1.6、Eclipse3.7、ADT數(shù)據(jù)庫:SQLite數(shù)據(jù)庫Android環(huán)境:AndroidSDK(2)硬件環(huán)境筆記本電腦(任何一部配置電腦即可)3.3系統(tǒng)任務(wù)的可行性分析(1)技術(shù)及開發(fā)方法可行性該應(yīng)用程序使用的是最主流和前沿的先進技術(shù)和工具。本程序采用的是MVC模式的開發(fā),使用了Eclipse作為開發(fā)平臺,結(jié)合了Android和Java的基本知識,采用了SQLite數(shù)據(jù)庫,因為它占用的空間小,并且能夠處理大量的數(shù)據(jù)。該應(yīng)用程序基于Android系統(tǒng),該系統(tǒng)提供了非常友好的界面和容易實現(xiàn)的操作,它的安全性,靈活性和易用性為數(shù)據(jù)庫和編程提供良好的條件。因此本應(yīng)用程序開發(fā)成熟可行。(2)管理可行性通過采用系統(tǒng)結(jié)構(gòu)化的設(shè)計開發(fā)方法,將整個程序劃分為多個模塊,獨立管理維護,這樣當某一個類出現(xiàn)錯誤,就可以直接找到這個模塊進行修改,而不用去每個類文件進行修改。所以經(jīng)過這樣的模塊劃分,就更加有利于程序的管理和維護。(3)經(jīng)濟可行性經(jīng)過各方面詳細謹慎的調(diào)研,采取了經(jīng)濟高效的開發(fā),以及科學的設(shè)計開發(fā)方法,以達到降低程序的開發(fā)成本。運行可行性本應(yīng)用程序操作簡單易懂,界面友好,程序的運行環(huán)境只要基于Android系統(tǒng)即可。本程序的開發(fā)符合軟件設(shè)計所遵循的幾大原則,符合人們的邏輯思維習慣,所以本程序的設(shè)計為以后的程序升級留有很大的空間。太原理工大學畢業(yè)設(shè)計(論文)用紙第4章系統(tǒng)設(shè)計4.1設(shè)計指導思想和原則4.1.1指導思想本應(yīng)用程序的前端開發(fā)使用的是Android布局技術(shù),而后臺數(shù)據(jù)庫采用的是SQLite數(shù)據(jù)庫。SQLite設(shè)計目標是嵌入式的程序,它是是一款非常輕型的數(shù)據(jù)庫,而且目前已經(jīng)在很多嵌入式的產(chǎn)品中使用了它,它占用的資源非常的低,在嵌入式的設(shè)備中,可能只僅僅需要幾百K的內(nèi)存就足夠了,因此能夠很大程度上節(jié)約系統(tǒng)的內(nèi)存。它能夠支持目前比較主流的幾種操作系統(tǒng),并且同時也能夠跟很多編程語言相結(jié)合,比如PHP、Java等,還有JDBC接口,同時它的處理速度比Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)都快。SQLite雖然占用的資源很小,但是它支持的SQL語句絕對不會比其他開源數(shù)據(jù)庫的差,同時它還支持事務(wù)處理功能等等。本應(yīng)用程序以Eclipse為主要開發(fā)工具,整個程序在開發(fā)過程中符合MVC模式。MVC模式要求對應(yīng)用分層,雖然要做許多額外的工作,但程序的結(jié)構(gòu)清晰,可擴展性強、產(chǎn)品的應(yīng)用性通過MVC模式可以得到更好地體現(xiàn)。這恰恰是日程應(yīng)用程序所需要的。該程序的功能會隨著時代的發(fā)展及用戶的需要不斷的擴展,因此這個程序需要不斷的進行功能的升級和修改。4.1.2軟件設(shè)計原則本應(yīng)用程序的功能主要包括兩方面:一是主界面的顯示,在程序的打開界面上能夠看到日期的顯示和相關(guān)的其他信息;二是后臺管理,主要實現(xiàn)對記錄信息的增、刪、改、查等操作。進入程序界面后,就可以很清晰地感受到該程序的設(shè)計所遵循的一貫原則,就是從人性化和智能化的角度出發(fā),很好的為用戶服務(wù)。4.2系統(tǒng)的功能結(jié)構(gòu)設(shè)計根據(jù)上一章的系統(tǒng)分析,本應(yīng)用程序?qū)崿F(xiàn)的功能主要有提醒時間的管理和記錄信息的管理等操作,具體如圖4.1系統(tǒng)功能結(jié)構(gòu)圖所示。Googleandroid平臺的系統(tǒng)構(gòu)架圖如下所示:圖4.1Android分為四層,從上層到底層分別是應(yīng)用層、應(yīng)用框架層、系統(tǒng)運行庫層和Linux內(nèi)核層。(1).應(yīng)用層。應(yīng)用層是用Java語言編寫的運行在虛擬機上的程序。其實,Google最開始時就在Android系統(tǒng)中捆綁了一些核心應(yīng)用,比如E-mail客戶端、SMS短消息程序、日歷、地圖、游覽器、聯(lián)系人管理程序,等等。(2).應(yīng)用框架層。這一層編寫Google發(fā)布的核心應(yīng)用時所使用的API框架,開發(fā)人員同樣可以使用這些框架來發(fā)布自己的應(yīng)用,這樣便簡化了程序開發(fā)的構(gòu)架設(shè)計,但是必須遵守其框架的開發(fā)順序。Android提供了如下一些組件:1).豐富而又可擴展的視圖:可以用來構(gòu)建應(yīng)用程序,它包括列表(List)、網(wǎng)絡(luò)(Grid)、文本框(TextBox)、按鈕(Button),以及可嵌入的Web游覽器。2).內(nèi)容提供器(ContentProvider):它可以讓一個應(yīng)用程序訪問另一個應(yīng)用程序的數(shù)據(jù)。3).資源管理器(ResoureManager):提供非代碼資源的訪問,如本地字符串、圖形和布局文件(layoutfile)。4).通知管理器(NotificationManager):應(yīng)用可以在狀態(tài)欄中顯示自定義的提示信息。5).活動管理器(ActivityManager):用來管理應(yīng)用程序生命周期并提供常用的導航回退功能。6).窗口管理器(WindowManager):管理所有的窗口程序。7).包管理器(PackageManager):Android系統(tǒng)內(nèi)的程序管理。4.3系統(tǒng)靜態(tài)模型設(shè)計由于本系統(tǒng)是電子課表應(yīng)用程序,類圖主要包括了類的屬性和方法,在系統(tǒng)的實現(xiàn)上,本程序主要包括日期的繪制、添加記錄和提醒時間的設(shè)置這幾個方面,所以類圖主要解釋這幾個方面的信息。其中日期的繪制類圖如圖4.2所示。圖4.2日期的繪制類圖本日程的日期繪制除去配置和xml文件,主要用到了Grid.java、CalendarParent.java、CalendarView.java、Calendar.java這四個文件。CalendarParent.javaCalendarParent.java主要封裝了顯示界面的一些尺寸大小和顏色,除此之外實現(xiàn)了CalendarParent.java的接口,實現(xiàn)了draw()方法,以便讓后面的類實現(xiàn)這個類,就可以繪制日歷了。而這個類的構(gòu)造方法直接把要顯示的界面和公用的屬性放在里面。Calendar.java在構(gòu)造方法里引用Grid類,并把邊框和日期全都加到日歷的顯示主界面中,然后繼承CalendarParent.java,去實現(xiàn)這個draw()方法繪制日歷。CalendarView.java這個類直接繼承了View類,同樣要去用draw()這個方法去繪制日歷,然后的onTouchEvent()方法的意思是當手動滑動屏幕時日歷的顯示位置,而onKeyDown()方法是當在鍵盤上按上、下、左、右四個方向鍵時日歷的顯示位置。Grid.java此類是本日歷應(yīng)用程序的核心類,它的主要作用是封裝了日歷和處理一些事務(wù)的方法,主要方法具體見表4.1所示。表4.1Grid.java主要方法方法名功能說明setCurrentRow(intcurrentRow)設(shè)置當前日期所在的行g(shù)etRecordDays()獲取記錄的天數(shù)setCurrentCol(intcurrentCol)設(shè)置當前日期所在的列g(shù)etCurrentRow()獲取當前日期的行g(shù)etCurrentCol()獲取當前日期的列g(shù)etMonthDays(intyear,intmonth)獲取某年某月的天數(shù)calculateDays()計算出某個月的天數(shù)updateMsg(booleantoday)更新當前日期的信息draw(Canvascanvas)繪制日期isCurrentDay()判定所選的日期是否是當天記錄信息的類圖如圖4.3所示。圖4.3記錄類圖本應(yīng)用程序的記錄信息方面,除了用到普通的類還要關(guān)聯(lián)數(shù)據(jù)庫,并把用戶添加的記錄信息放到數(shù)據(jù)庫中。Record.java直接繼承了Activity類,把記錄的相關(guān)功能界面顯示在虛擬機上,并在此類中寫了兩個內(nèi)部類定義了觸發(fā)事件的方法。AllRecord.java同樣繼承了ListActivity,把添加、刪除、修改記錄的界面放置在虛擬機上,并寫了內(nèi)部類來定義觸發(fā)事件的方法。DBService.java和數(shù)據(jù)庫直接相關(guān)連的類,在此類中封裝了增、刪、改、查相關(guān)的方法供其它類調(diào)用使用。4.4數(shù)據(jù)庫設(shè)計4.4.1數(shù)據(jù)庫設(shè)計的概述數(shù)據(jù)庫設(shè)計是建立在數(shù)據(jù)庫及其應(yīng)用系統(tǒng)上的技術(shù),是信息系統(tǒng)開發(fā)和建設(shè)中的核心技術(shù)。為了支持相關(guān)程序的運行,所以數(shù)據(jù)庫的設(shè)計就變得非常復雜,又由于數(shù)據(jù)庫應(yīng)用系統(tǒng)的復雜性,因此數(shù)據(jù)庫的最佳設(shè)計根本不可能就一蹴而就,而只可能是一種“反復探尋,逐步求精”的過程,也就是必須把數(shù)據(jù)庫中的一些數(shù)據(jù)對象以及這些數(shù)據(jù)對象之間關(guān)系的過程規(guī)劃和結(jié)構(gòu)化好。數(shù)據(jù)庫是信息系統(tǒng)的基礎(chǔ)和核心,把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時、準確地從數(shù)據(jù)庫中獲得所需的信息。在數(shù)據(jù)庫設(shè)計和開發(fā)的過程中,它到處都透漏著軟件工程的思想。按照軟件的生命周期的思路,能把數(shù)據(jù)庫的應(yīng)用系統(tǒng)從開始的規(guī)劃到最后被新系統(tǒng)所取代而停止使用的整個期間稱之為數(shù)據(jù)庫系統(tǒng)的生存期。4.4.2概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計的任務(wù)是根據(jù)需求分析階段產(chǎn)生的需求說明書,按照指定的方法把數(shù)據(jù)模型抽象為一個不依賴于任何的具體機器,即概念模型。概念模型使設(shè)計開發(fā)者的注意力能夠從繁雜的實現(xiàn)細節(jié)中解脫出來,而不僅僅只集中在最重要的信息的處理模式和組織結(jié)構(gòu)上。在數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計中,通常采用E-R圖來表示數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計。E-R圖將現(xiàn)實世界的信息結(jié)構(gòu)統(tǒng)一用屬性、實體和它們之間的聯(lián)系來描述,而本應(yīng)用程序最終設(shè)計出的實體只有記錄這一個,下面就說明這個實體。4.4.3邏輯結(jié)構(gòu)設(shè)計應(yīng)用程序的數(shù)據(jù)庫邏輯設(shè)計是整個設(shè)計的前半段,包括所需的實體和關(guān)系,實體規(guī)范化等工作,數(shù)據(jù)庫的物理設(shè)計是整個設(shè)計的后半段,它包含所選擇的數(shù)據(jù)庫產(chǎn)品,確定的數(shù)據(jù)庫實體屬性(字段)、數(shù)據(jù)類型、長度、精度確定、DBMS頁面大小等。數(shù)據(jù)庫的邏輯設(shè)計決定了一個數(shù)據(jù)庫及其應(yīng)用的整體性能和調(diào)優(yōu)位置。如果一個系統(tǒng)的數(shù)據(jù)庫的邏輯設(shè)計的不好,則所有的調(diào)優(yōu)方法對于提高數(shù)據(jù)庫性能的效果都是不明顯的。為了逐漸完善數(shù)據(jù)庫設(shè)計的方法,必須遵守數(shù)據(jù)庫的相關(guān)的規(guī)范化理論。而規(guī)范化理論又為數(shù)據(jù)庫的邏輯設(shè)計提供了理論性的指導和工具,在減少了數(shù)據(jù)冗余的同時又節(jié)約了存儲空間,并且同時加快了增、刪、改、查的速度。根據(jù)用戶的記錄信息的需求,數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計就包含一個表t_records,其字段見表4.2所示。表4.2數(shù)據(jù)庫表屬性數(shù)據(jù)類型是否為空主鍵idintegernotnullprimarykeytitlevarcharnotnullcontenttext續(xù)表4.2數(shù)據(jù)庫表屬性數(shù)據(jù)類型是否為空主鍵record_datedatenotnullremind_timetimeremindbooleanshakebooleanringboolean4.4.4物理結(jié)構(gòu)設(shè)計設(shè)計數(shù)據(jù)庫的物理結(jié)構(gòu),根據(jù)數(shù)據(jù)庫的邏輯結(jié)構(gòu)來選定RDBMS(如Oracle、Sybase等),并設(shè)計和實施數(shù)據(jù)庫的存儲結(jié)構(gòu)、存取方式等。太原理工大學畢業(yè)設(shè)計(論文)用紙第5章系統(tǒng)實現(xiàn)5.1應(yīng)用程序功能實現(xiàn)本系統(tǒng)的主要功能所用到類以及其作用,具體如表5.1系統(tǒng)結(jié)構(gòu)類圖說明所示。表5.1主要文件列表類別用到的類或文件作用布局文件main.xml顯示主界面record.xml添加記錄的界面mydate.xml指定日期的界面提醒時間的管理Remind.java封裝提醒時間的屬性RemindSeting.java指定所顯示的界面AlarmAlert.java設(shè)置提醒時間的特點記錄信息的管理Record.java指定顯示的界面和添加數(shù)據(jù)庫中AllRecord.java指定界面和處理一些事件核心類Grid.java繪制日歷和處理事務(wù)的方法5.2應(yīng)用程序界面功能實現(xiàn)5.2.1應(yīng)用程序主界面應(yīng)用程序啟動主界面如圖5.1所示。圖5.1系統(tǒng)啟動主界面Android的每一個可視化界面都有一個唯一的布局配置文件,該文件里面有許多種布局方式,和各種資源文件如圖像,文字,顏色,本程序在運行時,可以通過代碼對各配置文件里面的內(nèi)容進行讀取以完成Android應(yīng)用程序的界面。這樣就可以形成多種不同的可視化界面和豐富炫麗的效果。其主要代碼如下:LinearLayoutmainLayout=(LinearLayout)getLayoutInflater().inflate( R.layout.main,null); setContentView(mainLayout); calendarView=newCalendarView(this); mainLayout.addView(calendarView);該代碼主要把日程應(yīng)用程序的主界面展現(xiàn)在用戶面前。除此之外,我們能夠看到在有一個設(shè)置布局的方法setContentView(mainLayout),而該方法的mainLayout是通過是通過獲取R.java類里的ID獲取的,而此ID正是代表res/layout目錄下的main.xml文件。下面為布局文件main.xml的代碼。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android" android:orientation="vertical"android:layout_width="fill_parent" android:layout_height="fill_parent"android:background="@color/calendar_background"><!--android:background="@drawable/background"--> <RelativeLayoutandroid:id="@+id/calHeader"android:layout_width="fill_parent" android:layout_height="70dp"> <LinearLayoutandroid:layout_width="fill_parent" android:layout_height="wrap_content"android:layout_toRightOf="@id/ivLogo" android:layout_marginTop="@dimen/margin"android:orientation="vertical"> <TextViewandroid:id="@+id/tvMsg1"android:layout_width="fill_parent" android:layout_height="wrap_content"android:textColor="@color/text_color"android:textSize="16sp"/> </LinearLayout> </RelativeLayout></LinearLayout>5.2.2指定課表界面日程應(yīng)用程序的指定日期界面如圖5.2所示。圖5.2指定課表界面首先需要在單擊選項菜單時顯示如圖5.2所示的設(shè)置課表的對話框,菜單單擊事件的代碼如下:builder=newAlertDialog.Builder(activity);builder.setTitle("指定日程");dpSelectDate.init(calendarView.ce.grid.currentYear,calendarView.ce.grid.currentMonth,calendarView.ce.grid.currentDay,this);builder.setView(myDateLayout);adMyDate=builder.create();onDateChanged(dpSelectDate,dpSelectDate.getYear(),dpSelectDate.getMonth(),dpSelectDate.getDayOfMonth());adMyDate.show();5.2.3顯示所有的課表在類中我們可以看到實現(xiàn)記錄的一些信息的操作的代碼。當單擊主界面選項菜單中的“記錄/提醒”菜單項,會進入記錄列表界面,如圖5.3所示,通過該界面的選項菜單,可以對所記錄的信息進行增、刪、改、查操作。圖5.3課表界面類的核心是通過數(shù)據(jù)庫來讀取記錄信息,代碼如下:protectedvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); year=getIntent().getExtras().getInt("year"); month=getIntent().getExtras().getInt("month"); day=getIntent().getExtras().getInt("day"); Cursorcursor=Grid.dbService.query(year+"-"+month+"-"+day); if(recordArray==null) recordArray=newArrayList<String>(); if(arrayAdapter==null) arrayAdapter=newArrayAdapter<String>(this, android.R.layout.simple_list_item_1,recordArray); else arrayAdapter.clear(); idList.clear(); while(cursor.moveToNext()) { arrayAdapter.add(cursor.getString(1)); idList.add(cursor.getInt(0)); } Resourcesres=getResources(); Drawabledrawable=res.getDrawable(R.color.calendar_background); this.getWindow().setBackgroundDrawable(drawable);}此外,在這個類中還處理了3個選項菜單的事件。這三個菜單事件的代碼如下:增加記錄菜單的事件代碼:Intentintent=newIntent(activity,Record.class);activity.startActivity(intent);修改記錄菜單的事件代碼如下:AllRecordallRecord=(AllRecord)activity; intindex=allRecord.getSelectedItemPosition(); if(index<0) returnfalse; allRecord.startEditRecordActivity(index);刪除記錄菜單的事件代碼如下:AllRecordallRecord=(AllRecord)activity; intindex=allRecord.getSelectedItemPosition(); if(index<0) returnfalse; recordArray.remove(index); intid=idList.get(index); idList.remove(index); allRecord.setListAdapter(arrayAdapter); Grid.dbService.deleteRecord(id);5.3數(shù)據(jù)庫存儲方式SQLite是一款非常流行的嵌入式數(shù)據(jù)庫,它支持SQL查詢,并且只用很少的內(nèi)存。Android在運行時集成了SQLite,所以每個Android應(yīng)用程序都可以使用SQLite數(shù)據(jù)庫。對數(shù)熟悉SQL的開發(fā)人員來時,使用SQLite相當簡單。但是,由于JDBC不適合手機這種內(nèi)存受限設(shè)備,所以Android開發(fā)人員需要學習新的API來使用SQLite。Android不自動提供數(shù)據(jù)庫。在Android應(yīng)用程序中使用SQLite,必須自己創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建表、索引,填充數(shù)據(jù)。Android提供了SQLiteOpenHelper幫助我們創(chuàng)建一個數(shù)據(jù)庫,我們只要繼承SQLiteOpenHelper類,就可以輕松創(chuàng)建數(shù)據(jù)庫。SQLiteOpenHelper類根據(jù)開發(fā)應(yīng)用程序的需要,封裝了創(chuàng)建和更新數(shù)據(jù)庫使用的邏輯。SQLiteOpenHelper的子類,至少需要實現(xiàn)三個方法:?構(gòu)造函數(shù),調(diào)用父類SQLiteOpenHelper的構(gòu)造函數(shù)。這個方法需要四個參數(shù):上下文環(huán)境(例如,一個Activity),數(shù)據(jù)庫名字,一個可選的游標工廠(通常是Null),一個代表你正在使用的數(shù)據(jù)庫模型版本的整數(shù)。?onCreate()方法,它需要一個SQLiteDatabase對象作為參數(shù),根據(jù)需要對這個對象填充表和初始化數(shù)據(jù)。?onUpgrage()方法,它需要三個參數(shù),一個SQLiteDatabase對象,一個舊的版本號和一個新的版本號,這樣你就可以清楚如何把一個數(shù)據(jù)庫從舊的模型轉(zhuǎn)變到新的模型。在日程應(yīng)用程序的DBService類中同樣實現(xiàn)了上述的三個方法來創(chuàng)建數(shù)據(jù)庫和一些操作。當我們需要在數(shù)據(jù)庫中進行創(chuàng)建表、刪除數(shù)據(jù)、插入數(shù)據(jù)時,一般就要調(diào)用getReadableDatabase()或getWriteableDatabase()方法,來得到SQLiteDatabase實例去改變數(shù)據(jù)庫里的內(nèi)容。其中的刪除數(shù)據(jù)的代碼如下:publicvoiddeleteRecord(intid){ Stringsql="deletefromt_recordswhereid="+id; SQLiteDatabasedb=this.getWritableDatabase(); db.execSQL(sql);}而查詢數(shù)據(jù)時我們就要用到Cursor游標來遍歷數(shù)據(jù)庫中的數(shù)據(jù)了,其代碼如下:publicCursorquery(Stringdate){ SQLiteDatabasedb=this.getReadableDatabase(); Cursorcursor=db.rawQuery( "selectid,titlefromt_recordswhererecord_date='"+date +"'orderbyiddesc",null); returncursor;}太原理工大學畢業(yè)設(shè)計(論文)用紙第6章系統(tǒng)測試為了提高本應(yīng)用程序的質(zhì)量,使應(yīng)用程序的使用更加人性化,友好化,一個完整的軟件測試是必不可少的。通過軟件測試我們能夠發(fā)現(xiàn)其中的一些錯誤和不合理的地方,這對于系統(tǒng)的完善是極有好處的。6.1測試方案及測試用例軟件測試是對軟件質(zhì)量保證的關(guān)鍵步驟,它是在軟件投入運行前,對軟件的需求分析、軟件規(guī)格說明和編碼實現(xiàn)的最終審查。通常對軟件的定義有兩種描述,第一軟件測試是為了發(fā)現(xiàn)錯誤而必須執(zhí)行的程序的過程;第二軟件測試是根據(jù)軟件設(shè)計開發(fā)各階段的需求說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計的一些測試用例,并利用這些測試用例運行程序和及時發(fā)現(xiàn)錯誤的過程,即執(zhí)行測試步驟。按照軟件測試用例的設(shè)計方法而論,軟件測試可以分為白盒測試和黑盒測試法。按照軟件測試的策略和過程分類,軟件測試可分為單元測試、集成測試、系統(tǒng)測試、驗證測試和確認測試。6.2系統(tǒng)測試計劃在系統(tǒng)的開發(fā)和設(shè)計過程中,對系統(tǒng)做了如下幾個方面的測試:(1)功能及正確性測試:對后臺記錄信息的增、刪、改、查等操作的測試。(2)及時正確的處理系統(tǒng)各種錯誤的異常。6.3系統(tǒng)測試(1)添加記錄測試用例,具體如表6.1所示。功能描述:驗證添加記錄信息功能。用例目的:驗證添加記錄信息功能的實現(xiàn)。前提條件:已經(jīng)進入到添加記錄信息的頁面。表6.1添加記錄測試序號輸入/動作期望的輸出實際情況測試結(jié)果1填寫錯誤信息提示添加失敗提示添加失敗彈出警告2輸入標題和內(nèi)容記錄成功在頁面中顯示添加成功正確(2)修改記錄測試用例,具體如表6.2所示。功能描述:驗證修改記錄信息功能。用例目的:驗證修改記錄信息功能的實現(xiàn)。前提條件:已經(jīng)進入到修改記錄信息的頁面。表6.2修改記錄測試序號輸入/動作期望的輸出實際情況測試結(jié)果1填寫錯誤信息提示添加失敗程序崩潰彈出錯誤信息2輸入標題和內(nèi)容記錄成功在頁面中顯示添加成功正確(3)刪除記錄測試用例,具體如表6.3所示。功能描述:驗證刪除記錄信息功能。用例目的:驗證刪除記錄信息功能的實現(xiàn)。前提條件:已經(jīng)進入到刪除記錄信息的頁面。表6.3刪除記錄測試序號輸入/動作期望的輸出實際情況測試結(jié)果1點擊“刪除”按鈕記錄信息從頁面列表中消失刪除成功正確(4)查看記錄測試用例,具體如表6.4所示。功能描述:驗證查看記錄信息功能。用例目的:驗證查看記錄信息功能的實現(xiàn)。前提條件:已經(jīng)進入到查看記錄信息的頁面。表6.4查看記錄測試序號輸入/動作期望的輸出實際情況測試結(jié)果1點擊“查看”按鈕記錄信息在頁面中顯示查看成功正確6.4測試總結(jié)通過對各個不同功能模塊的測試,本應(yīng)用程序基本運行正確,沒什么太大的問題,但是因個人水平有限,仍然有許多地方需要改進,比如界面的美觀,提醒時間的功能的多樣性等等。一個完整的運行的系統(tǒng)不可能一步做到完美的地步,這需要在以后的學習生活中進一步完善。最后經(jīng)過多方面的方法測試,本應(yīng)用程序基本設(shè)計完成,能夠正常運行。太原理工大學畢業(yè)設(shè)計(論文)用紙第7章結(jié)論本系統(tǒng)是基于Android系統(tǒng)的應(yīng)用程序,所以主要是在Android的框架中進行開發(fā)設(shè)計。由于在Android系統(tǒng)下開發(fā)程序和在JavaME的原理類似,所以本系統(tǒng)也采用了類似于MVC模式的原理。本應(yīng)用程序由界面顯示和后臺管理組成,符合一般人的邏輯思維。本程序的一個特點是在界面上進行了優(yōu)化,在處理一些事務(wù)的邏輯算法上進行了優(yōu)化。所以,在使用本程序時會感到人性化和界面的友好。一方面,本程序采用了類似于MVC模型的開發(fā)模式,由Activity類負責調(diào)用處理事務(wù)的方法并在前臺進行顯示,由xml文件負責頁面的布局。另一方面,本應(yīng)用程序采用Java和Android的相關(guān)技術(shù),實現(xiàn)頁面的展現(xiàn)和相關(guān)邏輯思路的處理,用SQLite數(shù)據(jù)庫實現(xiàn)對記錄信息的增、刪、改、查等操作,并盡可能的在Android的UI上實現(xiàn)了美觀?;谝陨显?,使得本程序在以后的擴展和程序的升級上都有很大的空間。通過完成這次的畢業(yè)論文,使我認識的一個完整項目的開發(fā)的不易,也使我進一步加深了對數(shù)據(jù)庫操作的理解,清楚了一個完整的應(yīng)用程序開發(fā)的流程,進一步認識到一個優(yōu)秀的數(shù)據(jù)庫和良好的算法是多么的重要。而且還使我認識到一個優(yōu)秀的程序離不了測試,只有不斷的進行測試,我們的程序才能趨于完美。太原理工大學畢業(yè)設(shè)計(論文)用紙參考文獻[1].BruceEckel.JAVA編程思想[M],北京:機械工業(yè)出版社,2003.[2].賽奎春.JAVA工程應(yīng)用與項目實踐[M],北京:機械工業(yè)出版社,2002.[3].FLANAGAN.JAVA技術(shù)手冊[M],北京:中國電力出版社,2002.[4].孫涌.現(xiàn)代軟件工程[M],北京:北京希望電子出版社,2003.[5].薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M],北京:高等教育出版社,2002.[6].王向輝,張國印,沈潔.Android應(yīng)用程序開發(fā)[M],北京:清華大學出版社,2009.[7].李剛.瘋狂Android講義[M],北京:電子工業(yè)出版社,2011.[8].楊豐盛.Android應(yīng)用開發(fā)揭秘[M],北京:機械工業(yè)出版社,2010.[9].鄧凡平.深入理解Android[M],北京:機械工業(yè)出版社,2011.[10].王世江,蓋索林.GoogleAndroid開發(fā)入門指南[M],北京:人民郵電出版社,2009.[11].哈希米,克曼特內(nèi)尼,麥克萊恩.精通Android2[M],北京:人民郵電出版社,2010.[12].柯元旦.Android內(nèi)核剖析[M],北京:電子工業(yè)出版社,2011.[13].墨菲.Android開發(fā)入門教程[M],北京:人民郵電出版社,2010.[14].梅爾.Android2高級編程(第2版)[M],北京:清華大學出版社,2010.[15].郭宏志.Android應(yīng)用開發(fā)詳解[M],北京:電子工業(yè)出版社,2010.太原理工大學畢業(yè)設(shè)計(論文)用紙致謝經(jīng)過幾個月的努力,畢業(yè)設(shè)計終于完成,在這期間我學到了很多東西。而在這最后的幾個月時間也同樣離不開老師的教誨和指導,我深知如果沒有老師的指導,我的論文不可能那么順利的完成了。所以,我要感謝這四年里各位老師對我的諄諄教誨和不遺余力的學習指導。首先,我要非常感謝我的導師李紅。她為人隨和熱情,治學認真嚴謹。在平常的學習生活中能夠像朋友一樣鼓勵你,而在畢業(yè)論文的寫作和措辭等方面她總會以非常嚴格的標準要求你。從開題報告開始,一直到論文的完成,老師始終認真仔細負責的給予我細致的指導。正是由于老師的細心幫助和不厭其煩的指導,我的畢業(yè)論文才能順利完成。其次,非常感謝計算機的計算機系老師們,雖然他們沒有直接參與我的論文指導,但他們總是在關(guān)鍵的時候給予我最大的幫助和啟示,使我學到了更多的專業(yè)知識,從而能夠順利的完成畢業(yè)論文。最后,還要深深感謝我的同學和家人,是他們給予了我精神上和物質(zhì)上的鼓勵,使我得以順利完成了畢業(yè)論文??傊?,在做畢業(yè)設(shè)計期間,我學到了很多東西,這勢必會為我未來的發(fā)展打下很好的基礎(chǔ)。我不會辜負老師和同學的期望,我會更加努力的。
外文原文:ApplicationFundamentalsAndroidapplicationsarewrittenintheJavaprogramminglanguage.ThecompiledJavacode—alongwithanydataandresourcefilesrequiredbytheapplication—isbundledbytheaapttoolintoanAndroidpackage,anarchivefilemarkedbyan.apksuffix.Thisfileisthevehiclefordistributingtheapplicationandinstallingitonmobiledevices;it'sthefileusersdownloadtotheirdevices.Allthecodeinasingle.apkfileisconsideredtobeoneapplication.Inmanyways,eachAndroidapplicationlivesinitsownworld:1.Bydefault,everyapplicationrunsinitsownLinuxprocess.Androidstartstheprocesswhenanyoftheapplication'scodeneedstobeexecuted,andshutsdowntheprocesswhenit'snolongerneededandsystemresourcesarerequiredbyotherapplications.2.Eachprocesshasitsownvirtualmachine(VM),soapplicationcoderunsinisolationfromthecodeofallotherapplications.3.Bydefault,eachapplicationisassignedauniqueLinuxuserID.Permissionsaresetsothattheapplication'sfilesarevisibleonlytothatuserandonlytotheapplicationitself—althoughtherearewaystoexportthemtootherapplicationsaswell.It'spossibletoarrangefortwoapplicationstosharethesameuserID,inwhichcasetheywillbeabletoseeeachother'sfiles.Toconservesystemresources,applicationswiththesameIDcanalsoarrangetoruninthesameLinuxprocess,sharingthesameVM.ApplicationComponentsAcentralfeatureofAndroidisthatoneapplicationcanmakeuseofelementsofotherapplications(providedthoseapplicationspermitit).Forexample,ifyourapplicationneedstodisplayascrollinglistofimagesandanotherapplicationhasdevelopedasuitablescrollerandmadeitavailabletoothers,youcancalluponthatscrollertodothework,ratherthandevelopyourown.Yourapplicationdoesn'tincorporatethecodeoftheotherapplicationorlinktoit.Rather,itsimplystartsupthatpieceoftheotherapplicationwhentheneedarises.Forthistowork,thesystemmustbeabletostartanapplicationprocesswhenanypartofitisneeded,andinstantiatetheJavaobjectsforthatpart.Therefore,unlikeapplicationsonmostothersystems,Androidapplicationsdon'thaveasingleentrypointforeverythingintheapplication(nomain()function,forexample).Rather,theyhaveessentialcomponentsthatthesystemcaninstantiateandr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度啤酒產(chǎn)品線上線下融合營銷合同4篇
- 中國自有品牌發(fā)展研究報告2022-2023
- 2025年度企業(yè)間短期周轉(zhuǎn)資金借款合同模板
- 2025版牧民草場承包權(quán)流轉(zhuǎn)及收益分成合同范本4篇
- 2025年度個人合法廠房出租及配套設(shè)施使用管理合同
- 《犬貓疾病專題》課件
- 2025年度苗圃農(nóng)業(yè)廢棄物處理合作合同4篇
- 2025年度商業(yè)綜合體店鋪裝修一體化服務(wù)合同
- 2025年度草莓種植與深加工一體化項目合同3篇
- 課題申報參考:南嶺走廊瑤族傳統(tǒng)建筑壁畫圖像敘事及活化研究
- 妊娠合并低鉀血癥護理查房
- 煤礦反三違培訓課件
- 向流程設(shè)計要效率
- 安全文明施工的管理要點
- 2024年中國航空發(fā)動機集團招聘筆試參考題庫含答案解析
- 當代中外公司治理典型案例剖析(中科院研究生課件)
- 動力管道設(shè)計手冊-第2版
- 2022年重慶市中考物理試卷A卷(附答案)
- Python繪圖庫Turtle詳解(含豐富示例)
- 煤礦機電設(shè)備檢修技術(shù)規(guī)范完整版
- 榆林200MWp并網(wǎng)光伏發(fā)電項目可行性研究報告
評論
0/150
提交評論