軟件工程畢業(yè)論文-基于android系統(tǒng)的課程表的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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è)論文</b></p><p><b>  (20 屆)</b></p><p>  基于Android系統(tǒng)的課程表的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘要</b></p><p>  隨著無(wú)線移動(dòng)設(shè)備的發(fā)展,手機(jī)也日益普及,Andr

2、oid系統(tǒng)的推出使手機(jī)的發(fā)展進(jìn)入到了一個(gè)新的領(lǐng)域。世界上一些知名的移動(dòng)設(shè)備生產(chǎn)廠商對(duì)于Android智能機(jī)的開(kāi)發(fā)熱情也日益提高,Android系統(tǒng)的使用人群正在急速提升,Android應(yīng)用程序的多樣化對(duì)人們快速獲取資訊以及方便人們的生活起著不可忽視的作用,近年來(lái)Android得到了社會(huì)更多的認(rèn)同和應(yīng)用,本文主要概述了Android系統(tǒng)的體系結(jié)構(gòu),Android應(yīng)用程序的開(kāi)發(fā)環(huán)境和用JAVA語(yǔ)言開(kāi)發(fā)基于Android系統(tǒng)的課程管理系統(tǒng)中的

3、一些技術(shù)實(shí)現(xiàn)方法,這些技術(shù)包括:基于Android系統(tǒng)的電子課程表的用戶界面設(shè)計(jì),Service的使用,SQLite數(shù)據(jù)庫(kù)的建立和存儲(chǔ)。在系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中,確定系統(tǒng)的開(kāi)發(fā)思想以及開(kāi)發(fā)環(huán)境。最后給出了系統(tǒng)中模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),并對(duì)系統(tǒng)模塊涉及到的關(guān)鍵源代碼進(jìn)行了詳細(xì)的分析。經(jīng)過(guò)調(diào)試運(yùn)行后表明,系統(tǒng)可以滿足用戶的各項(xiàng)要求。</p><p>  關(guān)鍵詞:Android,JAVA,SQLite,課程管理</p&

4、gt;<p><b>  Abstract</b></p><p>  With the development of wireless mobile devices, mobile phones have been increasingly popular, and the introduction of Android system has promoted the dev

5、elopment of phones into a new area. Some of the world’s leading mobile device manufacturers have also shown great enthusiasm for the exploitation of Android intelligent machines. Beside, diversified Android application p

6、rograms play a significant role in people’s quick access to information and facilitation of people's life. Therefore, customer</p><p>  Keywords: Android,JAVA,SQLite,Class manage</p><p><

7、b>  目錄</b></p><p><b>  1緒論1</b></p><p>  1.1 項(xiàng)目背景及意義1</p><p>  1.2 國(guó)內(nèi)外現(xiàn)狀1</p><p>  1.3論文組織結(jié)構(gòu)2</p><p><b>  2相關(guān)技術(shù)分析3</b>

8、;</p><p>  2.1 Android概述3</p><p>  2.2 Android系統(tǒng)的四大組件3</p><p>  2.3 Android中的相關(guān)技術(shù)介紹及分析5</p><p>  2.3.1 Android系統(tǒng)架構(gòu)研究5</p><p>  2.3.2 Android架構(gòu)分析6</

9、p><p>  2.3.3 Android應(yīng)用程序架構(gòu)6</p><p>  2.3.4 Android運(yùn)行時(shí)組件7</p><p>  2.3.5 Android應(yīng)用的構(gòu)成和工作機(jī)制7</p><p>  2.4 Eclipse簡(jiǎn)介7</p><p>  2.5 XML簡(jiǎn)介8</p><p&

10、gt;<b>  3需求分析9</b></p><p>  3.1 系統(tǒng)需求分析9</p><p>  3.2 系統(tǒng)流程9</p><p>  3.3 功能模塊劃分9</p><p>  3.3.1課程添加模塊9</p><p><b>  4系統(tǒng)設(shè)計(jì)10</b>

11、</p><p>  4.1 概要分析10</p><p>  4.2 數(shù)據(jù)庫(kù)分析10</p><p>  4.2.1 SQLite數(shù)據(jù)表設(shè)計(jì)10</p><p>  4.3 程序中的主要類(lèi)11</p><p>  4.3.1 GalleryTabActivity類(lèi)和ClassListActivity類(lèi)11&

12、lt;/p><p>  4.3.2 ClassAddActivity類(lèi)和SettingActivity類(lèi)12</p><p>  4.3.3 SQLiteHelper類(lèi)和SQLClassTime類(lèi)12</p><p><b>  5系統(tǒng)實(shí)現(xiàn)13</b></p><p>  5.1程序首頁(yè)面13</p>

13、<p>  5.2 課程設(shè)置實(shí)現(xiàn)13</p><p>  5.3 課程星期,地點(diǎn)實(shí)現(xiàn)14</p><p>  5.4更換背景16</p><p>  5.5設(shè)置開(kāi)學(xué)日期19</p><p><b>  結(jié)論21</b></p><p><b>  參考文獻(xiàn)22<

14、;/b></p><p><b>  致謝23</b></p><p><b>  附錄24</b></p><p>  搭建Android開(kāi)發(fā)環(huán)境24</p><p><b>  1 緒論</b></p><p>  1.1 項(xiàng)目背景及意義

15、</p><p>  對(duì)于課程管理,相信大家都不會(huì)感到陌生,課程管理即是幫助老師和學(xué)生管理課程,最早以紙質(zhì)的方式存在,隨著科技的發(fā)展,電子課程管理也出現(xiàn)在了手機(jī)上,更方便的為人們管理課程,記錄課程的相關(guān)信息。在中國(guó),手機(jī)已經(jīng)成為人們?nèi)粘I畋夭豢缮俚囊徊糠郑悄苁謾C(jī)在高校人群中逐漸得到了普及,Android手機(jī)憑借其優(yōu)秀的系統(tǒng)性能以及良好的用戶體驗(yàn)迅速得到了大學(xué)學(xué)生的青睞。在高校中,上課并不像高中時(shí)期有固定的教室

16、和固定的時(shí)間,大學(xué)課程種類(lèi)繁多,并且上課地點(diǎn)和時(shí)間都不固定,一周內(nèi)極少會(huì)出現(xiàn)重復(fù)課程,所以要將課程表完整的記憶下來(lái)是一項(xiàng)很艱難的事情,每次上課時(shí)總有許多同學(xué)在上課的路上才想到不知道在哪個(gè)教室上課,于是不得不每次拿出手機(jī)打電話花兩毛錢(qián)問(wèn)同學(xué),或者一些同學(xué)一直裝個(gè)紙質(zhì)的課程表在衣袋里,極不方便。鑒于Android手機(jī)在大學(xué)中的普及率很高,于是我就想到了創(chuàng)作一個(gè)Android版的課程管理程序。將課程表放進(jìn)手機(jī)里,只需大家需要按照具體時(shí)間、課程

