版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢 業(yè) 設(shè) 計(jì)</b></p><p> 題目:基于android平臺(tái)的電子課表查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)</p><p> 姓 名: </p><p> 班 級(jí): 軟件班 </p><p> 學(xué) 號(hào):
2、 </p><p> 學(xué) 院: 軟件學(xué)院 </p><p> 專 業(yè): 軟件工程 </p><p> 指 導(dǎo) 教 師: </p><p> 2014年 4 月 18 日基于android平臺(tái)的電子課表查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)</p><p&g
3、t;<b> 摘 要</b></p><p> 智能手機(jī)雖然早在多年前就已出現(xiàn),但那時(shí)的智能手機(jī)的功能主要是本地應(yīng)用,這些手機(jī)以Nokia的Symbian系統(tǒng)為主。但隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來(lái),本地應(yīng)用已遠(yuǎn)遠(yuǎn)無(wú)法滿足用戶的需求了。然而在創(chuàng)新為王的今天,新的技術(shù)總在不斷取代舊的技術(shù)。以創(chuàng)新聞名的Google為了進(jìn)軍移動(dòng)廣告市場(chǎng),就開始研制新的移動(dòng)操作系統(tǒng)Android。</p>
4、<p> 本程序主要使用了Java和Android的基礎(chǔ)編程知識(shí),用戶界面采用MVC模型的電子課表應(yīng)用程序的結(jié)構(gòu)和設(shè)計(jì)實(shí)現(xiàn)過(guò)程。本程序的開發(fā)工具為Eclipse,并通過(guò)與SQLite數(shù)據(jù)庫(kù)相連,從而實(shí)現(xiàn)了基于Android的電子課表管理應(yīng)用程序。</p><p> 關(guān)鍵詞:Android,Sqlite,MVC</p><p> Query android platfor
5、m-based electronic curriculum Design and Implementation</p><p><b> Abstract</b></p><p> Although many years ago smart phones had already appeared, but at that time the smart phone&
6、#39;s main function is the local application and these phones is based on Nokia's Symbian OS.But with the arrival of the era of mobile Internet, the local application has far unable to meet the needs of users. Howeve
7、r, in innovation is the king of today, new technology is always replacing the old technology. In order to enter the mobile advertising market, Google, known for innovation, started to develop a ne</p><p> T
8、his program is mainly used the basic programming knowledge of Java and Android and user view using the MVC model. Its development tool is Eclipse, and connects to the SQLite database, thereby achieve a calendar applicati
9、on program based on Android. Its main functions include the following two aspects: first, the front display, in the application home page you can view date;Second,background management, mainly do something about create,
10、retrieve, update, delete of information.</p><p> Key words: Android, Sqlite, MVC</p><p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p> Abstract
11、2</p><p><b> 目 錄3</b></p><p> 第1章 緒 論5</p><p> 1.1 論文研究主要內(nèi)容5</p><p> 1.2 國(guó)內(nèi)外現(xiàn)狀6</p><p> 第2章 關(guān)鍵技術(shù)介紹8</p><p> 2.1 Java開
12、發(fā)方面8</p><p> 2.2 Android用戶界面技術(shù)8</p><p> 第3章 系統(tǒng)分析10</p><p> 3.1 系統(tǒng)概述10</p><p> 3.1.1 功能框架10</p><p> 3.1.2 系統(tǒng)特性11</p><p> 3.1.3 需求規(guī)格
13、11</p><p> 3.1.4 系統(tǒng)用例規(guī)約12</p><p> 3.1.5 系統(tǒng)的流程分析15</p><p> 3.2 系統(tǒng)開發(fā)環(huán)境16</p><p> 3.3 系統(tǒng)任務(wù)的可行性分析17</p><p> 第4章 系統(tǒng)設(shè)計(jì)18</p><p> 4.1 設(shè)計(jì)指
14、導(dǎo)思想和原則18</p><p> 4.1.1 指導(dǎo)思想18</p><p> 4.1.2 軟件設(shè)計(jì)原則18</p><p> 4.2 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)18</p><p> 4.3 系統(tǒng)靜態(tài)模型設(shè)計(jì)20</p><p> 4.4 數(shù)據(jù)庫(kù)設(shè)計(jì)22</p><p> 4.
15、4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的概述22</p><p> 4.4.2 概念結(jié)構(gòu)設(shè)計(jì)23</p><p> 4.4.3 邏輯結(jié)構(gòu)設(shè)計(jì)23</p><p> 4.4.4 物理結(jié)構(gòu)設(shè)計(jì)24</p><p> 第5章 系統(tǒng)實(shí)現(xiàn)25</p><p> 5.1 應(yīng)用程序功能實(shí)現(xiàn)25</p><p&g
16、t; 5.2 應(yīng)用程序界面功能實(shí)現(xiàn)25</p><p> 5.2.1 應(yīng)用程序主界面25</p><p> 5.2.2 指定課表界面27</p><p> 5.2.3 顯示所有的課表28</p><p> 5.3 數(shù)據(jù)庫(kù)存儲(chǔ)方式30</p><p> 第6章 系統(tǒng)測(cè)試32</p>
17、<p> 6.1 測(cè)試方案及測(cè)試用例32</p><p> 6.2 系統(tǒng)測(cè)試計(jì)劃32</p><p> 6.3 系統(tǒng)測(cè)試32</p><p> 6.4 測(cè)試總結(jié)33</p><p> 第7章 結(jié) 論34</p><p><b> 參考文獻(xiàn)35</b></p&
18、gt;<p><b> 致 謝36</b></p><p><b> 外文原文:37</b></p><p><b> 中文翻譯:43</b></p><p><b> 第1章 緒 論</b></p><p> Andro
19、id是由Google發(fā)布的基于Linux的開放源碼操作系統(tǒng),剛開始的時(shí)候它主要用于手機(jī)移動(dòng)設(shè)備,它是第一個(gè)完全定制、免費(fèi)、開發(fā)的手機(jī)平臺(tái)。最初由Andy Rubin開發(fā),剛開始主要支持手機(jī),后來(lái)慢慢發(fā)展逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。</p><p> Android是一種基于Linux內(nèi)核的軟件平臺(tái)和操作系統(tǒng),采用了軟件堆層(Software Stack)的架構(gòu),共分為四層。第一層是Linux內(nèi)核,提供由操作
20、系統(tǒng)內(nèi)核管理的底層基礎(chǔ);第二層是中間件層,由函數(shù)庫(kù)和Android運(yùn)行時(shí)構(gòu)成;第三層是應(yīng)用程序框架層,提供了Android平臺(tái)基本的管理功能和組建重用機(jī)制;第四層是應(yīng)用程序?qū)?,提供了一系列核心?yīng)用程序。</p><p> Android作為一種開放操作系統(tǒng),隨著它的快速發(fā)展,受到了越來(lái)越多的人的關(guān)注。</p><p> 所以就有越來(lái)越多的開發(fā)者使用許多種編程語(yǔ)言來(lái)編寫Android。而
21、不再像以前那樣只能使用單一的編程語(yǔ)言來(lái)編寫應(yīng)用程序,因而有越來(lái)越多的人來(lái)開發(fā)Android。在這幾年中由于Android的便攜性和可開發(fā)性,使得Android的操作系統(tǒng)已經(jīng)移植于越來(lái)越多的手機(jī)上。</p><p> 1.1 論文研究主要內(nèi)容</p><p> 通過(guò)開發(fā)一個(gè)項(xiàng)目,了解Android平臺(tái)的相關(guān)特性和開發(fā)的流程。</p><p><b>
22、具體來(lái)講:</b></p><p> 1、通過(guò)分析當(dāng)前階段下各種人群的喜好和對(duì)事物的關(guān)注程度來(lái)選擇究的項(xiàng)目,既日程管理軟件。</p><p> 2、通過(guò)獨(dú)立設(shè)計(jì)UI來(lái)了解Android以至于移動(dòng)平臺(tái)開發(fā)的UI的設(shè)計(jì)方法。</p><p> 3、通過(guò)選取相應(yīng)的數(shù)據(jù)存儲(chǔ)來(lái)方式存儲(chǔ)日程管理的數(shù)據(jù),來(lái)了解Android</p><p&g
23、t; 平臺(tái)的類庫(kù)和其相關(guān)的設(shè)計(jì)模式,了解其先進(jìn)的思想和API的特點(diǎn)。</p><p> 4、通過(guò)設(shè)計(jì)功能點(diǎn)來(lái)初步的了解移動(dòng)平臺(tái)開發(fā)的所需注意事項(xiàng),初步的了</p><p> 解移動(dòng)平臺(tái)的開發(fā),并了解別體會(huì)如何獲得更好的人機(jī)交互。</p><p> 5、通過(guò)測(cè)試來(lái)完善程序,使其Bug不合理地方最少化,并進(jìn)一步了解</p><p> A
24、ndroid平臺(tái)的相關(guān)先進(jìn)的特點(diǎn)和其人性化的設(shè)計(jì),與此同時(shí)熟悉軟件開 </p><p> 發(fā)的相關(guān)流程并深刻認(rèn)識(shí)在編碼時(shí)一些注意事項(xiàng)的重要性。</p><p> 6、其實(shí)完全可以通過(guò)發(fā)布程序到Google Android Market上,了解Android程序發(fā)布的流程,并通過(guò)它了解其他平臺(tái)下的開發(fā)、發(fā)布的流程。并通過(guò)用戶的反饋來(lái)進(jìn)行相關(guān)的修改?;诖烁羁痰睦斫馊藱C(jī)交互的重要性
25、和設(shè)計(jì)的重要性。</p><p><b> 1.2 國(guó)內(nèi)外現(xiàn)狀</b></p><p> Android操作系統(tǒng)于2007年在美國(guó)推出后,憑借其良好的用戶體驗(yàn),低廉的成本和較高的開放性吸引著越來(lái)越多的終端廠商采用,根據(jù)Gartner等國(guó)際研究機(jī)構(gòu)的報(bào)告,Android在這幾年的全球智能手機(jī)的市場(chǎng)份額在逐漸增多,并且于2011年成功超過(guò)了Symbian系統(tǒng)在全球智能
26、手機(jī)的市場(chǎng)份額。</p><p> 在Android出現(xiàn)之前,智能手機(jī)操作系統(tǒng)市場(chǎng)中Symbian和WM兩者占據(jù)大部分的市場(chǎng)份額,但隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,終端+應(yīng)用的趨勢(shì)逐漸成為主流的情況下,兩者的劣勢(shì)逐漸突出,而Android的優(yōu)勢(shì)也越來(lái)越明顯。Symbian由于發(fā)展了很多年,已經(jīng)被很多人熟悉,在這十多年中Symbian幾乎沒發(fā)生什么變化,它的用戶體驗(yàn)功能已經(jīng)無(wú)法滿足現(xiàn)在人的需求。WM系統(tǒng)同樣也較為封閉,
27、對(duì)終端廠商來(lái)講引入成本較為昂貴,娛樂性一般,多用于商務(wù)機(jī)型。</p><p> 2007年,蘋果iPhone上市后iOS憑借iPhone優(yōu)秀的用戶體驗(yàn)和多種多樣的功能獲得了巨大的成功,特別值得一提的是蘋果的應(yīng)用開發(fā)分成模式刺激了開發(fā)者不斷進(jìn)入,使得蘋果的應(yīng)用程序能不斷的更新和發(fā)展,截至2010年8月,可用于iOS的應(yīng)用已經(jīng)超過(guò)了25萬(wàn),蘋果公司因?yàn)轫槕?yīng)了終端+應(yīng)用的智能手機(jī)發(fā)展趨勢(shì),取得了快速的發(fā)展.但iOS也
28、有許多問題,因?yàn)閕OS屬于半開放的OS,實(shí)現(xiàn)了移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)鏈上各環(huán)節(jié)的普及還是較為困難;其次iPhone的價(jià)格比較高,短期時(shí)間內(nèi)難以滿足中低端市場(chǎng)的需求。</p><p> 而Android系統(tǒng),雖然它目前存在安全性和版本混亂等問題,但是擁有低廉的引入成本,良好的用戶體驗(yàn)和開放性較強(qiáng)的特點(diǎn),再加上Android Market和眾多第三方應(yīng)用商店做后盾,在應(yīng)用方面的資源也非常豐富。Android系統(tǒng)在近幾年取得
29、了迅猛的發(fā)展,主要還是因?yàn)槠溥m應(yīng)了移動(dòng)互聯(lián)網(wǎng)的發(fā)展趨勢(shì),符合了移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)鏈各方的發(fā)展變化需求。</p><p> 當(dāng)然,Android也同樣面臨著一些挑戰(zhàn)和爭(zhēng)議。雖然Android在發(fā)展過(guò)程中遇到一些問題,但在多方面積極的因素推動(dòng)下,總體趨勢(shì)仍舊看好。當(dāng)前,隨著HTC進(jìn)入中國(guó)市場(chǎng),以及酷派、華為、中興等終端廠商的發(fā)力,Android在國(guó)內(nèi)的發(fā)展會(huì)越來(lái)越好;而隨著Android系統(tǒng)的發(fā)展,Android手機(jī)在
30、中國(guó)市場(chǎng)的銷量在未來(lái)必然還將有較大發(fā)展空間。</p><p> 第2章 關(guān)鍵技術(shù)介紹</p><p> 2.1 Java開發(fā)方面</p><p> 對(duì)于Java語(yǔ)言而言,Android系統(tǒng)給了Java一個(gè)新的機(jī)會(huì)。隨著Android平臺(tái)在市場(chǎng)占有率的逐漸上升,采用Java語(yǔ)言開發(fā)的Android應(yīng)用肯定會(huì)越來(lái)越多。由于Android的Java開發(fā)方面從接口到功
31、能,都有層出不窮的變化,所以Android支持并使用了Java作為編程語(yǔ)言來(lái)開發(fā)應(yīng)用程序。為了能夠提高效率和減少資源占用并且考慮到Java虛擬機(jī)的效率和資源的占用,Google重新設(shè)計(jì)了Android的Java,因而它與J2ME等有許多不同之處。其中Activity就是一個(gè)Android的用戶界面,一個(gè)Activity類(Class)主要負(fù)責(zé)創(chuàng)建UI界面(Windows),Service就是一個(gè)活動(dòng)中的Activity在前景模式,背景運(yùn)
32、行下的程序。它們兩者之間通過(guò)由ServiceConnection和AIDL連接,達(dá)到多種程序同時(shí)運(yùn)行的效果。如果運(yùn)行中的Activity下的全部畫面被其他的Activity取代時(shí),該Activity便會(huì)被停止(Stopped),甚至有可能會(huì)被系統(tǒng)清除(Kill)。在Android中的View和J2ME的Displayable挺類似的,程序開發(fā)人</p><p> 2.2 Android用戶界面技術(shù)</p&
33、gt;<p> Android用戶界面框架采用MVC模型。MVC模型為用戶界面提供了處理用戶輸入的控制器,顯示用戶界面和圖像的視圖,以及保存數(shù)據(jù)和代碼的模型。MVC模型中的視圖將應(yīng)用程序的信息反饋給用戶,可能的反饋方法包括視覺、聽覺或觸覺等,但最常用的就是通過(guò)屏幕顯示反饋信息。</p><p><b> ?。?)創(chuàng)建界面</b></p><p> ?、?/p>
34、通過(guò)工程下的res/layout目錄下的main.xml,mydate.xml,record.xml,about.xml等配置文件,分別設(shè)置日程應(yīng)用程序的主界面,制定日期的界面,添加記錄的界面和關(guān)于的界面。</p><p> ?、谕ㄟ^(guò)工程下的res/values目錄下的colors.xml,strings.xml,dimension.xml配置文件獲得界面中的顏色,尺寸大小,一些屬性的名字。</p>
35、<p> ?、弁ㄟ^(guò)工程下的res/drawable目錄獲得應(yīng)用程序所用到的圖片。</p><p> ?、芡ㄟ^(guò)工程下的AndroidManifest.xml的文件來(lái)描述Android應(yīng)用程序整體資訊的設(shè)定檔。簡(jiǎn)單來(lái)說(shuō),這是一個(gè)自我介紹檔,我們可以向Android系統(tǒng)介紹我們的Android應(yīng)用程序,以便讓Android系統(tǒng)完整地了解我們的應(yīng)用程序資訊。</p><p><b
36、> (2)創(chuàng)建模型類</b></p><p> 創(chuàng)建Disservice類實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的增、刪、改、查操作,創(chuàng)建Grid類繪制萬(wàn)年類的主體部分:日期和表格,創(chuàng)建CalendarElement接口,定義繪制圖形的方法,創(chuàng)建Border類定義邊框,Remind類定義提醒時(shí)間的一些信息,AllRecord類定義記錄的一些信息。</p><p><b> ?。?)創(chuàng)
37、建控制器</b></p><p> 主要的是Main類來(lái)實(shí)現(xiàn)界面和一些模型類的交互,把結(jié)果展示在界面上。RemindSetting類設(shè)置指定日期的類,Record類設(shè)置記錄信息界面和處理記錄的交互。</p><p><b> 第3章 系統(tǒng)分析</b></p><p><b> 3.1 系統(tǒng)概述</b>&l
38、t;/p><p> 3.1.1 功能框架</p><p> 根據(jù)需求調(diào)研結(jié)果確定本系統(tǒng)主要包括以下功能模塊,如圖3.1所示。</p><p> 圖3.1 系統(tǒng)功能框架</p><p> 從系統(tǒng)功能框架中很容易看出,本應(yīng)用程序采取的是MVC模型,一個(gè)Android的Activity通過(guò)業(yè)務(wù)處理來(lái)處理一些事務(wù)并把它反映在界面之中。啟動(dòng)應(yīng)用程序
39、首先看到的是一個(gè)顯示的主界面,然后可以根據(jù)菜單選項(xiàng)訪問SQLite數(shù)據(jù)庫(kù)進(jìn)行事件的添加、修改、查看、刪除,這樣做的好處是后臺(tái)服務(wù)可以及時(shí)更新數(shù)據(jù),以保證數(shù)據(jù)的準(zhǔn)確性。設(shè)置提醒的時(shí)間功能同樣也要和數(shù)據(jù)庫(kù)相關(guān)聯(lián)進(jìn)行一系列的操作。</p><p> DB下的DBService類封裝了許多SQLite的數(shù)據(jù)庫(kù)的增、刪、改、查的操作,后臺(tái)服務(wù)會(huì)調(diào)用它來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的操作。</p><p> 3.1
40、.2 系統(tǒng)特性</p><p> 基于Android的課表應(yīng)用程序是為了向用戶展示一個(gè)友好的課表界面并能提供一系列的應(yīng)用操作的一個(gè)應(yīng)用程序。整個(gè)系統(tǒng)分為以下幾個(gè)模塊,見表3.1。</p><p> 表3.1 基于Android的課表應(yīng)用程序特性概述</p><p> 續(xù)表3.1 基于Android的課表應(yīng)用程序特性概述</p><p>
41、 3.1.3 需求規(guī)格</p><p><b> (1)日期的顯示</b></p><p> 支持的日期范圍從1901-1-1至2100-12-31,在日期界面上我們能夠很詳細(xì)的看到這個(gè)月的詳細(xì)信息,在這個(gè)界面我們可以通過(guò)鍵盤和觸摸能夠看到任何一天的日期和帶有標(biāo)記的記錄信息和提醒事件的信息。</p><p> ?。?)提醒時(shí)間的管理<
42、;/p><p> 用戶可以通過(guò)提醒時(shí)間的界面來(lái)設(shè)置什么時(shí)候去提醒自己去做某件事,在提醒時(shí)間界面中用戶可以滑動(dòng)屏幕來(lái)設(shè)置小時(shí)和分鐘。</p><p> ?。?)記錄信息的管理</p><p> 通過(guò)菜單選項(xiàng)的記錄和提醒控件,用戶可以進(jìn)入記錄界面,在記錄界面中用戶可以添加、查看、修改、刪除記錄,并且為記錄設(shè)置提醒時(shí)間。這樣我們就可以在某一個(gè)時(shí)間點(diǎn)來(lái)通過(guò)程序來(lái)提醒我們做一
43、些事情。</p><p> ?。?)切換日期界面的顯示</p><p> 當(dāng)我們向任意查看某天的信息的時(shí)候,我們可以通過(guò)菜單選項(xiàng)的制定日期來(lái)進(jìn)入我們想查看的那天的日期。</p><p> ?。?)幫助界面的顯示</p><p> 在應(yīng)用程序中要把一些額外的信息告知用戶,所以就是在此界面中設(shè)置的一些信息來(lái)供用戶查看。</p>
44、<p> 3.1.4 系統(tǒng)用例規(guī)約</p><p> 課表應(yīng)用程序的幾個(gè)功能中按照前、后臺(tái)交互的功能劃分,只有提醒時(shí)間的管理和記錄信息的管理體現(xiàn)了這一部分。</p><p> 提醒時(shí)間管理的用例規(guī)約</p><p><b> ?、儆美龍D</b></p><p> 提醒時(shí)間用例圖,如圖3.2所示。<
45、/p><p> 圖3.2 提醒時(shí)間用例圖</p><p><b> ②用例描述</b></p><p> 本用例主要描述了提醒時(shí)間的相關(guān)功能和進(jìn)行相關(guān)的設(shè)置,如表3.2-3.5所示。</p><p> 表3.2 提醒時(shí)間-查看日期用例描述</p><p> 表3.3 提醒時(shí)間-查看記錄用例描
46、述</p><p> 續(xù)表3.3 提醒時(shí)間-查看記錄用例描述</p><p> 表3.4 提醒時(shí)間-設(shè)置時(shí)間用例描述</p><p> 記錄信息管理的用例規(guī)約</p><p><b> ?、儆美龍D</b></p><p> 記錄信息管理用例圖,如圖3.3所示。</p><
47、;p> 圖3.3 記錄信息管理用例圖</p><p><b> ?、谟美枋?lt;/b></p><p> 本用例主要描述了記錄信息管理的相關(guān)功能,如表3.6-3.9所示。</p><p> 表3.6 記錄信息管理-添加記錄用例描述</p><p> 表3.7 記錄信息管理-修改記錄用例描述</p>
48、<p> 表3.8 記錄信息管理-查看記錄用例描述</p><p> 表3.9 記錄信息管理-刪除記錄用例描述</p><p> 通過(guò)以上的描述,能夠很清楚的知道記錄信息相關(guān)的功能和操作的步驟,并且很容易發(fā)現(xiàn)系統(tǒng)相關(guān)方面的漏洞。</p><p> 3.1.5 系統(tǒng)的流程分析</p><p> 用戶進(jìn)入課表應(yīng)用程序可以任
49、意查看每個(gè)年份相對(duì)應(yīng)得日期,在每個(gè)日期的標(biāo)志用戶可以看到查看的那天是哪一個(gè)月的,并且可以為某一天設(shè)置記錄信息和相應(yīng)的提醒時(shí)間以便提醒我們?nèi)プ瞿骋患?,從而相?yīng)的我們也可以對(duì)這個(gè)記錄進(jìn)行添加、修改、查看、刪除操作。</p><p><b> 添加記錄模塊</b></p><p> 用戶進(jìn)入記錄信息管理頁(yè)面,點(diǎn)擊“添加”選項(xiàng)菜單,在添加記錄界面中輸入信息,如果輸入一些
50、非法字符則重新輸入信息。流程圖如圖3.4所示。</p><p> 圖3.4 添加記錄流程圖</p><p><b> 設(shè)置提醒時(shí)間模塊</b></p><p> 用戶進(jìn)入設(shè)置時(shí)間狀態(tài),然后通過(guò)滑動(dòng)時(shí)間選項(xiàng)來(lái)設(shè)置時(shí)間。流程圖如圖3.5所示。</p><p> 圖3.5 設(shè)置提醒時(shí)間流程圖</p>&l
51、t;p> 3.2 系統(tǒng)開發(fā)環(huán)境</p><p><b> (1)軟件環(huán)境</b></p><p> 開發(fā)環(huán)境:JDK1.6、Eclipse 3.7、ADT</p><p> 數(shù)據(jù)庫(kù):SQLite數(shù)據(jù)庫(kù)</p><p> Android環(huán)境:Android SDK</p><p>&
52、lt;b> ?。?)硬件環(huán)境</b></p><p> 筆記本電腦(任何一部配置電腦即可)</p><p> 3.3 系統(tǒng)任務(wù)的可行性分析</p><p> ?。?)技術(shù)及開發(fā)方法可行性</p><p> 該應(yīng)用程序使用的是最主流和前沿的先進(jìn)技術(shù)和工具。本程序采用的是MVC模式的開發(fā),使用了Eclipse作為開發(fā)平臺(tái),
53、結(jié)合了Android和Java的基本知識(shí),采用了SQLite數(shù)據(jù)庫(kù),因?yàn)樗加玫目臻g小,并且能夠處理大量的數(shù)據(jù)。該應(yīng)用程序基于Android系統(tǒng),該系統(tǒng)提供了非常友好的界面和容易實(shí)現(xiàn)的操作,它的安全性,靈活性和易用性為數(shù)據(jù)庫(kù)和編程提供良好的條件。因此本應(yīng)用程序開發(fā)成熟可行。</p><p><b> ?。?)管理可行性</b></p><p> 通過(guò)采用系統(tǒng)結(jié)構(gòu)化的
54、設(shè)計(jì)開發(fā)方法,將整個(gè)程序劃分為多個(gè)模塊,獨(dú)立管理維護(hù),這樣當(dāng)某一個(gè)類出現(xiàn)錯(cuò)誤,就可以直接找到這個(gè)模塊進(jìn)行修改,而不用去每個(gè)類文件進(jìn)行修改。所以經(jīng)過(guò)這樣的模塊劃分,就更加有利于程序的管理和維護(hù)。</p><p><b> ?。?)經(jīng)濟(jì)可行性</b></p><p> 經(jīng)過(guò)各方面詳細(xì)謹(jǐn)慎的調(diào)研,采取了經(jīng)濟(jì)高效的開發(fā),以及科學(xué)的設(shè)計(jì)開發(fā)方法,以達(dá)到降低程序的開發(fā)成本。&l
55、t;/p><p><b> 運(yùn)行可行性</b></p><p> 本應(yīng)用程序操作簡(jiǎn)單易懂,界面友好,程序的運(yùn)行環(huán)境只要基于Android系統(tǒng)即可。本程序的開發(fā)符合軟件設(shè)計(jì)所遵循的幾大原則,符合人們的邏輯思維習(xí)慣,所以本程序的設(shè)計(jì)為以后的程序升級(jí)留有很大的空間。</p><p><b> 第4章 系統(tǒng)設(shè)計(jì)</b></
56、p><p> 4.1 設(shè)計(jì)指導(dǎo)思想和原則</p><p> 4.1.1 指導(dǎo)思想</p><p> 本應(yīng)用程序的前端開發(fā)使用的是Android布局技術(shù),而后臺(tái)數(shù)據(jù)庫(kù)采用的是SQLite數(shù)據(jù)庫(kù)。SQLite設(shè)計(jì)目標(biāo)是嵌入式的程序,它是是一款非常輕型的數(shù)據(jù)庫(kù),而且目前已經(jīng)在很多嵌入式的產(chǎn)品中使用了它,它占用的資源非常的低,在嵌入式的設(shè)備中,可能只僅僅需要幾百K的內(nèi)存就
57、足夠了,因此能夠很大程度上節(jié)約系統(tǒng)的內(nèi)存。它能夠支持目前比較主流的幾種操作系統(tǒng),并且同時(shí)也能夠跟很多編程語(yǔ)言相結(jié)合,比如PHP、Java等,還有JDBC接口,同時(shí)它的處理速度比Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)都快。SQLite雖然占用的資源很小,但是它支持的SQL語(yǔ)句絕對(duì)不會(huì)比其他開源數(shù)據(jù)庫(kù)的差,同時(shí)它還支持事務(wù)處理功能等等。本應(yīng)用程序以Eclipse為主要開發(fā)工具,整個(gè)程序在開發(fā)過(guò)程中符合MVC模式。
58、MVC模式要求對(duì)應(yīng)用分層,雖然要做許多額外的工作,但程序的結(jié)構(gòu)清晰,可擴(kuò)展性強(qiáng)、產(chǎn)品的應(yīng)用性通過(guò)MVC模式可以得到更好地體現(xiàn)。這恰恰是日程應(yīng)用程序所需要的。該程序的功能會(huì)隨著時(shí)代的發(fā)展及用戶的需要不斷的擴(kuò)展,因此這個(gè)程序需要不斷的進(jìn)行功能的升級(jí)和修改。</p><p> 4.1.2 軟件設(shè)計(jì)原則</p><p> 本應(yīng)用程序的功能主要包括兩方面:一是主界面的顯示,在程序的打開界面上能夠
59、看到日期的顯示和相關(guān)的其他信息;二是后臺(tái)管理,主要實(shí)現(xiàn)對(duì)記錄信息的增、刪、改、查等操作。進(jìn)入程序界面后,就可以很清晰地感受到該程序的設(shè)計(jì)所遵循的一貫原則,就是從人性化和智能化的角度出發(fā),很好的為用戶服務(wù)。</p><p> 4.2 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)</p><p> 根據(jù)上一章的系統(tǒng)分析,本應(yīng)用程序?qū)崿F(xiàn)的功能主要有提醒時(shí)間的管理和記錄信息的管理等操作,具體如圖4.1系統(tǒng)功能結(jié)構(gòu)圖所示
60、。</p><p> Google android 平臺(tái)的系統(tǒng)構(gòu)架圖如下所示:</p><p><b> 圖4.1</b></p><p> Android分為四層,從上層到底層分別是應(yīng)用層、應(yīng)用框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層。</p><p> (1). 應(yīng)用層。應(yīng)用層是用Java語(yǔ)言編寫的運(yùn)行在虛擬機(jī)
61、上的程序。其實(shí),Google 最開始時(shí)就在 Android 系統(tǒng)中捆綁了一些核心應(yīng)用,比如E-mail客戶端、SMS短消息程序、日歷、地圖、游覽器、聯(lián)系人管理程序,等等。</p><p> (2). 應(yīng)用框架層。這一層編寫Google 發(fā)布的核心應(yīng)用時(shí)所使用的API 框架,開發(fā)人員同樣可以使用這些框架來(lái)發(fā)布自己的應(yīng)用,這樣便簡(jiǎn)化了程序開發(fā)的構(gòu)架設(shè)計(jì),但是必須遵守其框架的開發(fā)順序。Android提供了如下一些組件
62、:</p><p> 1). 豐富而又可擴(kuò)展的視圖:可以用來(lái)構(gòu)建應(yīng)用程序,它包括列表(List)、網(wǎng)絡(luò)(Grid)、文本框(TextBox)、按鈕(Button),以及可嵌入的Web游覽器。</p><p> 2). 內(nèi)容提供器 (Content Provider):它可以讓一個(gè)應(yīng)用程序訪問另一個(gè)應(yīng)用程序的數(shù)據(jù)。</p><p> 3).資源管理器(Resou
63、re Manager):提供非代碼資源的訪問,如本地字符串、圖形和布局文件(layout file)。</p><p> 4).通知管理器(Notification Manager):應(yīng)用可以在狀態(tài)欄中顯示自定義的提示信息。</p><p> 5).活動(dòng)管理器(Activity Manager):用來(lái)管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。</p><p>
64、; 6).窗口管理器(Window Manager):管理所有的窗口程序。</p><p> 7).包管理器(Package Manager):Android系統(tǒng)內(nèi)的程序管理。</p><p> 4.3 系統(tǒng)靜態(tài)模型設(shè)計(jì)</p><p> 由于本系統(tǒng)是電子課表應(yīng)用程序,類圖主要包括了類的屬性和方法,在系統(tǒng)的實(shí)現(xiàn)上,本程序主要包括日期的繪制、添加記錄和提醒時(shí)間
65、的設(shè)置這幾個(gè)方面,所以類圖主要解釋這幾個(gè)方面的信息。</p><p> 其中日期的繪制類圖如圖4.2所示。</p><p> 圖4.2 日期的繪制類圖</p><p> 本日程的日期繪制除去配置和xml文件,主要用到了Grid.java、CalendarParent.java、CalendarView.java、Calendar.java這四個(gè)文件。</
66、p><p> CalendarParent.java</p><p> CalendarParent.java主要封裝了顯示界面的一些尺寸大小和顏色,除此之外實(shí)現(xiàn)了CalendarParent.java的接口,實(shí)現(xiàn)了draw()方法,以便讓后面的類實(shí)現(xiàn)這個(gè)類,就可以繪制日歷了。而這個(gè)類的構(gòu)造方法直接把要顯示的界面和公用的屬性放在里面。</p><p> Calen
67、dar.java</p><p> 在構(gòu)造方法里引用Grid類,并把邊框和日期全都加到日歷的顯示主界面中,然后繼承CalendarParent.java,去實(shí)現(xiàn)這個(gè)draw()方法繪制日歷。</p><p> CalendarView.java</p><p> 這個(gè)類直接繼承了View類,同樣要去用draw()這個(gè)方法去繪制日歷,然后的onTouchEven
68、t()方法的意思是當(dāng)手動(dòng)滑動(dòng)屏幕時(shí)日歷的顯示位置,而onKeyDown()方法是當(dāng)在鍵盤上按上、下、左、右四個(gè)方向鍵時(shí)日歷的顯示位置。</p><p><b> Grid.java</b></p><p> 此類是本日歷應(yīng)用程序的核心類,它的主要作用是封裝了日歷和處理一些事務(wù)的方法,主要方法具體見表4.1所示。</p><p> 表4.1
69、 Grid.java主要方法</p><p> 記錄信息的類圖如圖4.3所示。</p><p><b> 圖4.3記錄類圖</b></p><p> 本應(yīng)用程序的記錄信息方面,除了用到普通的類還要關(guān)聯(lián)數(shù)據(jù)庫(kù),并把用戶添加的記錄信息放到數(shù)據(jù)庫(kù)中。</p><p> Record.java</p>&l
70、t;p> 直接繼承了Activity類,把記錄的相關(guān)功能界面顯示在虛擬機(jī)上,并在此類中寫了兩個(gè)內(nèi)部類定義了觸發(fā)事件的方法。</p><p> AllRecord.java</p><p> 同樣繼承了ListActivity,把添加、刪除、修改記錄的界面放置在虛擬機(jī)上,并寫了內(nèi)部類來(lái)定義觸發(fā)事件的方法。</p><p> DBService.java&
71、lt;/p><p> 和數(shù)據(jù)庫(kù)直接相關(guān)連的類,在此類中封裝了增、刪、改、查相關(guān)的方法供其它類調(diào)用使用。</p><p><b> 4.4 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 4.4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)的概述</p><p> 數(shù)據(jù)庫(kù)設(shè)計(jì)是建立在數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)上的技術(shù),是信息系統(tǒng)開發(fā)和建設(shè)中的核心技術(shù)。為了支持相關(guān)程
72、序的運(yùn)行,所以數(shù)據(jù)庫(kù)的設(shè)計(jì)就變得非常復(fù)雜,又由于數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的復(fù)雜性,因此數(shù)據(jù)庫(kù)的最佳設(shè)計(jì)根本不可能就一蹴而就,而只可能是一種“反復(fù)探尋,逐步求精”的過(guò)程,也就是必須把數(shù)據(jù)庫(kù)中的一些數(shù)據(jù)對(duì)象以及這些數(shù)據(jù)對(duì)象之間關(guān)系的過(guò)程規(guī)劃和結(jié)構(gòu)化好。</p><p> 數(shù)據(jù)庫(kù)是信息系統(tǒng)的基礎(chǔ)和核心,把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來(lái),提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫(kù)中獲得所需
73、的信息。在數(shù)據(jù)庫(kù)設(shè)計(jì)和開發(fā)的過(guò)程中,它到處都透漏著軟件工程的思想。按照軟件的生命周期的思路,能把數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)從開始的規(guī)劃到最后被新系統(tǒng)所取代而停止使用的整個(gè)期間稱之為數(shù)據(jù)庫(kù)系統(tǒng)的生存期。</p><p> 4.4.2 概念結(jié)構(gòu)設(shè)計(jì)</p><p> 概念結(jié)構(gòu)設(shè)計(jì)的任務(wù)是根據(jù)需求分析階段產(chǎn)生的需求說(shuō)明書,按照指定的方法把數(shù)據(jù)模型抽象為一個(gè)不依賴于任何的具體機(jī)器,即概念模型。概念模型使
74、設(shè)計(jì)開發(fā)者的注意力能夠從繁雜的實(shí)現(xiàn)細(xì)節(jié)中解脫出來(lái),而不僅僅只集中在最重要的信息的處理模式和組織結(jié)構(gòu)上。在數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)中,通常采用E-R圖來(lái)表示數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)。E-R圖將現(xiàn)實(shí)世界的信息結(jié)構(gòu)統(tǒng)一用屬性、實(shí)體和它們之間的聯(lián)系來(lái)描述,而本應(yīng)用程序最終設(shè)計(jì)出的實(shí)體只有記錄這一個(gè),下面就說(shuō)明這個(gè)實(shí)體。</p><p> 4.4.3 邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 應(yīng)用程序的數(shù)據(jù)庫(kù)邏輯
75、設(shè)計(jì)是整個(gè)設(shè)計(jì)的前半段,包括所需的實(shí)體和關(guān)系,實(shí)體規(guī)范化等工作,數(shù)據(jù)庫(kù)的物理設(shè)計(jì)是整個(gè)設(shè)計(jì)的后半段,它包含所選擇的數(shù)據(jù)庫(kù)產(chǎn)品,確定的數(shù)據(jù)庫(kù)實(shí)體屬性(字段)、數(shù)據(jù)類型、長(zhǎng)度、精度確定、DBMS頁(yè)面大小等。數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)決定了一個(gè)數(shù)據(jù)庫(kù)及其應(yīng)用的整體性能和調(diào)優(yōu)位置。如果一個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)的不好,則所有的調(diào)優(yōu)方法對(duì)于提高數(shù)據(jù)庫(kù)性能的效果都是不明顯的。為了逐漸完善數(shù)據(jù)庫(kù)設(shè)計(jì)的方法,必須遵守?cái)?shù)據(jù)庫(kù)的相關(guān)的規(guī)范化理論。而規(guī)范化理論又為數(shù)據(jù)
76、庫(kù)的邏輯設(shè)計(jì)提供了理論性的指導(dǎo)和工具,在減少了數(shù)據(jù)冗余的同時(shí)又節(jié)約了存儲(chǔ)空間,并且同時(shí)加快了增、刪、改、查的速度。</p><p> 根據(jù)用戶的記錄信息的需求,數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)就包含一個(gè)表t_records,其字段見表4.2所示。</p><p><b> 表4.2數(shù)據(jù)庫(kù)表</b></p><p><b> 續(xù)表4.2數(shù)據(jù)庫(kù)
77、表</b></p><p> 4.4.4 物理結(jié)構(gòu)設(shè)計(jì)</p><p> 設(shè)計(jì)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),根據(jù)數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)來(lái)選定RDBMS(如Oracle、Sybase等),并設(shè)計(jì)和實(shí)施數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)、存取方式等。</p><p><b> 第5章 系統(tǒng)實(shí)現(xiàn)</b></p><p> 5.1 應(yīng)用程序功能
78、實(shí)現(xiàn)</p><p> 本系統(tǒng)的主要功能所用到類以及其作用,具體如表5.1系統(tǒng)結(jié)構(gòu)類圖說(shuō)明所示。</p><p> 表5.1 主要文件列表</p><p> 5.2 應(yīng)用程序界面功能實(shí)現(xiàn)</p><p> 5.2.1 應(yīng)用程序主界面</p><p> 應(yīng)用程序啟動(dòng)主界面如圖5.1所示。</p>
79、<p> 圖5.1 系統(tǒng)啟動(dòng)主界面</p><p> Android的每一個(gè)可視化界面都有一個(gè)唯一的布局配置文件,該文件里面有許多種布局方式,和各種資源文件如圖像,文字,顏色,本程序在運(yùn)行時(shí),可以通過(guò)代碼對(duì)各配置文件里面的內(nèi)容進(jìn)行讀取以完成Android應(yīng)用程序的界面。這樣就可以形成多種不同的可視化界面和豐富炫麗的效果。其主要代碼如下:</p><p> LinearLay
80、out mainLayout = (LinearLayout) getLayoutInflater().inflate(</p><p> R.layout.main, null);</p><p> setContentView(mainLayout);</p><p> calendarView = new CalendarView(this);</
81、p><p> mainLayout.addView(calendarView);</p><p> 該代碼主要把日程應(yīng)用程序的主界面展現(xiàn)在用戶面前。除此之外,我們能夠看到在有一個(gè)設(shè)置布局的方法setContentView(mainLayout),而該方法的mainLayout是通過(guò)是通過(guò)獲取R.java類里的ID獲取的,而此ID正是代表res/layout目錄下的main.xml文件。&l
82、t;/p><p> 下面為布局文件main.xml的代碼。</p><p> <?xml version="1.0" encoding="utf-8"?></p><p> <LinearLayout xmlns:android="http://schemas.android.com/apk/re
83、s/android"</p><p> android:orientation="vertical" android:layout_width="fill_parent"</p><p> android:layout_height="fill_parent" android:background="@co
84、lor/calendar_background"><!-- android:background="@drawable/background" --></p><p> <RelativeLayout android:id="@+id/calHeader" android:layout_width="fill_parent&q
85、uot;</p><p> android:layout_height="70dp"></p><p> <LinearLayout android:layout_width="fill_parent" </p><p> android:layout_height="wrap_content&qu
86、ot; android:layout_toRightOf="@id/ivLogo"</p><p> android:layout_marginTop="@dimen/margin" android:orientation="vertical" > </p><p> <TextView android:id=&q
87、uot;@+id/tvMsg1" android:layout_width="fill_parent"</p><p> android:layout_height="wrap_content" android:textColor="@color/text_color" android:textSize="16sp"/
88、> </p><p> </LinearLayout></p><p> </RelativeLayout></p><p> </LinearLayout></p><p> 5.2.2 指定課表界面</p><p> 日程應(yīng)用程序的指定日期界面如圖5.2所示。&l
89、t;/p><p> 圖5.2 指定課表界面</p><p> 首先需要在單擊選項(xiàng)菜單時(shí)顯示如圖5.2所示的設(shè)置課表的對(duì)話框,菜單單擊事件的代碼如下:</p><p> builder = new AlertDialog.Builder(activity);</p><p> builder.setTitle("指定日程"
90、;);</p><p> dpSelectDate.init(calendarView.ce.grid.currentYear,</p><p> calendarView.ce.grid.currentMonth,</p><p> calendarView.ce.grid.currentDay, this);</p><p> b
91、uilder.setView(myDateLayout);</p><p> adMyDate = builder.create();</p><p> onDateChanged(dpSelectDate, dpSelectDate.getYear(), dpSelectDate</p><p> .getMonth(), dpSelectDate.getD
92、ayOfMonth());</p><p> adMyDate.show();</p><p> 5.2.3 顯示所有的課表</p><p> 在類中我們可以看到實(shí)現(xiàn)記錄的一些信息的操作的代碼。當(dāng)單擊主界面選項(xiàng)菜單中的“記錄/提醒”菜單項(xiàng),會(huì)進(jìn)入記錄列表界面,如圖5.3所示,通過(guò)該界面的選項(xiàng)菜單,可以對(duì)所記錄的信息進(jìn)行增、刪、改、查操作。</p>
93、<p><b> 圖5.3 課表界面</b></p><p> 類的核心是通過(guò)數(shù)據(jù)庫(kù)來(lái)讀取記錄信息,代碼如下:</p><p> protected void onCreate(Bundle savedInstanceState)</p><p><b> {</b></p><p&
94、gt; super.onCreate(savedInstanceState);</p><p> year = getIntent().getExtras().getInt("year");</p><p> month = getIntent().getExtras().getInt("month");</p><p>
95、; day = getIntent().getExtras().getInt("day");</p><p> Cursor cursor = Grid.dbService.query(year + "-" + month + "-" + day);</p><p> if (recordArray == null)<
96、/p><p> recordArray = new ArrayList<String>();</p><p> if (arrayAdapter == null)</p><p> arrayAdapter = new ArrayAdapter<String>(this,</p><p> android.R.la
97、yout.simple_list_item_1, recordArray);</p><p><b> else</b></p><p> arrayAdapter.clear();</p><p> idList.clear();</p><p> while (cursor.moveToNext())<
98、/p><p><b> {</b></p><p> arrayAdapter.add(cursor.getString(1));</p><p> idList.add(cursor.getInt(0));</p><p><b> }</b></p><p> Re
99、sources res = getResources();</p><p> Drawable drawable = res.getDrawable(R.color.calendar_background);</p><p> this.getWindow().setBackgroundDrawable(drawable);</p><p><b>
100、 }</b></p><p> 此外,在這個(gè)類中還處理了3個(gè)選項(xiàng)菜單的事件。這三個(gè)菜單事件的代碼如下:</p><p> 增加記錄菜單的事件代碼:</p><p> Intent intent = new Intent(activity, Record.class);</p><p> activity.startActi
101、vity(intent);</p><p> 修改記錄菜單的事件代碼如下:</p><p> AllRecord allRecord = (AllRecord) activity;</p><p> int index = allRecord.getSelectedItemPosition();</p><p> if (index
102、< 0)</p><p> return false;</p><p> allRecord.startEditRecordActivity(index);</p><p> 刪除記錄菜單的事件代碼如下:</p><p> AllRecord allRecord = (AllRecord) activity;</p>
103、<p> int index = allRecord.getSelectedItemPosition();</p><p> if (index < 0)</p><p> return false;</p><p> recordArray.remove(index);</p><p> int id = id
104、List.get(index);</p><p> idList.remove(index);</p><p> allRecord.setListAdapter(arrayAdapter);</p><p> Grid.dbService.deleteRecord(id);</p><p> 5.3 數(shù)據(jù)庫(kù)存儲(chǔ)方式</p>
105、;<p> SQLite是一款非常流行的嵌入式數(shù)據(jù)庫(kù),它支持SQL查詢,并且只用很少的內(nèi)存。Android在運(yùn)行時(shí)集成了SQLite,所以每個(gè)Android應(yīng)用程序都可以使用SQLite數(shù)據(jù)庫(kù)。對(duì)數(shù)熟悉SQL的開發(fā)人員來(lái)時(shí),使用SQLite相當(dāng)簡(jiǎn)單。但是,由于JDBC不適合手機(jī)這種內(nèi)存受限設(shè)備,所以Android開發(fā)人員需要學(xué)習(xí)新的API來(lái)使用SQLite。</p><p> Android不自
106、動(dòng)提供數(shù)據(jù)庫(kù)。在Android應(yīng)用程序中使用SQLite,必須自己創(chuàng)建數(shù)據(jù)庫(kù),然后創(chuàng)建表、索引,填充數(shù)據(jù)。Android提供了SQLiteOpenHelper幫助我們創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),我們只要繼承SQLiteOpenHelper類,就可以輕松創(chuàng)建數(shù)據(jù)庫(kù)。SQLiteOpenHelper類根據(jù)開發(fā)應(yīng)用程序的需要,封裝了創(chuàng)建和更新數(shù)據(jù)庫(kù)使用的邏輯。SQLiteOpenHelper的子類,至少需要實(shí)現(xiàn)三個(gè)方法:</p><p
107、> ?構(gòu)造函數(shù),調(diào)用父類SQLiteOpenHelper的構(gòu)造函數(shù)。這個(gè)方法需要四個(gè)參數(shù):上下文環(huán)境(例如,一個(gè)Activity),數(shù)據(jù)庫(kù)名字,一個(gè)可選的游標(biāo)工廠(通常是Null),一個(gè)代表你正在使用的數(shù)據(jù)庫(kù)模型版本的整數(shù)。</p><p> ?onCreate()方法,它需要一個(gè)SQLiteDatabase對(duì)象作為參數(shù),根據(jù)需要對(duì)這個(gè)對(duì)象填充表和初始化數(shù)據(jù)。</p><p>
108、 ?onUpgrage()方法,它需要三個(gè)參數(shù),一個(gè)SQLiteDatabase對(duì)象,一個(gè)舊的版本號(hào)和一個(gè)新的版本號(hào),這樣你就可以清楚如何把一個(gè)數(shù)據(jù)庫(kù)從舊的模型轉(zhuǎn)變到新的模型。</p><p> 在日程應(yīng)用程序的DBService類中同樣實(shí)現(xiàn)了上述的三個(gè)方法來(lái)創(chuàng)建數(shù)據(jù)庫(kù)和一些操作。當(dāng)我們需要在數(shù)據(jù)庫(kù)中進(jìn)行創(chuàng)建表、刪除數(shù)據(jù)、插入數(shù)據(jù)時(shí),一般就要調(diào)用getReadableDatabase()或getWriteabl
109、eDatabase()方法,來(lái)得到SQLiteDatabase實(shí)例去改變數(shù)據(jù)庫(kù)里的內(nèi)容。其中的刪除數(shù)據(jù)的代碼如下:</p><p> public void deleteRecord(int id)</p><p><b> {</b></p><p> String sql = "delete from t_records w
110、here id = " + id;</p><p> SQLiteDatabase db = this.getWritableDatabase();</p><p> db.execSQL(sql);</p><p><b> }</b></p><p> 而查詢數(shù)據(jù)時(shí)我們就要用到Cursor游標(biāo)來(lái)遍歷
111、數(shù)據(jù)庫(kù)中的數(shù)據(jù)了,其代碼如下:</p><p> public Cursor query(String date)</p><p><b> {</b></p><p> SQLiteDatabase db = this.getReadableDatabase();</p><p> Cursor cursor
112、= db.rawQuery(</p><p> "select id,title from t_records where record_date='" + date</p><p> + "' order by id desc", null);</p><p> return cursor;</p
113、><p><b> }</b></p><p><b> 第6章 系統(tǒng)測(cè)試</b></p><p> 為了提高本應(yīng)用程序的質(zhì)量,使應(yīng)用程序的使用更加人性化,友好化,一個(gè)完整的軟件測(cè)試是必不可少的。通過(guò)軟件測(cè)試我們能夠發(fā)現(xiàn)其中的一些錯(cuò)誤和不合理的地方,這對(duì)于系統(tǒng)的完善是極有好處的。</p><p>
114、 6.1 測(cè)試方案及測(cè)試用例</p><p> 軟件測(cè)試是對(duì)軟件質(zhì)量保證的關(guān)鍵步驟,它是在軟件投入運(yùn)行前,對(duì)軟件的需求分析、軟件規(guī)格說(shuō)明和編碼實(shí)現(xiàn)的最終審查。通常對(duì)軟件的定義有兩種描述,第一軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而必須執(zhí)行的程序的過(guò)程;第二軟件測(cè)試是根據(jù)軟件設(shè)計(jì)開發(fā)各階段的需求說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)的一些測(cè)試用例,并利用這些測(cè)試用例運(yùn)行程序和及時(shí)發(fā)現(xiàn)錯(cuò)誤的過(guò)程,即執(zhí)行測(cè)試步驟。</p>
115、<p> 按照軟件測(cè)試用例的設(shè)計(jì)方法而論,軟件測(cè)試可以分為白盒測(cè)試和黑盒測(cè)試法。</p><p> 按照軟件測(cè)試的策略和過(guò)程分類,軟件測(cè)試可分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)證測(cè)試和確認(rèn)測(cè)試。</p><p> 6.2 系統(tǒng)測(cè)試計(jì)劃</p><p> 在系統(tǒng)的開發(fā)和設(shè)計(jì)過(guò)程中,對(duì)系統(tǒng)做了如下幾個(gè)方面的測(cè)試:</p><p>
116、; (1)功能及正確性測(cè)試:對(duì)后臺(tái)記錄信息的增、刪、改、查等操作的測(cè)試。</p><p> (2)及時(shí)正確的處理系統(tǒng)各種錯(cuò)誤的異常。</p><p><b> 6.3 系統(tǒng)測(cè)試</b></p><p> (1)添加記錄測(cè)試用例,具體如表6.1所示。</p><p> 功能描述:驗(yàn)證添加記錄信息功能。</p
117、><p> 用例目的:驗(yàn)證添加記錄信息功能的實(shí)現(xiàn)。</p><p> 前提條件:已經(jīng)進(jìn)入到添加記錄信息的頁(yè)面。</p><p> 表6.1 添加記錄測(cè)試</p><p> (2)修改記錄測(cè)試用例,具體如表6.2所示。</p><p> 功能描述:驗(yàn)證修改記錄信息功能。</p><p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android平臺(tái)的電子課表查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)
- 基于android平臺(tái)的電子課表查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)論文最終版.doc
- android實(shí)現(xiàn)天氣課表的應(yīng)用開發(fā)【畢業(yè)設(shè)計(jì)】
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)-基于android平臺(tái)的家具展示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--智能電子課表的設(shè)計(jì)與實(shí)現(xiàn)
- 基于android平臺(tái)的酒店即時(shí)查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 基于Android的電子海圖平臺(tái)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于android的圖片閱讀器的設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文)-基于android平臺(tái)的成績(jī)查詢應(yīng)用
- 基于android平臺(tái)的設(shè)備查詢系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- android實(shí)現(xiàn)天氣課表的應(yīng)用開發(fā)4
- android掌上社區(qū)畢業(yè)設(shè)計(jì)論文 基于android平臺(tái)的掌上社區(qū)設(shè)計(jì)與實(shí)現(xiàn)
- android個(gè)人記賬本計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文
- 基于android平臺(tái)的掌上社區(qū)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)基于android的esl管理系統(tǒng)的設(shè)計(jì)
- android畢業(yè)設(shè)計(jì)--基于android的音樂播放的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)論文-基于android平臺(tái)的家具展示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 電子與計(jì)算機(jī)畢業(yè)設(shè)計(jì)周記
- 畢業(yè)設(shè)計(jì)--基于android的電子詞典軟件的設(shè)計(jì)與實(shí)現(xiàn) (含外文翻譯)
- 基于android的背單詞軟件設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論