




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE1摘要手機記事本,是一項新興且有廣闊市場和應用價值的業(yè)務,它運行于android智能手機上,通過手機的顯示終端與手機內數(shù)據(jù)庫的通訊,提供給客戶各種與日程相關的信息服務,方便了用戶的日常生活安排。本論文主要闡述了手機日程表服務系統(tǒng)的需求分析、功能模塊的設計、系統(tǒng)流程和界面設計,并對系統(tǒng)實現(xiàn)過程中所用到的關鍵技術進行了介紹。本文所實現(xiàn)的日程表是基于Android平臺開發(fā)的,主要使用人群定位為在校大學生,主要可以對上課的時間地點進行輸入,然后在上課之前對用戶進行提醒,從而滿足了在校大學生對基本日常生活的安排和記錄的需求。關鍵詞:Android;手機記事本;ABSTRACTMobileschedule,andthereisanemergingmarketandthevalueofbroadbusiness,whichbenefitsreal-timemonitoringalarmtechnology,throughthecopperphone'sdisplayterminalwiththephoneinthedatabaseshallbeavailabletocustomerswithavarietyofrelatedinformationservicesschedulefacilitatetheuser'sdailyroutine.Thispaperdescribestheneedforphoneserviceschedulesystemanalysis,design,systemprocessesandinterfacedesignfunctionmodules,andsystemstoachievethekeytechnologiesusedintheprocesswereintroduced.Inthispaper,thescheduleisimplementedbasedontheAndroidplatform,themainuseofthecrowdstandingforcollegestudents,themainplaceofclasstimecanbeentered,andthenbeforetheclasstoremindtheusertomeetthebasicdailycollegestudentslivingarrangementsandrecordingneeds.Keywords:Android;schedule目錄TOC\o"1-3"\h\u153681引言 1317611.1手機記事本的產生 1262461.2手機記事本的發(fā)展現(xiàn)狀 184242Android及相關技術簡介 3225762.1Android簡介 3174092.2相關編程語言 6155502.2.1xml簡介 626632.2.2java簡介 7298243需求設計 933083.1系統(tǒng)需求分析 940213.1.1功能分析 9293463.1.2性能分析 9229594系統(tǒng)設計 10163744.1系統(tǒng)設計目標 1066634.2系統(tǒng)功能模塊設計 1019384.3用戶界面設計 1193184.4數(shù)據(jù)庫設計 12213735系統(tǒng)的實現(xiàn) 14214285.1主要界面實現(xiàn) 1441115.2數(shù)據(jù)庫功能的實現(xiàn) 17132296總結與致謝 2220404參考文獻 231引言1.1手機記事本的產生隨著android手機售量的大量提升,android應用也變得十分火熱。在龐大的用戶群體中,人們已經習慣了把需要處理的事物記錄在手機上。雖然用戶群體龐大,但是個人的業(yè)務需求也不完全相同,即使大的廠商對android的日歷進行了修改,但并不能滿足部分用戶的特殊需求。這時能夠針對某一或者某些用戶群體的定制記事本就十分的必要,這次所開發(fā)的記事本主要針對的用戶群體是在校大學生。由于手機又存在著諸多的特性,所以與紙質的記事本相比,手機記事本存在著諸多的優(yōu)點和特性。手機記事本的優(yōu)點:◆移動性和便攜性,手機用戶可以自由的移動。◆可重復擦寫,多次使用◆具有一定的隱私性?!艨蓪崟r提醒,這一點在事務越多的時候越是能體現(xiàn)出優(yōu)勢。1.2手機記事本的發(fā)展現(xiàn)狀隨著計算機和手機的飛速發(fā)展,通過電子設備來完成更多的事情將是一種趨勢。在效率越來越被重視的當今社會,及時妥善的的處理事務的前提就是準確地記錄事務。使用記事本的意義不僅僅是及時處理事務,也是對各種事務有著認真負責的態(tài)度的體現(xiàn)。手機記事本的便捷性是有目共睹的。隨著業(yè)務的擴展,其作用、形式、工作方式必然也會有極大地改變和發(fā)展,所以記事本的發(fā)展現(xiàn)狀也是十分值得我們去關注的。下面就簡要闡述一下記事本的發(fā)展現(xiàn)狀:◆個性化隨著社會的發(fā)展,不同人群對記事本的需求必然不會相同,不同需求的人群都希望從記事本服務中得到的不僅僅是方便,還有效率和效益。學生可能希望把課程表記錄在手機上,白領可能希望把領導交代的事務處理好,女生需要記錄經期,而個性化的記事本可能就是一個十分方便的解決方案,人們可以下載部分或全部的功能,既能滿足自己的需求,又能避免了手機存儲空間的浪費。◆保密化手機記事本作為一項提高效率的應用,對人們生活的影響是積極的。一方面,它可以提高人們的效率。另一方面,記事本本身的效率也是應該值得重視的,例如大學生的課程表并不是相同的,如果單純的用人工錄入的話也是一件十分耗費體力和時間的事情,這時校園網的課程表如果能提供標準化的統(tǒng)一接口,我們的應用就能變得十分的方便快捷,只需要簡單的幾步就能把校園網的課程表同步到手機應用。再比如公司如果統(tǒng)一布置任務,只需要在會議結束后對通過各種通信方式把任務布置給各個職員,甚至是使用NFC技術,只需要手機輕輕一碰就能達到目的,這時統(tǒng)一的標準化的接口就變得十分的重要?!舯C芑謾C作為隨身攜帶的便攜設備,存在著巨大的丟失的風險,記錄著諸多信息的手機一旦丟失,損失將是巨大的,如果落在有心的人手中,必然會有帶來不必要的損失。所以對于信息的保密必然是十分重要的。但在保密的同時又保證用戶的使用的便捷也是一個難題。◆云端化云端化是將來計算機和手機領域的大熱門,云端化有著諸多的優(yōu)點,但是又有其局限性,云端化的首要條件是網絡接入速度的大幅度提升,并且能夠滿足人們對于數(shù)據(jù)同步的需求。云端化同樣也是保密的一種解決方法,又是能夠暴露統(tǒng)一的接口的一種解決方案,所以云端化必然是將來的重要的趨勢,即使我們換了手機,換了電腦,還是能夠獲取到自己既定的事務或者是其他數(shù)據(jù)。2Android及相關技術簡介Android是Google于2007年11月推出的一款全新的智能手機平臺,由操作系統(tǒng)、中間件、用戶界面和應用程序組成。由于Android平臺的諸多優(yōu)點和特性,使其在短短的幾年中飛速的發(fā)展。隨著用戶群體的增加,使得Android應用開發(fā)也成了學習的熱門。2.1Android簡介1)Android平臺優(yōu)點Android一詞的本義指“機器人”,同時也是一款布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成。作為一款手機操作系統(tǒng),其有著如下的諸多優(yōu)點:◆平臺的開放性允許任何廠商加入,使其擁有更多的開發(fā)者,新的應用還有創(chuàng)意可以不斷的出現(xiàn)?!魯[脫了運營商的束縛,讓手機更加貼近互聯(lián)網。Android應用程序都是基于Java開發(fā)的,Java具有一次編寫、到處運行的跨平臺性。實現(xiàn)了能夠在所有的Android設備中運行,真正做到了硬件無關性,降低了開發(fā)者的負擔?!籼峁┝藰藴实腁PI和SDK開發(fā)包,手機廠商可以根據(jù)需要自行開發(fā)或者使用已有的程序,從而打造出富有特色的Android平臺。2)Android平臺的特征應用框架:用于開發(fā)可重用、可替代的組件。Linuxkernel:Android是運行于Linuxkernel之上,但并不是GNU/Linux。因為在一般GNU/Linux里支持的功能,Android大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android為了達到商業(yè)應用,必須移除被GNUGPL授權證所約束的部份,例如Android將驅動程序移到Userspace,使得Linuxdriver與Linuxkernel徹底分開。Bionic/Libc/Kernel/并非標準的Kernelheaderfiles。Android的Kernelheader是利用工具由LinuxKernelheader所產生的,這樣做是為了保留常數(shù)、數(shù)據(jù)結構與宏。優(yōu)化的圖形:Android提供了優(yōu)化過的圖形系統(tǒng),該系統(tǒng)由一個自定義的2D圖形庫和一個遵循OpenGLES1.0標準(硬件加速)的3D圖形庫組成。SQLite數(shù)據(jù)庫:SQLite數(shù)據(jù)庫是Android自帶的一個標準的數(shù)據(jù)庫,支持SQL語句,是一個輕量級的嵌入式數(shù)據(jù)庫。媒體功能:支持各種通用的音視頻和靜態(tài)圖像格式。硬件支持功能:支持相機、GPS、導航和感應加速器等各類硬件。強大的開發(fā)環(huán)境:包括設備模擬器,調試工具,內存和性能檢測工具,以及EclipseIDE的開發(fā)插件。3)Android平臺的體系架構Android不僅是一個操作系統(tǒng),更是一個開源的體系架構。Android軟件平臺從上到下主要由五個部分構成:應用程序、應用程序框架、程序庫、Android運行庫以及Linux內核?!魬贸绦?Application)Android的應用程序通常涉及用戶界面和用戶交互。Android本身提供了桌面(Home)、聯(lián)系人(Contact)、電話(Phone)和瀏覽器(Browsers)等眾多的核心應用。做為分層結構的最上層是各種應用軟件,包括通話程序,短信程序等,應用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。不存在任何以往阻礙移動產業(yè)創(chuàng)新的專有權障礙,號稱是首個為移動終端打造的真正開放和完整的移動軟件。同時開發(fā)者可以使用應用程序框架層的API實現(xiàn)自己的程序,這也是Android開源優(yōu)勢的體現(xiàn)?!魬贸绦蚩蚣?ApplicationFramework)Android應用程序的開發(fā)基于程序框架和組件,開發(fā)人員擁有同核心應用程序一樣的API訪問權限。應用程序后面是一系列的服務和系統(tǒng),其中包括:視圖(Views)一構造應用程序的視圖部分,包括列表(Lists)、文本框(Textboxes)、按鈕(Buttons)等。內容提供器(ContentProviders):提供一種實現(xiàn)數(shù)據(jù)互訪和共享的機制。資源管理器(ResourcesManager):負責管理非代碼的訪問,如本地字符串、圖片資源及涉及布局的XML文件。通知管理器(NotificationManager):用于將提示信息顯示在狀態(tài)欄上。例如,當有短信的時候,在狀態(tài)欄上顯示有新信息?;顒庸芾砥?ActivityManager):用于管理應用程序的生命周期,并提供應用頁面退出的機制。通過這套應用框架,各種服務和組件可以被用戶的應用重復利用。4)Android應用程序構成對于一個Android應用程序來說,一般由以下四種組件構造而成:◆ActivityActivity是最基本的Android應用程序組件。在應用程序中,一個Activity通常就是一個單獨的屏幕。每一個Activity都被實現(xiàn)為一個獨立的類,并繼承基類Activty。◆BroadcastIntentReceiver當需要對一個外部事件(如當電話呼入)做出響應時,可以使用目的接收器(IntentReceiveO。目的接收器并不顯示IJI界面,當外部事件發(fā)生時,使用NotificationManager通知用戶?!鬝erviceService是具有長生命周期且沒有用戶界面的一段程序,它需要通過某一個ActMty或者Context對象來調用。Service的生命周期方法比Activity少一些,只有onCreate、onStart和onDestory。有兩種方式用來啟動Service,它們的不同之處在于對Service生命周期的影響不一樣。◆ContentProvider一個應用程序可以將它的數(shù)據(jù)保存到文件、SQL數(shù)據(jù)庫,甚至是任何有效的存儲設備中。當需要將應用數(shù)據(jù)與其它的應用共享時,使用ContentProvider來完成。ContentProvider類實現(xiàn)了一組標準的方法,從而能夠讓其它的應用保存或讀取此ContentProvider處理的各種數(shù)據(jù)類型。5)Android應用程序的開發(fā)環(huán)境Android通常采用Eclipse作為應用程序的開發(fā)環(huán)境。Eclipse是基于Java的,開放源代碼的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一個服務,所有開發(fā)工具都是用插件的形式提供的,通過插件組件構建開發(fā)環(huán)境,這種設計使得Eclipse具有開放式可擴充的結構。Eclipse軟件可以集成不同的軟件工具開發(fā)供應商的產品,任何開發(fā)工具廠商都可以將他們的開發(fā)工具或組件加入到Eclipse平臺,用戶可以通過相同的接口使用不同的工具。此外,Eclipse不僅支持團隊協(xié)同開發(fā),還提供了詳細的幫助文檔以及對許多外部工具的支持。Android為Eclipse定制了一個插件,即AndroidDevelopmentTools(ADT),目的是為用戶提供一個強大的綜合環(huán)境用于開發(fā)Android應用程序。ADT擴展了Eclipse的功能,可以讓用戶快速地建立Android項目,創(chuàng)建應用程序界面,在基于Android框架API的基礎上添加組件,以及用SDK工具調試應用程序。6)android內置數(shù)據(jù)庫簡介Android內置數(shù)據(jù)庫是SQLite,SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關系型數(shù)據(jù)庫管理系統(tǒng),它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結合,比如C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月。至今已經有14個年頭,SQLite也迎來了一個版本SQLite3已經發(fā)布。正是由于SQLite的諸多特性,所以他更適用于移動平臺2.2相關編程語言 Android主要用到的編程語言有兩個,一個是xml用于頁面設計,一個是java用于功能實現(xiàn)。下面對兩種語言做簡要介紹2.2.1xml簡介xml即可擴展標記語言??蓴U展標記語言,標準通用標記語言的子集,一種用于標記電子文件使其具有結構性的標記語言。它可以用來標記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標記語言進行定義的源語言。它非常適合萬維網傳輸,提供統(tǒng)一的方法來描述和交換獨立于應用程序或供應商的結構化數(shù)據(jù)。XML能夠更精確地聲明內容,方便跨越多種平臺的更有意義的搜索結果。它提供了一種描述結構數(shù)據(jù)的格式,簡化了網絡中數(shù)據(jù)交換和表示,使得代碼、數(shù)據(jù)和表示分離,并作為數(shù)據(jù)交換的標準格式,因此它常被稱為智能數(shù)據(jù)文檔。為了使得標準通用標記語言顯得用戶友好,它重新定義了標準通用標記語言的一些內部值和參數(shù),去掉了大量的很少用到的功能,這些繁雜的功能使得標準通用標記語言在設計網站時顯得復雜化。它保留了標準通用標記語言的結構化功能,這樣就使得網站設計者可以定義自己的文檔類型,它同時也推出一種新型文檔類型,使得開發(fā)者也可以不必定義文檔類型。XML的簡單使其易于在任何應用程序中讀寫數(shù)據(jù),這使XML很快成為數(shù)據(jù)交換的唯一公共語言,雖然不同的應用軟件也支持其它的數(shù)據(jù)交換格式,但不久之后他們都將支持XML,那就意味著程序可以更容易的與Windows,MacOS,Linux以及其他平臺下產生的信息結合,然后可以很容易加載XML數(shù)據(jù)到程序中并分析它,并以XML格式輸出結果。2.2.2java簡介Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言,是由SunMicrosystems公司于1995年5月推出的Java程序設計語言和Java平臺(即JavaEE,JavaME,JavaSE)的總稱。Java自面世后就非常流行,發(fā)展迅速,對C++語言形成了有力沖擊。Java技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學超級計算機、移動電話和互聯(lián)網,同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網的產業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景。java主要特性:◆Java語言是強制面向對象的。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關鍵字為implements)。Java語言全面支持動態(tài)綁定,而C++語言只對虛函數(shù)使用動態(tài)綁定。總之,Java語言是一個純的面向對象程序設計語言?!鬔ava語言是健壯的。Java的強類型機制、異常處理、垃圾的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。◆Java語言是可移植的。這種可移植性來源于體系結構中立性,另外,Java還嚴格規(guī)定了各個基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSIC實現(xiàn)的?!鬔ava語言是原生支持多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構為Thread(Runnable)的構造子將一個實現(xiàn)了Runnable接口的對象包裝成一個線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是Thread類已經實現(xiàn)了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機制。3需求設計在系統(tǒng)需求分析階段,搞清楚軟件“做什么”的問題,形成目標系統(tǒng)的邏輯模型。然后所要做的就是要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型。即從做什么到怎么做的過程。本章主要闡述了手機記事本的需求分析、功能模塊的設計、系統(tǒng)流程和界面設計,并對系統(tǒng)實現(xiàn)過程中所用到的關鍵方法進行了介紹。3.1系統(tǒng)需求分析3.1.1功能分析android手機記事本的使用人群定位為在校大學生,對于在校大學生而言最主要的還是上課。并且與其他事務相比較而言,上課也是大學生的重中之重,所以記事本的的主要功能是以圖形、文字的形式為用戶提供以課程為中心的服務,并提供友好、方便、快捷的操作界面。其功能需求主要包括:◆事件錄入:用戶可以通過點擊按鈕方便快捷地錄入信息?!羰录榭矗菏录且宰钪庇^最主要的信息顯示給用戶的,如果需要查看詳細的信息內容用戶可以點擊每個事件,進行詳細信息的查看?!羰录薷模簩τ谝呀涗浫氲男畔⑦M行修改?!粼O置信息提醒:每條信息可以單獨地設置提醒方式。3.1.2性能分析記事本的最重要功能就是對各種事務的記錄,在性能上也就必須保證應用程序在任何時刻都能夠精確處理數(shù)據(jù)如保持數(shù)據(jù)的原子性、持久性和一致性等。又由本應用程序是為android平臺開發(fā)的,且android手機的硬件特性,和性能良莠不齊。所以應用程序又要有更好的硬件兼容性,例如在3.5英寸屏幕上和在5.0英寸屏幕上要有一致的效果。4系統(tǒng)設計4.1系統(tǒng)設計目標結合需求分析和android平臺特點,系統(tǒng)設計的目標也就不難得出了我們需要采用java和xml語言實現(xiàn)一個運行于android平臺的記事本程序。因為android平臺之下有著數(shù)不勝數(shù)的各種機型,所以首先在性能上,我們的程序要能在多種屏幕大小的不同款式的手機上正常運行,且運行效果一致。另外還需要保證系統(tǒng)在數(shù)據(jù)處理方面的各種能力和性能,即保證數(shù)據(jù)的原子性、持久性和一致性。在功能上,數(shù)據(jù)庫滿足功能分析中的增、刪、改、查四條即可。4.2系統(tǒng)功能模塊設計本系統(tǒng)旨在建立Android手機的記事本服務,主要有如下幾個核心功能各個模塊的主要功能描述如下:◆常用課程模塊 主要是周一至周五每天的課程的錄入,課程的方式是以河北農業(yè)大學的課程安排方式進行的,每天上午,下午,晚上各兩節(jié)大課,沒接大課分為兩節(jié)小課,課程錄入模塊是以圖表的形式呈現(xiàn)給用戶的,用戶可以通過點擊每個時間段對應的按鈕來添加課程,這種最簡單直觀的形式容易讓用戶使用。◆不常用課程模塊 對于不常用課程來說就是周六日的課程,在課程安排當中,這一部分是不經常用到的,又由于手持設備屏幕大小的限制,所以把這一模塊拿出來單獨設計。這一部分的課程是以列表的形式出現(xiàn)的,由于其用處最少,所以并不需要對復雜的時間進行可視化。◆計劃模塊 同樣地計劃模塊也是以列表形式出現(xiàn)的。計劃模塊并不針對某一天或者某幾天,設置計劃模塊的意義在于,對于課程之外的事務進行安排,這樣的安排是比較合理的,也符合我把學習和其他事務分開的設計初衷。因為學生主要的任務是學習,隨然計劃也是重點之一,但是最主要的內容還是課程模塊當中的。◆數(shù)據(jù)庫模塊 數(shù)據(jù)庫模塊是所有業(yè)務邏輯的核心,數(shù)據(jù)庫是所有事務存儲的場所。這一部分主要是所有的數(shù)據(jù)庫業(yè)務,包括數(shù)據(jù)庫的讀寫,查詢,修改等雨霧邏輯。數(shù)據(jù)庫模塊作為整個核心,是所有業(yè)務邏輯的重中之重。4.3用戶界面設計在Android平臺下開發(fā)應用軟件,最重要的是布局問題。本系統(tǒng)設計了多個主要界面來實現(xiàn)與用戶的交互。并且界面的設計盡可能的符合手持設備的單手操作原則。頁面的流程圖如圖4-1所示幫助頁面幫助頁面事務詳情周末課程起始頁面課程頁面計劃界面圖4-1頁面流程圖◆起始界面主界面是用戶首先看到的界面,此界面主要有一句英語文本,還有就是兩個按鈕,這兩個按鈕上的文字,已經能夠提示用戶其功能,十分簡單易用?!羧粘绦畔⒅鹘缑?整個日程信息界面又無縫地分成三個獨立的頁面,可以通過手指的滑動來改變需要顯示的頁面。這個界面主要是實現(xiàn)了手指滑動左右翻頁的功能,這樣做能最大的符合人們日常操作手機的習慣,也是解決手持設備單手操作的最好方式之一。子頁面并沒有單獨存在,而是動態(tài)地嵌入在主頁面之中,第二個和第三個主頁面類似于清單條目,由于這種信息可能會存儲很多,所以我們給他加上了滾動條,通過單指的上下滑動來實現(xiàn)翻頁功能,在這里這樣做也是盡最大努力獲得做好的用戶體驗,◆事務詳情界面 這個界面是日程的詳細信息,詳細信息包括多個條目。這里在顯示上我遇到一個矛盾的地方:一個是我們的閱讀習慣是從上往下,所以重要的信息應該在上面,但是為了便于查看和修改這幾個主要信息條目,我們應該把它安排在最下面,這里出于閱讀體驗的考慮,犧牲了操作體驗。4.4數(shù)據(jù)庫設計數(shù)據(jù)庫設計是項目開發(fā)中非常重要的一個關鍵環(huán)節(jié),如果設計不好,在后來的系統(tǒng)變更和功能擴充時,將會遇到非常大的困難。用戶的需求具體體現(xiàn)在各種信息的記錄、刪除、更新和查詢。這就要求數(shù)據(jù)庫能夠滿足各種信息的輸入和輸出。表4-1表功能說明根據(jù)需求分析,需要將用戶錄入的日程及課程信息存儲到到數(shù)據(jù)庫中,便于用戶以后查看。相應數(shù)據(jù)表主要有兩個如表4-1。表4-1表功能說明兩個不同功能的表分別存儲了不同的表內容,具體內容分別展示表4-2Tb_schedule表內容表4-2Tb_schedule表內容表4-3Tb_plan表內容表4-3Tb_plan表內容5系統(tǒng)的實現(xiàn)結合系統(tǒng)設計最后對整個系統(tǒng)進行實現(xiàn),這一階段的目的就是通過代碼實現(xiàn)系統(tǒng)設計中的所有的設計。5.1主要界面實現(xiàn)Android平臺中,Android四大基本組件分別是Activity,Service服務,ContentProvider內容提供者,BroadcastReceiver廣播接收器。要實現(xiàn)程序的可視,Activity是必不可少的,實現(xiàn)Activity首先要對其有一定的了解。Activity生命周期如圖所示。圖5-1Activity生命周期主要的頁面實現(xiàn)是模仿騰訊qq的滑窗實現(xiàn)的,這種滑窗的實現(xiàn)方式是使用的FragmentActivity和ViewPager兩個結合來實現(xiàn)的,使用ViewPager首先需要引入android-support-v4.jar這個jar包。這種實現(xiàn)方式類似于往圓柱體上貼照片,然后通過轉動圓柱體來實現(xiàn)頁面的改變。這里ViewPager碼上我們要先實現(xiàn)圓柱體,再實現(xiàn)Fragment,最后再把Fragment貼到ViewPager上。主要的代碼實現(xiàn)如下privatevoidInitViewPager(){mPager=(ViewPager)findViewById(R.id.vPager);fragmentsList=newArrayList<Fragment>();Fragment1fmpro=newFragment1();Fragment2fmweekend=newFragment2();Fragment3fmplan=newFragment3();fragmentsList.add(fmpro);fragmentsList.add(fmweekend);fragmentsList.add(fmplan);mPager.setAdapter(newMyFragmentPagerAdapter(getSupportFragmentManager(),fragmentsList));mPager.setCurrentItem(0);mPager.setOnPageChangeListener(newMyOnPageChangeListener());}這段代碼就實現(xiàn)了所謂的往圓柱體上貼照片的過程。另外最后幾行還為ViewPager添加上了監(jiān)聽器,實現(xiàn)滑動時頁面的改變,只有添加上了OnPageChangeListener監(jiān)聽器菜能實現(xiàn)頁面的滑動效果,這里代碼就不再貼了,其他的頁面實現(xiàn)效果簡單,都是先通過編寫xml文件實現(xiàn)頁面,setContentView()方法實現(xiàn)最終的頁面效果。實現(xiàn)效果圖如圖5-2,看圖可以知道,我把具體的事務進行了一個簡單的分類和規(guī)劃,分為了日程、周末和計劃。在日程其實就是一個課程表,具體分成了五天,并且每天都分成了幾個部分,這幾個部分的劃分是根據(jù)我們農大的排課方式劃分來的。也就是周一至周五每天上午、下午和晚上各有兩個大客,每節(jié)大課又有兩節(jié)小課組成。因為在周末我們也存在少數(shù)的排課情況,所以為周末也安排了相應的課程計劃,這部分課很少,如果以圖表的形式出現(xiàn)的話,會顯得十分的空洞,并不能方便我們的查閱,所以這里專門弄了一個listview,當有課程的時候我們就進行添加,當沒有內容的時候,listview為空。最后一個是計劃列表,同樣也是通過listview實現(xiàn)的。最后在易用性上,通過FragmentActivity和ViewPager實現(xiàn)了頁面的滑動切換,也達到了方便人們單手操作的目的。圖5-2程序主界面實現(xiàn):查看課程詳細信息:在顯示效果中,每個課程條目的內容只是顯示的相關課程的名稱,并且每個課程的條目都是一個按鈕。點擊每個課程條目,可以查看每個課程的詳細信息,其中詳細信息包括課程名稱,上課地點,時間,提醒時間,是否啟動提醒,震動提醒,鈴聲提醒,其中上課名稱是需要用戶自行輸入的,上課地點也是用戶自行輸入的,在時間一欄中,時間是自動填充的,因為上課的地點和課程名稱可能會不同,但是上課的時間是相對固定的,所以在這里上課的時間由系統(tǒng)自動給出。方便用戶對于課程的錄入。在這一部分中,按鈕式很多的,要為每個按鈕都注冊上監(jiān)聽器,以方便在按鈕點擊的時候實現(xiàn)每項功能。要實現(xiàn)按鈕的點擊功能首先要找到相關的按鈕然后為該按鈕注冊上點擊事件監(jiān)聽器。/*通過findViewById方法和按鈕的ID找到按鈕*/ monday=(Button)view.findViewById(R.id.monday);/*通過setOnClickListener方法注冊上監(jiān)聽器*/mon_first.setOnClickListener(newMyButtonListener());這里的MyButtonListener實現(xiàn)了OnClickListener這個接口,在接口實現(xiàn)了對所有點擊事件的處理。圖5-3周末課程界面實現(xiàn):5.2數(shù)據(jù)庫功能的實現(xiàn)數(shù)據(jù)庫的實現(xiàn)是這個應用程序的重點,前面已經給出了具體的數(shù)據(jù)庫表內容,但是光有表的內容是遠遠不夠的,還要根據(jù)表內容對表進行創(chuàng)建,并創(chuàng)建累實現(xiàn)各種功能。Android數(shù)據(jù)庫的實現(xiàn)流程?!魟?chuàng)建數(shù)據(jù)庫:Android不自動提供數(shù)據(jù)庫。在Android應用程序中使用SQLite,必須自己創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建表、索引,填充數(shù)據(jù)。Android提供了SQLiteOpenHelper幫助你創(chuàng)建一個數(shù)據(jù)庫,你只要繼承SQLiteOpenHelper類,就可以輕松的創(chuàng)建數(shù)據(jù)庫。SQLiteOpenHelper類根據(jù)開發(fā)應用程序的需要,封裝了創(chuàng)建和更新數(shù)據(jù)庫使用的邏輯。SQLiteOpenHelper的子類,至少需要實現(xiàn)三個方法:構造函數(shù),調用父類SQLiteOpenHelper的構造函數(shù)onCreate()方法;//TODO創(chuàng)建數(shù)據(jù)庫后,對數(shù)據(jù)庫的操作onUpgrage()方法。//TODO更改數(shù)據(jù)庫版本的操作當你完成了對數(shù)據(jù)庫的操作(例如你的Activity已經關閉),需要調用SQLiteDatabase的Close()方法來釋放掉數(shù)據(jù)庫連接?!魟?chuàng)建表:通過execSQL方法來執(zhí)行一條SQL語句。具體的的形式如下StringCREATE_TABLE="createtable表名(列名,列名,……)";mSQLiteDatabase.execSQL(CREATE_TABLE);截取程序中的源代碼如下: Stringsql2="CREATETABLE"+TABLE_NAME_PLAN+"(" +ID+"INTEGERPRIMARYKEYAUTOINCREMENT," +PNO+"INTEGER," +CONTENT+"String," +REMIND_TIME+"String," +IS_REMIND+"boolean," +IS_REMIND_BY_VIBRATO+"boolean," +IS_REMIND_BY_RING+"boolean" +");"; db.execSQL(sql2);◆增加增刪改查的具體實現(xiàn):我們實現(xiàn)數(shù)據(jù)庫最終的目的就是存儲數(shù)據(jù),其中我們需要實現(xiàn)的功能無非就是增刪改查。根據(jù)需求分析,抽取出我們需要的具體操作,最后一代碼形式實現(xiàn)。需要功能如下:查詢所有課程查詢所有單、雙周的課程增加課程根據(jù)ID更新課程根據(jù)ID刪除課程查詢所有星期1-5的課程根據(jù)ID查詢星期1-5的課程查詢所有周末的課程根據(jù)week和whichLesson來查詢周末的課程添加計劃查詢所有計劃根據(jù)計劃編號來查詢計劃根據(jù)計劃編號來刪除計劃根據(jù)pno更新計劃根據(jù)需求分析我們用到的功能很多,但是總結一下無非就是增刪改查,實現(xiàn)方式如下插入記錄: //添加計劃 publicvoidinsertPlan(Planm){ SQLiteDatabasedb=mOpenHelper.getWritableDatabase(); ContentValuescv=newContentValues(); cv.put(PNO,m.getPno()); cv.put(CONTENT,m.getContent()); cv.put(REMIND_TIME,m.getRemindTime()); cv.put(IS_REMIND,m.isRemind()); cv.put(IS_REMIND_BY_VIBRATO,m.isRemindByVibrato()); cv.put(IS_REMIND_BY_RING,m.isRemindByRing()); db.insert(TABLE_NAME_PLAN,null,cv); db.close(); }更新記錄(修改記錄): //根據(jù)pno更新計劃 public
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紗線生產過程中的設備維護與管理考核試卷
- 躺式旅行悠閑享受度假時光考核試卷
- 輕質高強泡沫塑料的研究與發(fā)展考核試卷
- 航天器空間碎片監(jiān)測與預警系統(tǒng)考核試卷
- 通風電器具物聯(lián)網技術應用考核試卷
- 蔬菜加工企業(yè)品牌國際化戰(zhàn)略考核試卷
- 管道工程法律法規(guī)政策學習、運用與實施考核試卷
- 玻璃保溫容器耐壓性能研究考核試卷
- 甲狀腺患者的護理
- 智能停車項目投資建設與回報協(xié)議
- 北京故宮的詳細資料資料講解
- GB/T 38472-2023再生鑄造鋁合金原料
- 莫高窟經典簡介
- 2023年貴州黔南州人民檢察院招考聘用派遣制檢察輔助人員筆試題庫含答案解析
- 機械制造技術基礎課程設計講課用
- CMOS反相器的與設計
- 核醫(yī)學科儀器管理操作保養(yǎng)維修制度
- 《祝福》配套劇本 課件
- 電源板QC工程圖
- 小學數(shù)學小升初小升初專題復習小升初專題復習
- GB/T 8162-2008結構用無縫鋼管
評論
0/150
提交評論