17、名稱(chēng)等將自己的課程信息錄入到系統(tǒng)中,為一周的每一天添加下課程安排,就可以一勞永逸。</p><p>  基于這些問(wèn)題,有必要設(shè)計(jì)一款具有課程管理程序,配合上可以讓用戶自定義上課時(shí)間以及地點(diǎn)的功能,從而避免遺忘上課的事情出現(xiàn)。</p><p><b>  1.2 國(guó)內(nèi)外現(xiàn)狀</b></p><p>  移動(dòng)互聯(lián)網(wǎng)發(fā)展的時(shí)代產(chǎn)物,學(xué)生下載課程表軟件

18、后安裝輸入學(xué)校信息管理系統(tǒng)帳號(hào)即可自動(dòng)錄入個(gè)人課程表,方便快捷。目前國(guó)內(nèi)唯一支持自動(dòng)錄入課程表的手機(jī)軟件-"超級(jí)課程表"。</p><p>  "超級(jí)課程表"是一款由幾個(gè)90后以課程表為基礎(chǔ)而展開(kāi)的校園實(shí)用軟件,面向高校大學(xué)生。其功能不僅能夠幫助大學(xué)生查閱各個(gè)大學(xué)的課程信息(包括課程時(shí)間、授課地點(diǎn)、任課老師),還可以將自己的課程安排發(fā)布到應(yīng)用中,與好友分享。除此之外,課程相

19、同或者對(duì)此感興趣的學(xué)生,可以在應(yīng)用中討論課程內(nèi)容,分享上課的筆記,共享文件資源。甚至可以認(rèn)識(shí)到同一節(jié)課任意課室范圍內(nèi)的同學(xué),擴(kuò)展交際圈,并可以向同班同學(xué)發(fā)送私信,方便同學(xué)間即時(shí)、便捷的聯(lián)系。還可以查看到全校課程,并添加入為個(gè)人旁聽(tīng)課程,制訂屬于自己的學(xué)霸計(jì)劃!綁定第三方應(yīng)用并分享到給第三方應(yīng)用的粉絲。與其它課程表應(yīng)用不同的是,“超級(jí)課程表”不需要用戶手動(dòng)添加課程,用戶輸入學(xué)校信息管理系統(tǒng)賬號(hào)后,系統(tǒng)自動(dòng)添加,方便,快捷。</p&g

20、t;<p>  “超級(jí)課程表”具有以下幾點(diǎn)功能;</p><p>  (1)對(duì)接高校教務(wù)系統(tǒng),自動(dòng)錄入課表到手機(jī);</p><p>  (2)快速記錄課堂筆記、課后作業(yè),提高學(xué)習(xí)效率;</p><p>  (3)精準(zhǔn)推薦千萬(wàn)節(jié)旁聽(tīng)課程,校內(nèi)跨院系蹭課;</p><p>  (4)軟件內(nèi)學(xué)習(xí)外語(yǔ),充實(shí)你的課余生活;</p&g

21、t;<p>  (5)精彩“下課聊”,百萬(wàn)大學(xué)生在線交流社區(qū);</p><p>  (6)同學(xué)間互傳紙條,在線交流學(xué)習(xí)。</p><p><b>  1.3論文組織結(jié)構(gòu)</b></p><p>  本文主要介紹了Android系統(tǒng)中的相關(guān)技術(shù)以及Android系統(tǒng)的架構(gòu),以及研究,分析,和實(shí)現(xiàn)基于Android電子課程表系統(tǒng),包括

22、以下幾個(gè)部分:</p><p>  第一章簡(jiǎn)要介紹了Android手機(jī)平臺(tái)的背景及國(guó)內(nèi)外發(fā)展情況。</p><p>  第二章主要寫(xiě)了本程序的可行性及需求分析。</p><p>  第三章詳述了電子課程表系統(tǒng)流程設(shè)計(jì)。以及對(duì)功能模塊的劃分。</p><p>  第四章主要敘述了對(duì)系統(tǒng)設(shè)計(jì)以及對(duì)數(shù)據(jù)庫(kù)的分析。</p><p&

23、gt;  第五章主要寫(xiě)了程序首頁(yè)以及課程設(shè)置的實(shí)現(xiàn)。</p><p><b>  2 相關(guān)技術(shù)分析</b></p><p>  2.1 Android概述</p><p>  Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備。Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布

24、的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱(chēng),該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。</p><p>  Android一詞最早出現(xiàn)于法國(guó)作家利爾亞當(dāng)(Auguste Villiers de l'Isle-Adam)在1886年發(fā)表的科幻小說(shuō)《未來(lái)夏娃》(L'ève future)中。他將外表像人的機(jī)器起名為Android。</p><p>  And

25、roid的Logo是由Ascender公司設(shè)計(jì)的,誕生于2010年,其設(shè)計(jì)靈感源于男女廁所門(mén)上的圖形符號(hào),于是布洛克繪制了一個(gè)簡(jiǎn)單的機(jī)器人,它的軀干就像錫罐的形狀,頭上還有兩根天線,Android小機(jī)器人便誕生了。其中的文字使用了Ascender公司專(zhuān)門(mén)制作的稱(chēng)之為“Droid ” 的字體。Android是一個(gè)全身綠色的機(jī)器人,綠色也是Android的標(biāo)志。顏色采用了PMS 376C和RGB中十六進(jìn)制的#A4C639來(lái)繪制,這是Andr

26、oid操作系統(tǒng)的品牌象徵。有時(shí)候,它們還會(huì)使用純文字的Logo。</p><p>  2012年7月美國(guó)科技博客網(wǎng)站BusinessInsider評(píng)選出二十一世紀(jì)十款最重要電子產(chǎn)品,Android操作系統(tǒng)和iPhone等榜上有名。</p><p>  與其他手機(jī)操作系統(tǒng)相比,Android有4個(gè)無(wú)可比擬的優(yōu)點(diǎn):</p><p>  (1)開(kāi)放性:Android系統(tǒng)同

