版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、摘 要Android智能手機(jī)越來越普及。相比電腦,手機(jī)攜帶方便。Android具備強(qiáng)大的功能,支持復(fù)雜軟件的運(yùn)行。如果在手機(jī)上有一學(xué)生個(gè)人事務(wù)管理軟件。對學(xué)生的一些日程事務(wù)進(jìn)行管理,將能夠極大方便學(xué)生。個(gè)人事務(wù)管理系統(tǒng)Personal Affairs Management System (縮寫為PAMS)。本系統(tǒng)是基于現(xiàn)代生活的理念,結(jié)合日常生活中您的需求而產(chǎn)生的一款貼近生活的個(gè)人事務(wù)管理系統(tǒng)。此系統(tǒng)主要針對于個(gè)人事務(wù)的完整統(tǒng)籌與管理,對于提高生活質(zhì)量完善生活內(nèi)容有很好的作用。也更易于了解自身價(jià)值與需求。整個(gè)系統(tǒng)主要在于實(shí)現(xiàn)學(xué)生個(gè)人事務(wù)添加、查詢等功能;系統(tǒng)還應(yīng)具備事務(wù)提醒功能。系統(tǒng)的關(guān)鍵問題
2、是系統(tǒng)功能設(shè)計(jì)。本論文主要介紹了對基于Android平臺(tái)的學(xué)生個(gè)人事務(wù)管理系統(tǒng)的部分分析,設(shè)計(jì)和開發(fā)的全部過程。運(yùn)用UML圖,程序流程圖等對學(xué)生個(gè)人事務(wù)管理系統(tǒng)的設(shè)計(jì)過程進(jìn)行詳細(xì)的說明。全文共分為緒論、需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、測試五部分。關(guān)鍵詞: 個(gè)人事務(wù)管理;Android;WEB;JAVAABSTRACTAndroid smart phones are becoming increasingly popular . Compared to computers, mobile phones easy to carry . Android has powerful features to
3、 support the operation of complex software . If a student personal affairs management software on the phone . Management, will greatly facilitate students on the students schedule Affairs .On-line examination system designed to achieve examination of some of the paperless management, subjects test t
4、hrough Internet or LAN. This paper mainly introduced for JAVA on-line examination system exam part analysis, design and development entire process. Using UML diagrams, etc. On the program flowchart design process of the online management subsystem for detailed instructions. Full text is divided into
5、 the introduction, requirement analysis, system design and system implementation, testing five parts. Personal Affairs Management System(PAMS)This system is based on the concept of modern life , combined with a close to your needs arising in the daily life of individuals living transaction managemen
6、t system . This system is mainly for the complete co - ordination and management of personal affairs , for improving the quality of life to improve the living contents very good role . Easier to understand their own values and needs .The whole system is that students personal affairs to add, query a
7、nd other functions ; system should have a transaction reminder function . The key question is the system functional design .This thesis describes the part of students personal affairs management system based on the Android platform analysis, design and development process . Use of UML diagrams , pro
8、cess flow chart and detailed description of the design process of the students personal affairs management system . The full text is divided into Introduction , requirements analysis, system design, system implementation, testing five parts .Keywords: Personal Affairs Management System; Android; JAV
9、A目 錄 TOC o 1-3 h z u HYPERLINK l _Toc319844629 緒論 PAGEREF _Toc319844629 h 1HYPERLINK l _Toc319844630 1. 應(yīng)用背景 PAGEREF _Toc319844630 h 2HYPERLINK l _Toc319844631 1.1嵌入式領(lǐng)域的開發(fā) PAGEREF _Toc319844631 h 2HYPERLINK l _Toc319844632 2系統(tǒng)所用技術(shù) PAGEREF _Toc319844632 h 3HYPERLINK l _Toc319844633 2.1 Android介紹 PAGE
10、REF _Toc319844633 h 3HYPERLINK l _Toc319844634 2.2 Android的組件 PAGEREF _Toc319844634 h 7HYPERLINK l _Toc319844635 2.3 SQLite輕型數(shù)據(jù)庫 PAGEREF _Toc319844635 h 9HYPERLINK l _Toc319844636 2.4 JNI技術(shù) PAGEREF _Toc319844636 h 9HYPERLINK l _Toc319844637 2.5 Android系統(tǒng)的有點(diǎn) PAGEREF _Toc319844637 h 9HYPERLINK l _Toc3
11、19844638 3. 系統(tǒng)分析 PAGEREF _Toc319844638 h 10HYPERLINK l _Toc319844639 3.1 可行性分析 PAGEREF _Toc319844639 h 10HYPERLINK l _Toc319844640 3.2 需求分析 PAGEREF _Toc319844640 h 10HYPERLINK l _Toc319844641 4. 系統(tǒng)設(shè)計(jì) PAGEREF _Toc319844641 h 11HYPERLINK l _Toc319844642 4.1 概要設(shè)計(jì) PAGEREF _Toc319844642 h 11HYPERLINK l _
12、Toc319844643 4.2 數(shù)據(jù)存儲(chǔ) PAGEREF _Toc319844643 h 12HYPERLINK l _Toc319844644 4.2.1 SQLite PAGEREF _Toc319844644 h 12HYPERLINK l _Toc319844645 4.2.2 Preference PAGEREF _Toc319844645 h 13HYPERLINK l _Toc319844646 4.3 程序中的主要類 PAGEREF _Toc319844646 h 13HYPERLINK l _Toc319844647 4.3.1 ClassScheule類 PAGEREF
13、_Toc319844647 h 13HYPERLINK l _Toc319844648 4.3.2 Addclass類和AddPlan類 PAGEREF _Toc319844648 h 13HYPERLINK l _Toc319844649 4.3.3 DBDataManager類 PAGEREF _Toc319844649 h 14HYPERLINK l _Toc319844650 4.3.4 AlarmService類 PAGEREF _Toc319844650 h 14HYPERLINK l _Toc319844651 4. 系統(tǒng)的實(shí)現(xiàn) PAGEREF _Toc319844651 h 1
14、5HYPERLINK l _Toc319844652 5 系統(tǒng)測試 PAGEREF _Toc319844652 h 20HYPERLINK l _Toc319844653 5.1 單元測試 PAGEREF _Toc319844653 h 20HYPERLINK l _Toc319844654 5.1.1 單元測試簡介 PAGEREF _Toc319844654 h 20HYPERLINK l _Toc319844655 5.1.2 單元測試工具 PAGEREF _Toc319844655 h 21HYPERLINK l _Toc319844656 5.1.3 單元測試結(jié)果 PAGEREF _T
15、oc319844656 h 21HYPERLINK l _Toc319844657 5.1.4 單元測試作用 PAGEREF _Toc319844657 h 21HYPERLINK l _Toc319844658 結(jié)束語 PAGEREF _Toc319844658 h 22HYPERLINK l _Toc319844659 參考文獻(xiàn) PAGEREF _Toc319844659 h 23緒論當(dāng)前世界正大踏步地從工業(yè)時(shí)代邁向信息時(shí)代,信息化的浪潮一浪高過一浪,正席卷全球。信息化浪潮的廣度和深度,無論在技術(shù)領(lǐng)域、經(jīng)濟(jì)領(lǐng)域、社會(huì)領(lǐng)域,還是在政治領(lǐng)域上都是以前所無法比擬的。世界上眾多發(fā)達(dá)國家、新興工業(yè)化
16、國家乃至發(fā)展中國家都相繼制定各自的信息化計(jì)劃。信息化成為普遍的社會(huì)現(xiàn)象,成為當(dāng)今社會(huì)經(jīng)濟(jì)發(fā)展重的大趨勢。信息化實(shí)際上是管理個(gè)人事務(wù)管理系統(tǒng)的應(yīng)用。管理個(gè)人事務(wù)管理系統(tǒng)是一個(gè)不斷發(fā)展的新型學(xué)科,它的定義也隨著計(jì)算機(jī)技術(shù)和通訊技術(shù)的進(jìn)步不斷更新。在現(xiàn)階段普遍認(rèn)為管理個(gè)人事務(wù)管理系統(tǒng)是人和計(jì)算機(jī)設(shè)備或其他信息處理手段組成并用于管理信息的系統(tǒng)。在現(xiàn)代社會(huì),管理個(gè)人事務(wù)管理系統(tǒng)和計(jì)算機(jī)設(shè)備不可分離,它包括計(jì)算機(jī)、網(wǎng)絡(luò)通訊設(shè)備、等硬件成分,包括操作系統(tǒng)、應(yīng)用軟件包等軟件成分,并隨著計(jì)算機(jī)技術(shù)和通訊技術(shù)的迅速發(fā)展還會(huì)有更多的內(nèi)容。在一個(gè)組織中,管理個(gè)人事務(wù)管理系統(tǒng)是一個(gè)覆蓋組織或主要部門的輔助管理的人機(jī)系統(tǒng)
17、,它和組織的管理密切相關(guān),和企業(yè)的管理模式、經(jīng)營意識(shí)密切相關(guān),為組織的最終目標(biāo)服務(wù)。它為組織的科學(xué)化、合理化、制度化規(guī)范化管理,為組織的管理水平跨上新臺(tái)階,為組織的持續(xù)、健康、穩(wěn)定發(fā)展打下了基礎(chǔ)。在這樣一個(gè)大的背景下,我們研究傳統(tǒng)的個(gè)人事務(wù)管理系統(tǒng),都是基于PC以及備忘錄等不易攜帶的工具。從而我們需要一些更加簡便、易于攜帶的工具幫助我們進(jìn)行個(gè)人事務(wù)管理。Android智能手機(jī)越來越普及。相比電腦,手機(jī)攜帶方便。Android具備強(qiáng)大的功能,支持復(fù)雜軟件的運(yùn)行。如果在手機(jī)上有一學(xué)生個(gè)人事務(wù)管理軟件。對學(xué)生的一些日程事務(wù)進(jìn)行管理,將能夠極大方便學(xué)生?;贏ndroid平臺(tái)的個(gè)人事務(wù)管理軟件,更易于
18、攜帶、也更加方便我們對自己的日常事務(wù)進(jìn)行管理。尤其是學(xué)生,一般都不記得這些。如果有這個(gè)軟件,更有益于學(xué)生對自己的事務(wù)進(jìn)行管理。1. 應(yīng)用背景步入 21 世紀(jì)以來,隨著國際互聯(lián)網(wǎng)(Internet)的迅猛發(fā)展和世界經(jīng)濟(jì)一體化的加速,網(wǎng)絡(luò)信息急劇膨脹,國際交流日益頻繁,如何克服語言障礙已經(jīng)成為國際社會(huì)共同面對的問題。由于人工翻譯的方式遠(yuǎn)遠(yuǎn)不能滿足需求,利用語言信息處理技術(shù)協(xié)助人們快速獲取信息,已經(jīng)成為必然的趨勢。Android是Google推出的基于Linux內(nèi)核的軟件平臺(tái)和操作系統(tǒng)。Google已經(jīng)與Sony Ericsson、HTC、NTT DoCoMo、KDDI、Motorola等世界通訊領(lǐng)
19、域34家公司于免費(fèi)提供達(dá)成一致,今后對于移動(dòng)通訊的影響勢必會(huì)進(jìn)一步體現(xiàn)出來。1本課題為“基于Android的多語輔助工具設(shè)計(jì)和開發(fā)”,為Android設(shè)備提供了一個(gè)本地及在線處理多國信息的解決方案。這里“多語輔助工具”是“多語輔助翻譯工具”的簡稱。1.1嵌入式領(lǐng)域的開發(fā)隨著計(jì)算機(jī)技術(shù)和微電子技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)應(yīng)用領(lǐng)域越來越廣泛。嵌入式系統(tǒng)將向網(wǎng)絡(luò)化、智能化、規(guī)范化、集成化方向發(fā)展。在與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合的過程中,嵌入式系統(tǒng)將對國民經(jīng)濟(jì)進(jìn)行全方位的滲透,在我國國家現(xiàn)代化進(jìn)程中發(fā)揮巨大推進(jìn)作用。隨著技術(shù)進(jìn)步的不斷加速,我們有理由相信計(jì)算機(jī)還將繼續(xù)快速發(fā)展并進(jìn)一步改變我們的生活,讓計(jì)算
20、變得“無所不能”、“無處不在”。其中“無所不能”將是人工智能技術(shù)和超級(jí)計(jì)算機(jī)的結(jié)合,而“無所不在”則是嵌入式技術(shù)應(yīng)用的廣闊天地?,F(xiàn)在普通消費(fèi)者已經(jīng)可以從市場中買到數(shù)碼相機(jī)、移動(dòng)電話、打印機(jī)等眾多的數(shù)碼產(chǎn)品、航空設(shè)備、ATM機(jī)、計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備等電子產(chǎn)品中都用到了嵌入式系統(tǒng)。當(dāng)今,嵌入式系統(tǒng)已成為一個(gè)時(shí)髦的名詞,嵌入式系統(tǒng)的開發(fā)也成為了一個(gè)炙手可熱的行業(yè)。在嵌入式系統(tǒng)開發(fā)的領(lǐng)域中,手機(jī)系統(tǒng)的開發(fā)尤為熱門。目前,市場上使用的較多的智能手機(jī)操作系統(tǒng)包括Symbian,Palm OS,windows Mobiles等,而Google基于Linux的Android手機(jī)操作系統(tǒng)一度被業(yè)內(nèi)視為最有希望的移動(dòng)平
21、臺(tái)2。Android由于其開放性、不受運(yùn)營商束縛、豐富的硬件選擇性、不受限制的開發(fā)和無縫結(jié)合的Google應(yīng)用等幾大特性牢牢地占據(jù)了手機(jī)系統(tǒng)開發(fā)的主導(dǎo)地位。Android的誕生不但給Linux帶來了新的生機(jī),也加劇了Linux移動(dòng)平臺(tái)內(nèi)部的競爭。32系統(tǒng)所用技術(shù)2.1 Android介紹Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。目前,最新版本為Android 2.4 Gingerbread和Android
22、3.0 Honeycomb。6Android的系統(tǒng)結(jié)構(gòu)由四個(gè)層組成,分別為Linux內(nèi)核層、系統(tǒng)運(yùn)行庫層、應(yīng)用框架層和應(yīng)用層組成。Android系統(tǒng)的整體構(gòu)架如圖1所示。圖1 Android系統(tǒng)的整體架構(gòu)Applications(應(yīng)用層)應(yīng)用是用Java語言編寫的運(yùn)行在虛擬機(jī)上的程序,即圖中最上層的藍(lán)色部分,如圖所示。其實(shí),Google最開始時(shí)就在Android系統(tǒng)中捆綁了一些核心應(yīng)用,比如e-mail客戶端、SMS短消息程序、日歷、地圖、瀏覽器、聯(lián)系人管理程序,等等。Application Framework應(yīng)用框架層這一層即是編寫Google發(fā)布的核心應(yīng)用時(shí)所使用的API框架,開發(fā)人員同樣
23、可以使用這些框架來開發(fā)自己的應(yīng)用,這樣便簡化了程序開發(fā)的架構(gòu)設(shè)計(jì),但是必須遵守其框架的開發(fā)原則。從圖中可以看出Android提供了如下系統(tǒng)特色組件:豐富而又可擴(kuò)展的視圖(Views):可以用來構(gòu)建應(yīng)用程序,它包括列表(lists)、網(wǎng)格(grids)、文本框(text boxes)、按鈕(buttons), 甚至可嵌入的Web瀏覽器。內(nèi)容提供器(Content Providers):它可以讓一個(gè)應(yīng)用訪問另一個(gè)應(yīng)用的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫), 或共享它們自己的數(shù)據(jù)。資源管理器(Resource Manager):提供非代碼資源的訪問,如本地字符串、圖形、和布局文件(layout files)。通知
24、管理器 (Notification Manager):應(yīng)用可以在狀態(tài)欄中顯示自定義的提示信息。活動(dòng)管理器(Activity Manager):用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航退回功能。窗口管理器(Window Manager):管理所有的窗口程序。包管理器(Package Manager):Android系統(tǒng)內(nèi)的程序管理。Libraries、Android Runtime(系統(tǒng)運(yùn)行庫層)當(dāng)使用Android應(yīng)用框架時(shí),Android系統(tǒng)會(huì)通過一些C/C+庫來支持我們使用的各個(gè)組件,使其能更好地為我們服務(wù)。Bionic系統(tǒng)C庫:C語言標(biāo)準(zhǔn)庫,系統(tǒng)最底層的的庫,C庫通過Linux系統(tǒng)來調(diào)用
25、。多媒體庫(MediaFramework):Android系統(tǒng)多媒體庫,基于PackerVideo OpenCORE,該庫支持多種常見格式的音頻、視頻的回放和錄制,以及圖片,比如MPEG4、MP3、AAC、AMR、JPG、PNG等。SGL:2D圖形引擎庫。SSL:位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通信提供支持。OpenGL ES 1.0:3D效果的支持。SQLite:關(guān)系數(shù)據(jù)庫。Webkit:Web瀏覽器引擎。FreeType:位圖(bitmap)及矢量(vector)。在Android操作系統(tǒng)中,每個(gè)Java程序都運(yùn)行在Dalvik虛擬機(jī)上,其只能執(zhí)行.dex的可執(zhí)行文件,當(dāng)J
26、ava程序通過編譯后,最后還需要通過SDK中的dx工具轉(zhuǎn)為成.dex格式才能正常在虛擬機(jī)上執(zhí)行,Java虛擬機(jī)運(yùn)行的是Java字節(jié)碼,而Dalvik虛擬機(jī)運(yùn)行的則是其專有的文件格式dex(Dalvik Exceutable)的文件。Dalvik虛擬機(jī)有如下幾個(gè)主要特征:1.專有的dex文件格式。2.dex的優(yōu)化,dex文件的結(jié)構(gòu)是緊湊的。3.基于寄存器。4.一個(gè)應(yīng)用,一個(gè)虛擬機(jī)實(shí)例,一個(gè)進(jìn)程。每一個(gè)Android應(yīng)用度運(yùn)行在一個(gè)Dalvik虛擬機(jī)實(shí)例中,每一個(gè)虛擬機(jī)實(shí)例都是一個(gè)獨(dú)立的進(jìn)程空間。Linux Kernel(Linux內(nèi)核層)Android的核心系統(tǒng)服務(wù)基于Linux2.6內(nèi)核,如安
27、全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型等都依賴于Linux2.6內(nèi)核。Linux內(nèi)核同時(shí)也作為硬件和軟件棧之間的抽象層。Android更多的是需要一些與移動(dòng)設(shè)備相關(guān)的驅(qū)動(dòng)程序,主要的驅(qū)動(dòng)如下所示:顯示驅(qū)動(dòng)(Display Driver):基于Linux的幀緩沖(Frame Buffer)驅(qū)動(dòng)。鍵盤驅(qū)動(dòng)(KeyBoard Driver):作為輸入設(shè)備的鍵盤驅(qū)動(dòng)。Flash內(nèi)存驅(qū)動(dòng)(Flash Memory Driver):基于MTD的Flash驅(qū)動(dòng)程序。照相機(jī)驅(qū)動(dòng)(Camera Driver):常用的基于Linux的v4l2(Video for Linux)驅(qū)動(dòng)。音頻驅(qū)動(dòng)(Audio D
28、river):常用的基于ALSA(Advanced Linux Sound Architecture)的高級(jí)Linux聲音體系驅(qū)動(dòng)。藍(lán)牙驅(qū)動(dòng)(Bluetooth Driver):基于IEEE 802.15.1標(biāo)準(zhǔn)的無線傳輸技術(shù)。WiFi驅(qū)動(dòng)(Camera Drive):基于IEEE 802.11標(biāo)準(zhǔn)的驅(qū)動(dòng)程序。Binder IPC驅(qū)動(dòng):Android的一個(gè)特殊的驅(qū)動(dòng)程序,具有單獨(dú)的設(shè)備節(jié)點(diǎn),提供進(jìn)程間通訊的功能。Power Management(能源管理):比如電池電量等。2.2 Android的組件Android應(yīng)用程序由4個(gè)模塊構(gòu)造而成:Activity、Intent、Content Pr
29、ovider、Service。由于本系統(tǒng)中主要用到的是Activity,這里就著重介紹一下Activity。7Activity是最基本的模塊,一般稱之為“活動(dòng)”,在應(yīng)用程序中,一個(gè)Activity通常就是一個(gè)單獨(dú)的屏幕。簡單理解,Activity代表一個(gè)用戶所能看到的屏幕,主要用于處理應(yīng)用程序的整體性工作,例如監(jiān)聽系統(tǒng)事件,為用戶顯示指定的View,啟動(dòng)其他Activity等。所有應(yīng)用的Activity都繼承于android.app.Activity類,該類是Android提供的基層類,其他的Activity繼承該父類后,通過父類的方法來實(shí)現(xiàn)各種功能。在Android中,Activity擁有四
30、種基本狀態(tài):Running、Paused、Stoped和Killed。Runing一個(gè)新 Activity 啟動(dòng)入棧后,它在屏幕最前端,處于棧的最頂端,此時(shí)它處于可見并可和用戶交互的激活狀態(tài)。Paused 當(dāng) Activity 被另一個(gè)透明或者 Dialog 樣式的 Activity 覆蓋時(shí)的狀態(tài)。此時(shí)它依然與窗口管理器保持連接,系統(tǒng)繼續(xù)維護(hù)其內(nèi)部狀態(tài),所以它仍然可見,但它已經(jīng)失去了焦點(diǎn)故不可與用戶交互。Stoped 當(dāng) Activity 被另外一個(gè) Activity 覆蓋、失去焦點(diǎn)并不可見時(shí)處于 Stoped狀態(tài)。Killed Activity 被系統(tǒng)殺死回收或者沒有被啟動(dòng)時(shí)處于 Kille
31、d狀態(tài)。當(dāng)一個(gè) Activity 實(shí)例被創(chuàng)建、銷毀或者啟動(dòng)另外一個(gè) Activity 時(shí),它在這四種狀態(tài)之間進(jìn)行轉(zhuǎn)換,這種轉(zhuǎn)換的發(fā)生依賴于用戶程序的動(dòng)作。圖2是Android官方文檔中Activity的生命周期及其4個(gè)狀態(tài)間的轉(zhuǎn)換時(shí)機(jī)。圖2 Activity的生命周期及其4個(gè)狀態(tài)間的轉(zhuǎn)換時(shí)機(jī)2.3 SQLite輕型數(shù)據(jù)庫SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟
32、很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月。至今已經(jīng)有11個(gè)年頭,目前SQLite的最新版本 SQLite 3已經(jīng)發(fā)布。8本系統(tǒng)使用SQLite作為存儲(chǔ)單詞的數(shù)據(jù)庫,添加索引并優(yōu)化查詢算法后在G7上測試可以達(dá)到查詢單詞平均耗時(shí)低于55ms的查詢效率。2.4 JNI技術(shù)JNI是Java Native Interface的縮寫,中文為JAVA本地調(diào)用。從Java1.1開始,Java Native Interf
33、ace(JNI)標(biāo)準(zhǔn)成為java平臺(tái)的一部分,它允許Java代碼和其他語言寫的代碼進(jìn)行交互。JNI一開始是為了本地已編譯語言,尤其是C和C+而設(shè)計(jì)的,但是它并不妨礙使用其他語言,只要調(diào)用約定受支持就可以了。使用java與本地已編譯的代碼交互,通常會(huì)喪失平臺(tái)可移植性。但是,有些情況下,JNI這樣做是可以接受的,甚至是必須的,比如,使用一些舊的庫,與硬件、操作系統(tǒng)進(jìn)行交互,或者為了提高程序的性能。JNI標(biāo)準(zhǔn)至少保證本地代碼能工作在任何Java 虛擬機(jī)實(shí)現(xiàn)下。2.5 Android系統(tǒng)的有點(diǎn)與其他手機(jī)操作系統(tǒng)相比,Android有4個(gè)無可比擬的優(yōu)點(diǎn):開放性:Android系統(tǒng)同時(shí)包含了底層操作系統(tǒng)以
34、及移動(dòng)電話所需的全部軟件,不存在專有權(quán)障礙,開發(fā)平臺(tái)允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來,并允許不同廠商可以根據(jù)自己的需求對平臺(tái)進(jìn)行定制和擴(kuò)展,無需任何授權(quán)許可費(fèi)用;所有應(yīng)用程序平等:Android系統(tǒng)中,系統(tǒng)核心應(yīng)用和第三方應(yīng)用都是完全平等的,用戶可以將手機(jī)中的任意應(yīng)用程序替換成所需的其他應(yīng)用程序;應(yīng)用程序間無界限:開發(fā)人員可以吧Web上的數(shù)據(jù)與本地的日歷、聯(lián)系人、位置信息結(jié)合起來,應(yīng)用程序還可聲明它們可供其他程序使用;快速方便的應(yīng)用程序開發(fā):Android平臺(tái)為開發(fā)人員童工了大量的實(shí)用庫及工具,可以讓開發(fā)人員快速的創(chuàng)建自己的應(yīng)用3。3. 系統(tǒng)分析3.1 可行性分析在中國,手機(jī)已
35、經(jīng)成為人們?nèi)粘I畋夭豢缮俚囊徊糠郑悄苁謾C(jī)在學(xué)生群體中逐漸得到了普及,Android手機(jī)憑借其優(yōu)秀的系統(tǒng)性能以及良好的用戶體驗(yàn)迅速得到了高校師生的青睞。學(xué)生并不喜歡講個(gè)人事務(wù)記錄下來集中管理,而習(xí)慣靠著自己的記憶力去實(shí)施;但是人的記憶往往不是非常的準(zhǔn)確的,經(jīng)常會(huì)記錯(cuò)一些事情或者記漏一些事情,導(dǎo)致學(xué)生會(huì)忘記那些我們應(yīng)該去做的,從而導(dǎo)致很多事情遺漏的現(xiàn)象?;谶@些問題,有必要設(shè)計(jì)一款具有事務(wù)提醒功能的手機(jī)個(gè)人事務(wù)管理程序,配合上可以讓用戶自定義辦理事務(wù)時(shí)間以及地點(diǎn)的功能,從而避免遺忘應(yīng)該去辦理的事情出現(xiàn)。3.2 需求分析個(gè)人事務(wù)管理在手機(jī)應(yīng)用程序中并不常見,一般在手機(jī)上較為常見的日程提醒程序無法
36、實(shí)現(xiàn)自由設(shè)置校歷,重復(fù)提醒等功能。經(jīng)過對周邊同學(xué)的調(diào)查研究,普遍認(rèn)為這款軟件方便實(shí)用,其主要功能如下:事務(wù)到點(diǎn)鬧鈴提示;自定義設(shè)置每天事務(wù)數(shù)量;能根據(jù)時(shí)間增加事務(wù);能依據(jù)時(shí)間設(shè)置事務(wù)提醒;4. 系統(tǒng)設(shè)計(jì)4.1 概要設(shè)計(jì)從程序流程來分,用戶在第一次進(jìn)入程序時(shí)會(huì)進(jìn)入設(shè)置界面,設(shè)置一些基本的配置信息以方便數(shù)據(jù)庫管理,然后進(jìn)入添加事務(wù)界面,進(jìn)行添加事務(wù)操作。添加事務(wù)除了UI展示以外其他的方式都是在操作數(shù)據(jù)庫,在程序中使用SQLite以實(shí)現(xiàn)校歷功能,按天查詢功能等。在程序主界面使用用list展示記錄,從數(shù)據(jù)表中按當(dāng)天的時(shí)間讀取出當(dāng)天的記錄,得到當(dāng)天每個(gè)事務(wù)id,再通過事務(wù)id從transaction表中
37、查詢出對應(yīng)了事務(wù)信息,并在主界面中顯示。程序的配置信息主要存在preference中,該信息在數(shù)據(jù)顯示時(shí)讀取必要的配置信息,添加事務(wù)模塊也是采用preference中的鍵值對的方式存儲(chǔ)數(shù)據(jù),鍵為計(jì)劃提醒的時(shí)間,值為計(jì)劃的提示信息。這樣在service中監(jiān)聽系統(tǒng)時(shí)間變化,每分鐘會(huì)收到一個(gè)當(dāng)時(shí)時(shí)間的消息,通過轉(zhuǎn)換成時(shí)間字符串在preference中去查詢,如果能得到計(jì)劃的值,則說明在此時(shí)間有計(jì)劃,彈出提示信息并播放音樂,用來實(shí)現(xiàn)事務(wù)提醒功能,如圖3所示:用戶主界面PreferenceSQLite用戶設(shè)置界面事務(wù)添加界面計(jì)劃添加界面Service用戶設(shè)置信息計(jì)劃信息提示時(shí)間事務(wù)信息事務(wù)信息事務(wù)時(shí)間事
38、務(wù)時(shí)間圖3 程序結(jié)構(gòu)圖 4.2 數(shù)據(jù)存儲(chǔ)本程序數(shù)據(jù)存取方面主要用到了SQLite數(shù)據(jù)庫和Preference存儲(chǔ)機(jī)制。其中,SQLite主要用來存儲(chǔ)事務(wù)信息,Preference則主要用來存儲(chǔ)配置信息。4.2.1 SQLiteSQLite數(shù)據(jù)庫是Android系統(tǒng)中非常重要的數(shù)據(jù)存儲(chǔ)方法,它是Android系統(tǒng)唯一支持的數(shù)據(jù)庫類型,也是Android應(yīng)用程序進(jìn)行持久化存儲(chǔ)的三種方式之一。 SQLite數(shù)據(jù)庫是SQL數(shù)據(jù)庫的簡化版,支持大部分SQL操作。SQLite是Android應(yīng)用程序中非常常用的一種數(shù)據(jù)存儲(chǔ)手段。SQLite數(shù)據(jù)庫的創(chuàng)建創(chuàng)建數(shù)據(jù)庫主要用到了DBHelper類,該類繼承了SQ
39、LiteOpenHelper類,實(shí)現(xiàn)了數(shù)據(jù)庫、數(shù)據(jù)表的創(chuàng)建。具體方法如下:private static final String DB_NAME = transaction.db;public DBHelper(Context context)super(context, DB_NAME, null, 1);/在dbhelper的構(gòu)造函數(shù)中調(diào)用父類構(gòu)造函數(shù),傳入數(shù)據(jù)庫名,創(chuàng)建數(shù)據(jù)庫 SQLite數(shù)據(jù)表的設(shè)計(jì)根據(jù)對本程序的需求分析,本程序一共需要用到一張數(shù)據(jù)表,分別為transaction表transaction表主要用來存儲(chǔ)已經(jīng)添加的事務(wù),用戶每添加一個(gè)事務(wù)就會(huì)在該表中新增一條記錄,并且自動(dòng)生
40、成一個(gè)唯一的id,用以區(qū)別各個(gè)事務(wù),同樣名稱但是分成兩次添加的事務(wù)會(huì)被認(rèn)為是不同的事務(wù),這樣設(shè)計(jì)的目的主要是為了方便查詢。該表結(jié)構(gòu)設(shè)計(jì)如下:_id: 已添加的事務(wù)id,事務(wù)表主鍵,用來查找事務(wù),獲取事務(wù)信息_time: 事務(wù)的開始時(shí)間;_name:事務(wù)名稱;_address: 事務(wù)地點(diǎn);該數(shù)據(jù)庫設(shè)計(jì)初衷為保存整個(gè)學(xué)期的事務(wù),這樣實(shí)現(xiàn)整個(gè)學(xué)期的事務(wù)排布,包括數(shù)據(jù)的存儲(chǔ),事務(wù)的提醒和查詢都比較方便。開始的兩列包括日期,用戶只需要通過選擇周數(shù)和星期就可以生成日期。表中從第三列開始保存的為課表的id,通過該id可以在transaction表中查詢出對應(yīng)的事務(wù)內(nèi)容。4.2.2 PreferencePre
41、ference是一種輕量級(jí)的數(shù)據(jù)存儲(chǔ)機(jī)制,它將一些簡單數(shù)據(jù)類型的數(shù)據(jù)以鍵值對的形式存儲(chǔ)在程序的Preference目錄中。在Android平臺(tái)上,可以通過一個(gè)Context對象調(diào)用getSharedPreferences(String name,int mode)方法傳入Preferences文件名和打開模式,就可以獲得一個(gè)Sharedpreferences的對象4。4.3 程序中的主要類4.3.1 ClassScheule類該類為整個(gè)應(yīng)用的主Activity, 顯示事務(wù)表的主界面2。其主要方法如下:onCreate:Activity主要重寫方法之一,實(shí)現(xiàn)程序初始化和UI展示;onResume
42、:Activity重寫方法之一,實(shí)現(xiàn)在喚醒Activity時(shí)刷新界面;onCreateOptionMenu:實(shí)現(xiàn)Option菜單的創(chuàng)建;onMenuItemSeleted:實(shí)現(xiàn)菜單項(xiàng)的點(diǎn)擊事件響應(yīng);getDayClassRecord:從數(shù)據(jù)庫中獲取當(dāng)天的事務(wù)信息;UpdateUI:在數(shù)據(jù)發(fā)生改變時(shí)刷新UI;removeClass: 從數(shù)據(jù)庫中刪除事務(wù);界面設(shè)計(jì)方面通過RelativeLayout實(shí)現(xiàn)布局,使用了TextView,ImageButton事務(wù)列表通過ListView實(shí)現(xiàn)UI展示。該類通過繼承BaseAdapter還實(shí)現(xiàn)了一個(gè)名為MyListAdapter的內(nèi)部類,用來顯示ListV
43、iew中的數(shù)據(jù)并實(shí)現(xiàn)對ListView上ImageView控件點(diǎn)擊的統(tǒng)一響應(yīng) 5。4.3.2 Addclass類和AddPlan類AddClass類為實(shí)現(xiàn)添加事務(wù)界面的Activity,主要實(shí)現(xiàn)由用戶選擇和輸入事務(wù)信息,并將所有的事務(wù)信息添加到數(shù)據(jù)庫中。主要方法如下:onCreate: 初始化UI控件;SetDefaultData: 設(shè)置初始化時(shí)默認(rèn)的數(shù)據(jù);SaveData:將添加的事務(wù)保存進(jìn)數(shù)據(jù)庫中;gettimeString: 將輸入的事務(wù)信息轉(zhuǎn)換成對應(yīng)的時(shí)間字符串返回;AddPlan類實(shí)現(xiàn)添加計(jì)劃界面,并將添加的數(shù)據(jù)存入Preference中。主要方法如下:onCreate:實(shí)現(xiàn)初始化U
44、I控件;onClick:實(shí)現(xiàn)button點(diǎn)擊事件的響應(yīng);setPlan:實(shí)現(xiàn)添加計(jì)劃到preference中;4.3.3 DBDataManager類該類為自定義的重要的數(shù)據(jù)庫處理類,用來管理數(shù)據(jù)庫,對數(shù)據(jù)庫的所有操作都封裝在這個(gè)類中,實(shí)現(xiàn)數(shù)據(jù)封裝。將數(shù)據(jù)操作和UI操作隔離開來。主要方法如下:AddTran:給transaction表添加記錄;db.insert(transaction_TABLE, null, values);/insert方法插入一條數(shù)據(jù)deleteTran:刪除一條class記錄;db.delete(transaction_TABLE, _id = + transacti
45、onid, null);/delete方法刪除一條數(shù)據(jù)initTerm:給Term表添加初始數(shù)據(jù)addTransactionToterm:將添加的事務(wù)信息正確添加進(jìn)term表中deleteTransactionfromterm:從term表中刪除一次添加的class數(shù)據(jù)getdayTransactionRecord:獲得一天事務(wù)記錄4.3.4 AlarmService類該類實(shí)現(xiàn)定時(shí)服務(wù),service監(jiān)聽系統(tǒng)時(shí)間變化,當(dāng)系統(tǒng)時(shí)間和設(shè)置的時(shí)間相等時(shí),彈出提示信息,并播放音樂,實(shí)現(xiàn)提醒功能。主要方法如下:onReceive:監(jiān)聽系統(tǒng)時(shí)間變化,實(shí)現(xiàn)彈出提示信息和音樂播放,以下代碼用來監(jiān)聽系統(tǒng)時(shí)間8:
46、Calendar mCalendar = Calendar.getInstance(Locale.CHINA);String dateString = mCalendar.get(Calendar.YEAR) + -+ (mCalendar.get(Calendar.MONTH) + 1) + -+ mCalendar.get(Calendar.DAY_OF_MONTH) + -+ mCalendar.get(Calendar.HOUR_OF_DAY) + :+ mCalendar.get(Calendar.MINUTE); 以下代碼得到preference,如果沒有對應(yīng)記錄則planstri
47、ng會(huì)等于null,如果不等于null就執(zhí)行提醒。SharedPreferences preference = context.getSharedPreferences(ClassSchedule,Context.MODE_PRIVATE);String planString = preference.getString(dateString, null);preference中存計(jì)劃是就是以提醒時(shí)間為鍵值,當(dāng)?shù)玫疆?dāng)前時(shí)間等于鍵值時(shí)就執(zhí)行提醒,啟動(dòng)MusicService這個(gè)服務(wù)player = MediaPlayer.create(this, R.raw.shangkele);/創(chuàng)建播放器p
48、layer.start();/開始播放4. 系統(tǒng)的實(shí)現(xiàn)在完成系統(tǒng)設(shè)計(jì)以后,即可在Android虛擬機(jī)中運(yùn)行程序,運(yùn)行效果如下:軟件設(shè)置界面,該界面為用戶第一次進(jìn)入程序所顯示的界面,往后的使用中,用戶可以通過“Menu”“設(shè)置”的操作步驟來進(jìn)入該界面。在此界面,用戶可以設(shè)置第一周開始時(shí)間,每學(xué)期的周數(shù)以及事務(wù)數(shù)量和持續(xù)時(shí)間,如圖4所示:圖4 軟件設(shè)置界面設(shè)置事務(wù)的類型,添加事務(wù),添加感想,以下界面由點(diǎn)擊軟件設(shè)置界面中的“類型后”后彈出,如圖5所示:圖5 設(shè)置事務(wù)類型程序主界面,該界面是用戶非第一次進(jìn)入程序所顯示的界面,此界面主要顯示用戶所添加的事務(wù)的信息,可以通過刪除按鈕來實(shí)現(xiàn)刪除事務(wù)的操作,如
49、圖6所示:圖6 程序主界面添加事務(wù)界面,該界面通過“Menu”“添加事務(wù)”操作進(jìn)入,在該界面用戶可以根據(jù)自己的需求來添加事務(wù),如圖7所示:圖7 添加事務(wù) 同時(shí)也可以在首頁點(diǎn)擊添加事務(wù),如圖8所示:圖8 首頁添加添加感想界面,該界面通過“Menu”“添加感想”操作進(jìn)入,在此界面用戶可以添加一個(gè)計(jì)劃感想,如圖9所示:圖9添加感想退出,該界面通過“Menu”“退出”操作進(jìn)入,此操作可以退出應(yīng)用,如圖10所示:圖10 退出首頁:在首頁可以查看已經(jīng)純在的事務(wù)并可以查看:如圖11為首頁:圖11 首頁事務(wù)內(nèi)容頁面:點(diǎn)擊首頁事務(wù)可以查看事務(wù)的詳細(xì)信息,如圖12所示:圖12 事務(wù)內(nèi)容頁面5 系統(tǒng)測試在軟件開發(fā)的過程中,測試是一個(gè)非常重要的步驟,測試可以檢測出開發(fā)過程中的錯(cuò)誤、bug、設(shè)計(jì)的失誤,已完成軟件所應(yīng)完成的操作,將系統(tǒng)更好的按成,以便于使用時(shí)能達(dá)到需求的標(biāo)準(zhǔn)。本系統(tǒng)測試分為三個(gè)部分:單元測試、性能測試、壓力測試等,分別用不同的測試一發(fā)現(xiàn)系統(tǒng)的錯(cuò)誤和bug,然后修改在測試,進(jìn)行迭代開發(fā),使系統(tǒng)更加完善,更易于使用。5.1 單元測試5.1.1 單元測試簡介單元測試是在軟件開發(fā)過程中要進(jìn)行的最低級(jí)別的測試活動(dòng),在單元測試活動(dòng)中,軟件的獨(dú)立單元將在與程序的其他部分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職俄語(俄語會(huì)話)試題及答案
- 2025年大學(xué)大四(護(hù)理學(xué))婦產(chǎn)科護(hù)理學(xué)基礎(chǔ)測試題及答案
- 2025年中職汽車美容(汽車美容技術(shù))試題及答案
- 中學(xué)教師安全培訓(xùn)課件
- 運(yùn)行休息室管理制度
- 會(huì)議資料保密與安全管理制度
- 工資分配培訓(xùn)
- 2026年施工升降機(jī)安裝維修工防墜安全器校驗(yàn)測試含答案
- 2026年北京保安證試題及詳細(xì)答案解析
- 2026年理財(cái)規(guī)劃基礎(chǔ)認(rèn)證考題含答案
- 2020高職院校教學(xué)能力比賽大學(xué)語文課程實(shí)施報(bào)告(定)
- 長期合作協(xié)議書合同書
- 浙江省小型液化天然氣氣化站技術(shù)規(guī)程
- 危化品安全管理培訓(xùn)課件
- 小兒鞘膜積液
- 畢業(yè)設(shè)計(jì)粘土心墻土石壩設(shè)計(jì)含計(jì)算書cad圖
- 黑龍江省控制性詳細(xì)規(guī)劃編制規(guī)范
- 6工程竣工驗(yàn)收交付證明書
- 《俠客風(fēng)云傳前傳》支線流程攻略1.0.2.4
- GB/T 12325-2008電能質(zhì)量供電電壓偏差
- 《抖音短視頻營銷存在的問題及對策10000字》
評論
0/150
提交評論