27、時(shí)包含了底層操作系統(tǒng)以及移動(dòng)電話所需的全部軟件,不存在專(zhuān)有權(quán)障礙,開(kāi)發(fā)平臺(tái)允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來(lái),并允許不同廠商可以根據(jù)自己的需求對(duì)平臺(tái)進(jìn)行定制和擴(kuò)展,無(wú)需任何授權(quán)許可費(fèi)用;</p><p>  (2)所有應(yīng)用程序平等:Android系統(tǒng)中,系統(tǒng)核心應(yīng)用和第三方應(yīng)用都是完全平等的,用戶可以將手機(jī)中的任意應(yīng)用程序替換成所需的其他應(yīng)用程序;</p><p>  (3)

28、應(yīng)用程序間無(wú)界限:開(kāi)發(fā)人員可以吧Web上的數(shù)據(jù)與本地的日歷、聯(lián)系人、位置信息結(jié)合起來(lái),應(yīng)用程序還可聲明它們可供其他程序使用;</p><p>  (4)快速方便的應(yīng)用程序開(kāi)發(fā):Android平臺(tái)為開(kāi)發(fā)人員提供了大量的實(shí)用庫(kù)及工具,可以讓開(kāi)發(fā)人員快速的創(chuàng)建自己的應(yīng)用。</p><p>  2.2 Android系統(tǒng)的四大組件</p><p>  Android四大基本

29、組件分別是Activity,Service服務(wù),Content Provider內(nèi)容提供者,BroadcastReceiver廣播接收器。</p><p>  (1)Activity</p><p>  應(yīng)用程序中,一個(gè)Activity通常就是一個(gè)單獨(dú)的屏幕,它上面可以顯示一些控件也可以監(jiān)聽(tīng)并處理用戶的事件做出響應(yīng)。Activity之間通過(guò)Intent進(jìn)行通信。在Intent 的描述結(jié)構(gòu)中

30、,有兩個(gè)最重要的部分:動(dòng)作和動(dòng)作對(duì)應(yīng)的數(shù)據(jù)。典型的動(dòng)作類(lèi)型有:MAIN(activity的門(mén)戶)、VIEW、PICK、EDIT 等。而動(dòng)作對(duì)應(yīng)的數(shù)據(jù)則以URI 的形式進(jìn)行表示。例如:要查看一個(gè)人的聯(lián)系方式,你需要?jiǎng)?chuàng)建一個(gè)動(dòng)作類(lèi)型為VIEW 的intent,以及一個(gè)表示這個(gè)人的URI。</p><p>  與之有關(guān)系的一個(gè)類(lèi)叫IntentFilter。相對(duì)于intent 是一個(gè)有效的做某事的請(qǐng)求,一個(gè)intentf

31、ilter 則用于描述一個(gè)activity(或者IntentReceiver)能夠操作哪些intent。一個(gè)activity 如果要顯示一個(gè)人的聯(lián)系方式時(shí),需要聲明一個(gè)IntentFilter,這個(gè)IntentFilter 要知道怎么去處理VIEW 動(dòng)作和表示一個(gè)人的URI。IntentFilter 需要在AndroidManifest.xml 中定義。通過(guò)解析各種intent,從一個(gè)屏幕導(dǎo)航到另一個(gè)屏幕是很簡(jiǎn)單的。當(dāng)向前導(dǎo)航時(shí),act

32、ivity 將會(huì)調(diào)用startActivity(Intent myIntent)方法。然后,系統(tǒng)會(huì)在所有安裝的應(yīng)用程序中定義的IntentFilter 中查找,找到最匹配myIntent 的Intent 對(duì)應(yīng)的activity。新的activity 接收到myIntent 的通知后,開(kāi)始運(yùn)行。當(dāng)startActivity 方法被調(diào)用將觸發(fā)解析myIntent 的動(dòng)作,這個(gè)機(jī)制提供了兩個(gè)關(guān)鍵好處:</p><p>

33、  A、Activities 能夠重復(fù)利用從其它組件中以Intent 的形式產(chǎn)生的一個(gè)請(qǐng)求;</p><p>  B、Activities 可以在任何時(shí)候被一個(gè)具有相同IntentFilter 的新的Activity 取代。</p><p>  (2)Service</p><p>  一個(gè)Service 是一段長(zhǎng)生命周期的,沒(méi)有用戶界面的程序,可以用來(lái)開(kāi)發(fā)如監(jiān)控類(lèi)

34、程序。</p><p>  比較好的一個(gè)例子就是一個(gè)正在從播放列表中播放歌曲的媒體播放器。在一個(gè)媒體播放器的應(yīng)用中,應(yīng)該會(huì)有多個(gè)activity,讓使用者可以選擇歌曲并播放歌曲。然而,音樂(lè)重放這個(gè)功能并沒(méi)有對(duì)應(yīng)的activity,因?yàn)槭褂谜弋?dāng)然會(huì)認(rèn)為在導(dǎo)航到其它屏幕時(shí)音樂(lè)應(yīng)該還在播放的。在這個(gè)例子中,媒體播放器這個(gè)activity 會(huì)使用Context.startService()來(lái)啟動(dòng)一個(gè)service,從而可

35、以在后臺(tái)保持音樂(lè)的播放。同時(shí),系統(tǒng)也將保持這個(gè)service 一直執(zhí)行,直到這個(gè)service 運(yùn)行結(jié)束。另外,我們還可以通過(guò)使用Context.bindService()方法,連接到一個(gè)service 上(如果這個(gè)service 還沒(méi)有運(yùn)行將啟動(dòng)它)。當(dāng)連接到一個(gè)service 之后,我們還可以service 提供的接口與它進(jìn)行通訊。拿媒體播放器這個(gè)例子來(lái)說(shuō),我們還可以進(jìn)行暫停、重播等操作。</p><p> 

36、 Service使用步驟如下:</p><p>  1.繼承service類(lèi)</p><p>  2.AndroidManifast.xml配置清單文件中<application>節(jié)點(diǎn)里對(duì)服務(wù)進(jìn)行配置</p><p>  <service name=".SMSService"/></p><p> 

37、 3.Content Provider Android平臺(tái)提供了Content Provider使一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序。這些數(shù)據(jù)可以存儲(chǔ)在文件系統(tǒng)中、在一個(gè)SQLite數(shù)據(jù)庫(kù)、或以任何其他合理的方式,其他應(yīng)用可以通過(guò)ContentResolver類(lèi)(見(jiàn)ContentProviderAccessApp例子)從該內(nèi)容提供者中獲取或存入數(shù)據(jù).(相當(dāng)于在應(yīng)用外包了一層殼),</p><p>  只有

38、需要在多個(gè)應(yīng)用程序間共享數(shù)據(jù)是才需要內(nèi)容提供者。例如,通訊錄數(shù)據(jù)被多個(gè)應(yīng)用程序使用,且必須存儲(chǔ)在一個(gè)內(nèi)容提供者中,它的好處:統(tǒng)一數(shù)據(jù)訪問(wèn)方式。</p><p>  4.BroadcastReceive你的應(yīng)用可以使用它對(duì)外部事件進(jìn)行過(guò)濾只對(duì)感興趣的外部事件(如當(dāng)電話呼入時(shí),或者數(shù)據(jù)網(wǎng)絡(luò)可用時(shí))進(jìn)行接收并做出響應(yīng)。廣播接收器沒(méi)有用戶界面。然而,它們可以啟動(dòng)一個(gè)activity或serice 來(lái)響應(yīng)它們收到的信息,或

39、者用NotificationManager 來(lái)通知用戶。通知可以用很多種方式來(lái)吸引用戶的注意力──閃動(dòng)背燈、震動(dòng)、播放聲音等。一般來(lái)說(shuō)是在狀態(tài)欄上放一個(gè)持久的圖標(biāo),用戶可以打開(kāi)它并獲取消息。</p><p><b>  廣播類(lèi)型:</b></p><p>  普通廣播,通過(guò)Context.sendBroadcast(Intent myIntent)發(fā)送的</p&

40、gt;<p>  有序廣播,通過(guò)Context.sendOrderedBroadcast(intent, receiverPermission)發(fā)送的</p><p>  2.3 Android中的相關(guān)技術(shù)介紹及分析</p><p>  2.3.1 Android系統(tǒng)架構(gòu)研究</p><p>  Android是一個(gè)包含操作系統(tǒng)、中介架構(gòu)層及應(yīng)用程序所

41、產(chǎn)生出來(lái)的軟件堆棧架構(gòu)。由下而上,其核心為嵌入式Linux2.6作業(yè)系統(tǒng),向上搭配Google為Android開(kāi)發(fā)的類(lèi)庫(kù)及Android運(yùn)行時(shí),再配合應(yīng)用程序架構(gòu),來(lái)開(kāi)發(fā)各種不同的應(yīng)用程序。下面介紹幾個(gè)本系統(tǒng)開(kāi)發(fā)所用到的功能特征。</p><p>  (1)應(yīng)用程序架構(gòu):在應(yīng)用程序架構(gòu)內(nèi)已經(jīng)具備多種不同的基礎(chǔ)組件,在開(kāi)發(fā)應(yīng)用程序時(shí),就可以直接調(diào)用這些組件來(lái)使用,可以節(jié)省開(kāi)發(fā)應(yīng)用程序的心力及時(shí)間。</p>

42、;<p> ?。?)Dalvik虛擬機(jī)器:在Android平臺(tái)上所使用Java虛擬機(jī),不是Sim公司的標(biāo)準(zhǔn)Java虛擬機(jī),而是使用Google自主開(kāi)發(fā)的代號(hào)為Dalvik的虛擬機(jī),它在保證API方面的兼容的同時(shí),針對(duì)移動(dòng)手機(jī)進(jìn)行了大幅優(yōu)化,占用資源更小,運(yùn)行效率更高。</p><p> ?。?)SQLite數(shù)據(jù)庫(kù):SQLite提供結(jié)構(gòu)化的數(shù)據(jù)存取。SQLite是一款輕型的數(shù)據(jù)庫(kù),它的設(shè)計(jì)目標(biāo)是嵌入式

43、的,目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用的資源非常低。它能夠支持Windows/Linux/U nix等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如PHP,Java等,還有ODBC接口,同樣比起Mysql,PostgreSQL來(lái)講,它的處理速度比它們都快。它無(wú)需安裝和管理配置,它是一個(gè)儲(chǔ)存在單一磁盤(pán)文件中的完整數(shù)據(jù)庫(kù),體積小只有250KB但支持?jǐn)?shù)據(jù)庫(kù)大小至2TB。它雖然很小巧,但是支持的SQL語(yǔ)句毫不遜色于其它開(kāi)源數(shù)據(jù)庫(kù)。同

44、時(shí)它還支持事務(wù)功能和并發(fā)處理等等。SQLite也是一套開(kāi)放性的關(guān)聯(lián)式資料庫(kù),其特點(diǎn)在于輕量性方面的設(shè)計(jì)結(jié)構(gòu),更適合在手機(jī)上使用。</p><p>  2.3.2 Android架構(gòu)分析</p><p>  Android的架構(gòu)包括5個(gè)部分:應(yīng)用程序、應(yīng)用程序框架、程序庫(kù)、Android運(yùn)行庫(kù)及Linux內(nèi)核。架構(gòu)如圖2-1所示:</p><p>  圖2-1 And

45、roid架構(gòu)的五個(gè)部分</p><p>  2.3.3 Android應(yīng)用程序架構(gòu)</p><p>  在Android SDK中,定義了讓開(kāi)發(fā)者使用與核心應(yīng)用程序相同API的權(quán)限應(yīng)用程序框架是為了要簡(jiǎn)化組件的重新利用而設(shè)計(jì)的,應(yīng)用程序可以發(fā)布功能為其它應(yīng)用程序所使用。但是,這要受限于應(yīng)用程序架構(gòu)的安全機(jī)制,使用者以用同樣的機(jī)制來(lái)新增、置換組件。目前所有的應(yīng)用程序是由服務(wù)及系統(tǒng)來(lái)組成。An

46、droid應(yīng)用構(gòu)成和工作流程圖如圖2-2所示:</p><p>  圖2-2 Android應(yīng)用構(gòu)成和工作流程圖</p><p>  2.3.4 Android運(yùn)行時(shí)組件</p><p>  雖然Android是用Java語(yǔ)言來(lái)開(kāi)發(fā)、撰寫(xiě)應(yīng)用程序,但卻不使用Java運(yùn)行時(shí)組件來(lái)執(zhí)行Java程序,而是使用了由Google自行研發(fā)的Android運(yùn)行時(shí)組件來(lái)執(zhí)行程序。A

47、ndroid運(yùn)行時(shí)組件包括兩個(gè)重要的部分,一個(gè)是核心類(lèi)庫(kù),另一個(gè)是Dalvik虛擬機(jī)。</p><p>  2.3.5 Android應(yīng)用的構(gòu)成和工作機(jī)制</p><p>  對(duì)于一個(gè)Android應(yīng)用程序來(lái)說(shuō),是由Activity、IntentReceiver、Service、Content Provider四部分組成,但并不是每一個(gè)Android應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序

48、中使用時(shí),需要在配置文件AndroidManifest.xml中進(jìn)行配置。這個(gè)配置文件是每個(gè)Android應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件、組件的功能以及必要條件等。</p><p>  2.4 Eclipse簡(jiǎn)介</p><p>  Eclipse 是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,E

49、clipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開(kāi)發(fā)工具(Java Development Kit,JDK)。</p><p>  雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java 集成開(kāi)發(fā)環(huán)境(IDE)來(lái)使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開(kāi)發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟

50、件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與Eclipse 環(huán)境無(wú)縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。</p><p>  這種平等和一致性并不僅限于 Java 開(kāi)發(fā)工具。盡管 Eclipse 是使用 Java 語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于 Java 語(yǔ)言;例如,支持諸如 C/C++ 和

51、 COBOL 等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse 框架還可用來(lái)作為與軟件開(kāi)發(fā)無(wú)關(guān)的其他應(yīng)用程序類(lèi)型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。</p><p><b>  2.5 XML簡(jiǎn)介</b></p><p>  XML是指可擴(kuò)展標(biāo)記語(yǔ)言(EXtensible Makeup Language),是用來(lái)傳輸和存儲(chǔ)數(shù)據(jù)的工具。XML數(shù)據(jù)是一種純文本格式存儲(chǔ)的數(shù)據(jù)

52、,它提供了一種獨(dú)立軟件和硬件的數(shù)據(jù)存儲(chǔ)方法。</p><p>  XML文檔必須包含根元素,該元素是所有其它根元素的父元素。XML 文檔中的元素形成了一棵文檔樹(shù)。這棵樹(shù)從根部開(kāi)始,并擴(kuò)展到樹(shù)的最底端。所有元素均可擁有子元素。父、子以及同胞等術(shù)語(yǔ)用于描述元素之間的關(guān)系。父元素?fù)碛凶釉?。相同層?jí)上的子元素成為同胞(兄弟或姐妹)。所有元素均可擁有文本內(nèi)容和屬性。</p><p>  XML是大

53、小寫(xiě)敏感的語(yǔ)言,所有元素都必須正確嵌套,必須有關(guān)閉標(biāo)簽,元素的屬性值必須加引號(hào)。</p><p>  XML的命名規(guī)則:元素名稱(chēng)可以使用任何字母或符號(hào)(除< &),沒(méi)有保留字;元素名稱(chēng)不能以數(shù)字或標(biāo)點(diǎn)和‘XML’‘xml’‘Xml’字符開(kāi)始,也不能包含空格</p><p><b>  3 需求分析</b></p><p>  課程

54、管理包括:運(yùn)行首頁(yè)課程信息的顯示。這是面向用戶的一個(gè)Activity,在此用戶可以方便地查看本周的課程情況。除此之外,是課程信息管理。用戶可以添加,刪除,修改課程信息,設(shè)置上課時(shí)間。</p><p>  3.1 系統(tǒng)需求分析</p><p>  手機(jī)電子課程管理在手機(jī)應(yīng)用程序中并不常見(jiàn),一般在手機(jī)上較為常見(jiàn)的日程提醒程序無(wú)法實(shí)現(xiàn)自由設(shè)置課程信息。</p><p> 

55、 經(jīng)過(guò)對(duì)周邊同學(xué)的調(diào)查研究,普遍認(rèn)為這款軟件方便實(shí)用,其主要功能如下:</p><p>  課程的添加、刪除和修改;</p><p>  每節(jié)課程上課時(shí)間段的設(shè)置;</p><p><b>  每周課程預(yù)覽;</b></p><p><b>  課程具體信息預(yù)覽;</b></p>&l

56、t;p><b>  3.2 系統(tǒng)流程</b></p><p>  根據(jù)課程管理的特點(diǎn),將課程管理分為首頁(yè)的課程信息預(yù)覽,作業(yè)內(nèi)容預(yù)覽,作業(yè)的增加與修改,課程添加,上課時(shí)間設(shè)置??梢酝ㄟ^(guò)點(diǎn)擊MENU按鈕添加課程、設(shè)置課程時(shí)間、查看本程序的關(guān)于信息、退出程序。添加完課程信息,設(shè)置好上課時(shí)間之后,在進(jìn)入程序的第一個(gè)Activity將當(dāng)前一周的課程信息顯示出來(lái),點(diǎn)擊課程信息,可以進(jìn)行添加、修改

57、、刪除。</p><p>  3.3 功能模塊劃分</p><p>  根據(jù)程序的設(shè)計(jì),將程序分成3個(gè)模塊。課程添加、課程設(shè)置的添加和修改。每個(gè)模塊都有對(duì)應(yīng)的功能及相關(guān)工作。</p><p>  3.3.1課程添加模塊</p><p>  該模塊實(shí)現(xiàn)了如下幾個(gè)功能:</p><p><b>  1、添加課程信

58、息;</b></p><p><b>  2、添加上課地點(diǎn);</b></p><p>  3、設(shè)定課程在星期幾上課;</p><p>  4、設(shè)定課程是當(dāng)天的第幾節(jié)課。</p><p>  該模塊實(shí)現(xiàn)課程的添加工作,可以將課程的名稱(chēng)、上課地點(diǎn)、上課時(shí)間、課程節(jié)數(shù)添加到數(shù)據(jù)庫(kù)中。</p><

59、p><b>  4 系統(tǒng)設(shè)計(jì)</b></p><p><b>  4.1 概要分析</b></p><p>  從程序流程來(lái)分,用戶在第一次進(jìn)入程序時(shí)要進(jìn)入設(shè)置界面,設(shè)置一些基本的配置信息以方便數(shù)據(jù)庫(kù)管理,然后進(jìn)入添加課程界面,進(jìn)行添加課程操作。添加課程除了UI展示以外其他的方式都是在操作數(shù)據(jù)庫(kù),在程序中使用SQLite以實(shí)現(xiàn)程序的各種功

60、能。在程序主界面使用用Listview控件展示記錄,從數(shù)據(jù)表中按當(dāng)天是星期幾讀取出當(dāng)天的記錄,從而將課程的信息顯示在主頁(yè)面上,提供預(yù)覽。</p><p>  程序的配置信息主要存在preference中,該信息在數(shù)據(jù)顯示時(shí)讀取必要的配置信息。 </p><p><b>  4.2 數(shù)據(jù)庫(kù)分析</b></p><p>  本程序數(shù)據(jù)存取方面主要用

61、到了SQLite數(shù)據(jù)庫(kù)和Preference存儲(chǔ)機(jī)制。其中,SQLite主要用來(lái)存儲(chǔ)課程信息,Preference則主要用來(lái)存儲(chǔ)配置信息。</p><p>  4.2.1 SQLite數(shù)據(jù)表設(shè)計(jì)</p><p>  SQLite數(shù)據(jù)庫(kù)是Android系統(tǒng)中非常重要的數(shù)據(jù)存儲(chǔ)方法,它是Android系統(tǒng)唯一支持的數(shù)據(jù)庫(kù)類(lèi)型,也是Android應(yīng)用程序進(jìn)行持久化存儲(chǔ)的三種方式之一。 SQLit

62、e數(shù)據(jù)庫(kù)是SQL數(shù)據(jù)庫(kù)的簡(jiǎn)化版,支持大部分SQL操作。SQLite是Android應(yīng)用程序中非常常用的一種數(shù)據(jù)存儲(chǔ)手段。</p><p> ?。?)數(shù)據(jù)庫(kù)表的設(shè)計(jì)</p><p>  根據(jù)對(duì)本程序的需求分析,本程序一共需要用到兩張數(shù)據(jù)表,分別為classinfo表和classtime表。</p><p>  classinfo表主要用來(lái)存儲(chǔ)已經(jīng)添加的課程,用戶每添加

63、一個(gè)課程就會(huì)在該表中新增一條記錄,并且自動(dòng)生成一個(gè)唯一的id,用以區(qū)別各個(gè)課程,同樣名稱(chēng)但是分成兩次添加的課程會(huì)被認(rèn)為是不同的課程,這樣設(shè)計(jì)的目的主要是為了方便查詢。該表結(jié)構(gòu)設(shè)計(jì)如下:</p><p><b>  表4-1 </b></p><p>  該數(shù)據(jù)庫(kù)設(shè)計(jì)初衷為保存整個(gè)星期的課程,這樣實(shí)現(xiàn)整個(gè)星期的課程排布,包括數(shù)據(jù)的存儲(chǔ),課程查看都比較方便。</p&

64、gt;<p>  (2)SQLite數(shù)據(jù)庫(kù)的創(chuàng)建</p><p>  創(chuàng)建數(shù)據(jù)庫(kù)主要用到了DataBaseHelper類(lèi),該類(lèi)繼承了SQLiteOpenHelper類(lèi),實(shí)現(xiàn)了數(shù)據(jù)庫(kù)、數(shù)據(jù)表的創(chuàng)建。具體方法如下:</p><p>  private static class DatabaseHelper extends SQLiteOpenHelper {</p>

65、<p>  DataBaseHelper(Context context) {</p><p>  super(context, DATABASE_NAME, null, DATABASE_VERSION);</p><p><b>  }</b></p><p><b>  @Override</b><

66、/p><p>  public void onCreate(SQLiteDatabase db) {</p><p>  db.execSQL(DATABASE_CREATE);</p><p><b>  }</b></p><p><b>  @Override</b></p><

67、;p>  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {</p><p>  db.execSQL("DROP TABLE IF EXISTS classinfo");</p><p>  onCreate(db);</p><p><

68、;b>  }</b></p><p>  //在databasehelper的構(gòu)造函數(shù)中調(diào)用父類(lèi)構(gòu)造函數(shù),傳入數(shù)據(jù)庫(kù)名,創(chuàng)建數(shù)據(jù)庫(kù)</p><p>  4.3 程序中的主要類(lèi)</p><p>  4.3.1 GalleryTabActivity類(lèi)和ClassListActivity類(lèi)</p><p>  該類(lèi)為整個(gè)應(yīng)用的主A

69、ctivity, 顯示課程表的主界面。其主要方法如下:</p><p>  onCreate:Activity主要重寫(xiě)方法之一,實(shí)現(xiàn)程序初始化和UI展示;</p><p>  onResume:Activity重寫(xiě)方法之一,實(shí)現(xiàn)在喚醒Activity時(shí)刷新界面;</p><p>  onCreateOptionMenu:實(shí)現(xiàn)Option菜單的創(chuàng)建;</p>

70、;<p>  onOptionMenuItemSeleted:實(shí)現(xiàn)菜單項(xiàng)的點(diǎn)擊事件響應(yīng);</p><p>  ImageAdapter:結(jié)合gallery控件來(lái)實(shí)現(xiàn)主界面中的星期列表的循環(huán)顯示;</p><p>  onListItemClick:在課程顯示列表中實(shí)現(xiàn)點(diǎn)擊相應(yīng)列表實(shí)現(xiàn)作業(yè)Dialog的顯示;</p><p>  界面設(shè)計(jì)方面通過(guò)Rela

71、tiveLayout實(shí)現(xiàn)布局,使用了TextView,ImageButton課程列表通過(guò)ListView實(shí)現(xiàn)UI展示。該類(lèi)通過(guò)繼承BaseAdapter還實(shí)現(xiàn)了一個(gè)名為ImageAdapter的內(nèi)部類(lèi),用來(lái)顯示ListView中的數(shù)據(jù)并實(shí)現(xiàn)對(duì)ListView上ImageView控件點(diǎn)擊的統(tǒng)一響應(yīng)。</p><p>  4.3.2 ClassAddActivity類(lèi)和SettingActivity類(lèi)</p&g

72、t;<p>  AddClass類(lèi)為實(shí)現(xiàn)添加課程界面的Activity,主要實(shí)現(xiàn)由用戶選擇和輸入課程信息,并將所有的課程信息添加到數(shù)據(jù)庫(kù)中。主要方法如下:</p><p>  onCreate: 初始化UI控件;</p><p>  onItemSelectedd:設(shè)置初始化時(shí)默認(rèn)的數(shù)據(jù);</p><p>  SaveData:將添加的課程保存進(jìn)數(shù)據(jù)

73、庫(kù)中;</p><p>  gettimeString:將輸入的課程信息轉(zhuǎn)換成對(duì)應(yīng)的時(shí)間字符串返回;</p><p>  AddPlan:類(lèi)實(shí)現(xiàn)添加計(jì)劃界面,并將添加的數(shù)據(jù)存入Preference中。主要方法如下:</p><p>  onCreate:實(shí)現(xiàn)初始化UI控件;</p><p>  onClick:實(shí)現(xiàn)button點(diǎn)擊事件的響應(yīng)

74、;</p><p>  setPlan:實(shí)現(xiàn)添加計(jì)劃到preference中;</p><p>  4.3.3 SQLiteHelper類(lèi)和SQLClassTime類(lèi)</p><p>  該類(lèi)為自定義的重要的數(shù)據(jù)庫(kù)處理類(lèi),用來(lái)管理數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)的所有操作都封裝在這個(gè)類(lèi)中,實(shí)現(xiàn)數(shù)據(jù)封裝。將數(shù)據(jù)操作和UI操作隔離開(kāi)來(lái)。主要方法如下:</p><p&

75、gt;  AddClass:給class表添加記錄;</p><p>  db.insert(CLASS_TABLE, null, values);//insert方法插入一條數(shù)據(jù)</p><p>  deleteClass:刪除一條class記錄;</p><p>  db.delete(CLASS_TABLE, "_id = " + clas

76、sid, null);//delete方法刪除一條數(shù)據(jù)</p><p>  deleteAll:實(shí)現(xiàn)清空所有課程信息的方法,清除classinfo表中的所有數(shù)據(jù)</p><p><b>  5系統(tǒng)實(shí)現(xiàn)</b></p><p><b>  5.1程序首頁(yè)面</b></p><p>  在完成系統(tǒng)設(shè)計(jì)以

77、后,即可在Android虛擬機(jī)中運(yùn)行程序。進(jìn)入程序的后,程序會(huì)自動(dòng)跳到當(dāng)天的頁(yè)面,讓你更方便的查看當(dāng)天的課程。主界面如圖5-1所示</p><p>  5.2 課程設(shè)置實(shí)現(xiàn)</p><p>  軟件設(shè)置界面,該界面為用戶設(shè)置的界面,往后的使用中,用戶可以通過(guò)“Menu”→“設(shè)置”的操作步驟來(lái)進(jìn)入該界面。在此界面,用戶可以設(shè)置程序,設(shè)置課程,星期,地點(diǎn)。</p><p&g

78、t;  點(diǎn)擊設(shè)置按鈕可以進(jìn)入設(shè)置課程名稱(chēng),如圖5-2所示:</p><p>  5.3 課程星期,地點(diǎn)實(shí)現(xiàn)</p><p>  點(diǎn)擊設(shè)置按鈕可以進(jìn)入設(shè)置課程時(shí)間,可以設(shè)置每天的課程。如圖5-3所示:</p><p><b>  設(shè)置上課節(jié)次</b></p><p>  點(diǎn)擊設(shè)置按鈕可以進(jìn)入設(shè)置課程的節(jié)次,如圖5-4所示:

79、</p><p>  點(diǎn)擊設(shè)置按鈕可以進(jìn)入設(shè)置上課地點(diǎn),如圖5-5所示:</p><p><b>  5.4更換背景</b></p><p>  通過(guò)設(shè)置版面點(diǎn)擊設(shè)置可更換背景,如圖5-6所示:</p><p><b>  相關(guān)代碼如下:</b></p><p>  pack

80、age net.iyouyu.schedule;</p><p>  import android.content.Context;</p><p>  import android.content.Intent;</p><p>  import android.content.SharedPreferences;</p><p>  im

81、port android.content.SharedPreferences.Editor;</p><p>  import android.os.Bundle;</p><p>  import android.preference.ListPreference;</p><p>  import android.preference.Preference;&l

82、t;/p><p>  import android.preference.Preference.OnPreferenceChangeListener;</p><p>  import android.preference.Preference.OnPreferenceClickListener;</p><p>  import android.preference.

83、PreferenceActivity;</p><p>  import android.widget.Toast;</p><p>  public class SystemSet extends PreferenceActivity implements OnPreferenceClickListener,</p><p>  OnPreferenceChang

84、eListener{</p><p>  private int bgnum=0;</p><p>  String bgKey,starttermkey;</p><p>  ListPreference bglp;</p><p>  Preference startterm;</p><p>  public s

85、tatic boolean isnew=false;</p><p><b>  @Override</b></p><p>  protected void onCreate(Bundle savedInstanceState) {</p><p>  // TODO Auto-generated method stub</p>

86、<p>  super.onCreate(savedInstanceState);</p><p>  addPreferencesFromResource(R.xml.systemset);</p><p>  bgKey = getResources().getString(R.string.bg_key);</p><p>  starttermk

87、ey=getResources().getString(R.string.startterm_key);</p><p>  bglp = (ListPreference)findPreference(bgKey);</p><p>  startterm=(Preference)findPreference(starttermkey);</p><p>  bgl

88、p.setOnPreferenceClickListener(this); </p><p>  bglp.setOnPreferenceChangeListener(this);</p><p>  startterm.setOnPreferenceClickListener(this); </p><p>  startterm.setOnPreferenceC

89、hangeListener(this);</p><p><b>  }</b></p><p><b>  @Override</b></p><p>  public boolean onPreferenceChange(Preference preference, Object newValue) {</p&g

90、t;<p>  // TODO Auto-generated method stub</p><p>  if(preference.getKey().equals(bgKey))</p><p><b>  {</b></p><p>  if(((String) newValue).trim().equals("水花

91、"))bgnum=1;</p><p>  else if(((String) newValue).trim().equals("星空"))bgnum=2;</p><p>  else if(((String) newValue).trim().equals("海岸-明"))bgnum=3;</p><p>  e

92、lse if(((String) newValue).trim().equals("海岸-暗"))bgnum=4;</p><p>  // System.out.println(((String) newValue).trim());</p><p>  preference.setSummary(((String) newValue).trim());</p&

93、gt;<p>  isnew=true;</p><p>  SharedPreferences share = getSharedPreferences("schedule.xm",Context.MODE_PRIVATE); </p><p>  Editor editor = share.edit();</p><p>  

94、editor.putInt("bgnum", bgnum);</p><p>  // editor.putBoolean("create", true);</p><p>  editor.commit(); </p><p>  Toast.makeText(SystemSet.this, "背景更改&quo

95、t;, Toast.LENGTH_LONG).show();</p><p><b>  }</b></p><p>  else return false;</p><p>  return true;</p><p><b>  }</b></p><p><b&g

96、t;  @Override</b></p><p>  public boolean onPreferenceClick(Preference preference) {</p><p>  // TODO Auto-generated method stub</p><p>  if(preference.getKey().equals(startte

97、rmkey)){</p><p>  Intent intent = new Intent();</p><p>  intent.setClass(SystemSet.this, TermSet.class);</p><p>  SystemSet.this.startActivity(intent);</p><p><b>

98、  }</b></p><p><b>  else </b></p><p>  return false;</p><p>  return true;</p><p><b>  }</b></p><p><b>  }</b><

99、;/p><p><b>  5.5設(shè)置開(kāi)學(xué)日期</b></p><p>  設(shè)置開(kāi)學(xué)日期,如圖5-7所示</p><p><b>  相關(guān)代碼如下:</b></p><p>  cur.close();</p><p>  System.out.println("開(kāi)始查

100、詢3");</p><p>  dp.init(my_year, my_month, my_day,new OnDateChangedListener(){</p><p><b>  @Override</b></p><p>  public void onDateChanged(DatePicker view, int year

101、, int monthOfYear,int dayOfMonth) {</p><p>  my_year = year;</p><p>  my_month = monthOfYear+1;</p><p>  my_day = dayOfMonth;</p><p><b>  }</b></p>&

102、lt;p><b>  });</b></p><p>  butok.setOnClickListener(new okListener());</p><p><b>  }</b></p><p>  class AbourexitListener implements OnClickListener{</

103、p><p>  public void onClick(View v){</p><p><b>  finish();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  class okListen

104、er implements OnClickListener{</p><p>  public void onClick(View v){</p><p>  Main.this.insertView((dayOfWeek+=6)%7);</p><p>  String dstr=my_year+"-"+my_month+1+"-&q

105、uot;+my_day; </p><p>  java.util.Date date=sdf.parse(dstr);</p><p>  mysql.execSQL("UPDATE term SET startterm='"+my_year+"-"+my_month+"-"+my_day+"' WHE

106、RE id="+1+";");</p><p>  Toast.makeText(TermSet.this, "開(kāi)學(xué)時(shí)間修改成功", Toast.LENGTH_LONG).show();</p><p><b>  finish();</b></p><p><b>  }</b

107、></p><p><b>  }</b></p><p><b>  結(jié)論</b></p><p>  在指導(dǎo)老師的幫助下,該程序設(shè)計(jì)與實(shí)現(xiàn)基本完成。本設(shè)計(jì)的開(kāi)發(fā)是基于Android平臺(tái)上的,由于在以前沒(méi)有接觸過(guò)多關(guān)于這方面的知識(shí),這次設(shè)計(jì)是邊學(xué)習(xí)相關(guān)的開(kāi)發(fā)知識(shí)邊實(shí)現(xiàn)的。這次設(shè)計(jì)的開(kāi)發(fā)是一次很珍貴的實(shí)踐經(jīng)驗(yàn),因?yàn)檫@

108、次開(kāi)發(fā)都是一步步通過(guò)自己的努力完成的。</p><p>  論文研究了關(guān)于課程管理的需求分析,并完成了系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。歸納起來(lái)主要完成了以下工作:</p><p>  1、闡述了電子課程表的定義,確定了開(kāi)發(fā)課程管理的基本技術(shù)路線。</p><p>  2、從用戶需求的角度說(shuō)明開(kāi)發(fā)課程管理的基本技術(shù)路線。并針對(duì)所收集的資料整理出系統(tǒng)的業(yè)務(wù)流程圖、功能模塊圖。<

109、/p><p>  3、確定系統(tǒng)開(kāi)發(fā)所需要的技術(shù),結(jié)合現(xiàn)有的數(shù)據(jù)和編程思想,生成需要的數(shù)據(jù)庫(kù)。</p><p>  4、在詳細(xì)設(shè)計(jì)和編碼階段,運(yùn)用了Java最基本的開(kāi)發(fā)技術(shù),代碼簡(jiǎn)單易懂,程序里各個(gè)Activity之間的跳轉(zhuǎn)比較清晰。能正常的將輸入的數(shù)據(jù)存入數(shù)據(jù)庫(kù)中保存。</p><p><b>  參考文獻(xiàn)</b></p><p

110、>  [1]Jerome(J.F.)DiMarzio.Android程序員指南[M].USA:McGraw-Hill公司, 2008, 21~35.</p><p>  [2]靳巖,姚尚朗.Google Android開(kāi)發(fā)入門(mén)與實(shí)踐[M].北京:人民郵電出版社, 2009,37~59.</p><p>  [3]楊豐盛.Android應(yīng)用開(kāi)發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010

111、,44~109,15~17.</p><p>  [4]E2EColud工作室.深入淺出Google Android[M].北京:人民郵電出版社,2009,178~194.</p><p>  [5]余志龍,陳昱勛,鄭明杰,陳小鳳,郭秩均.Google Android SDK開(kāi)發(fā)范例大全[M].北京:人民郵電出版社,2009,42~53.</p><p>  [6]

112、印旻,王行言. Java 語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)[M](第2版).北京:清華大學(xué)出版社,2007,44~57.</p><p>  [7]Jeff Friesen.Learn Java for Android Development[M].USA:Apress.2010,2~21.</p><p>  [8]Marziah Karch.Android for work:productivi

113、ty dor professionals[M].USA:Apress.2010,97~114.</p><p>  [9]張仕成. 基于Google Android平臺(tái)的應(yīng)用程序開(kāi)發(fā)與研究[J].電腦知識(shí)與技術(shù).2009,28:54-66.</p><p>  [10]陳璟,陳平華,李文亮. Android內(nèi)核分析[J].現(xiàn)代計(jì)算機(jī)(專(zhuān)業(yè)版).2009,11:32-44.</p&g

114、t;<p>  [11]財(cái)經(jīng)日?qǐng)?bào).二月份谷歌Android移動(dòng)市場(chǎng)占有率33%擴(kuò)大優(yōu)勢(shì) [EB/OL].http://www.businesstimes.com.hk/a-20110405-113764/uygtr</p><p><b>  致謝</b></p><p>  感謝學(xué)院四年來(lái)對(duì)我的辛苦培育,讓我在大學(xué)這四年來(lái)學(xué)到很多東西,特別感謝學(xué)院為

115、我提供了良好的學(xué)習(xí)環(huán)境、感謝領(lǐng)導(dǎo)、老師們四年來(lái)對(duì)我無(wú)微不至的關(guān)懷和指導(dǎo),讓我得以在這四年中學(xué)到很多有用的知識(shí)。在此,我還要感謝在班里同學(xué)和朋友,感謝你們?cè)谖矣龅嚼щy的時(shí)候幫助我,給我支持和鼓勵(lì),感謝你們。特別感謝指導(dǎo)老師陳晨在我畢業(yè)論文寫(xiě)作及設(shè)計(jì)階段對(duì)我的悉心指導(dǎo),從最初的定題,到資料收集,到寫(xiě)作、修改、定稿,他給了我耐心的指導(dǎo)和無(wú)私的幫助。為了指導(dǎo)我們的畢業(yè)論文,他放棄了自己的休息時(shí)間,這種無(wú)私奉獻(xiàn)的敬業(yè)精神令人欽佩,在此我向他表示我

116、誠(chéng)摯的謝意。</p><p><b>  附錄</b></p><p>  搭建Android開(kāi)發(fā)環(huán)境</p><p>  任何事物要運(yùn)行,都要有它的環(huán)境,Android也有它的環(huán)境才能夠運(yùn)行,下面介紹Android的開(kāi)發(fā)環(huán)境配置。</p><p>  搭建開(kāi)發(fā)環(huá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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論