基于android的手機(jī)通訊_錄系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)_第1頁
已閱讀1頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  課 程 設(shè) 計(jì)</b></p><p>  畢業(yè)論文(設(shè)計(jì))原創(chuàng)性聲明</p><p>  本人所呈交的畢業(yè)論文(設(shè)計(jì))是我在導(dǎo)師的指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我所知,除文中已經(jīng)注明引用的內(nèi)容外,本論文(設(shè)計(jì))不包含其他個(gè)人已經(jīng)發(fā)表或撰寫過的研究成果。對(duì)本論文(設(shè)計(jì))的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中作了明確說明并表示

2、謝意。 </p><p>  作者簽名: 日期: </p><p>  畢業(yè)論文(設(shè)計(jì))授權(quán)使用說明</p><p>  本論文(設(shè)計(jì))作者完全了解**學(xué)院有關(guān)保留、使用畢業(yè)論文(設(shè)計(jì))的規(guī)定,學(xué)校有權(quán)保留論文(設(shè)計(jì))并向相關(guān)部門送交論文(設(shè)計(jì))的電子版和紙質(zhì)版。有權(quán)將論文(設(shè)計(jì))用于非贏利目的的少量復(fù)制并允

3、許論文(設(shè)計(jì))進(jìn)入學(xué)校圖書館被查閱。學(xué)??梢怨颊撐模ㄔO(shè)計(jì))的全部或部分內(nèi)容。保密的論文(設(shè)計(jì))在解密后適用本規(guī)定。 </p><p>  作者簽名: 指導(dǎo)教師簽名: </p><p>  日期: 日期: </p><p><b>

4、  注 意 事 項(xiàng)</b></p><p>  1.設(shè)計(jì)(論文)的內(nèi)容包括:</p><p>  1)封面(按教務(wù)處制定的標(biāo)準(zhǔn)封面格式制作)</p><p><b>  2)原創(chuàng)性聲明</b></p><p>  3)中文摘要(300字左右)、關(guān)鍵詞</p><p>  4)外文摘要、

5、關(guān)鍵詞 </p><p>  5)目次頁(附件不統(tǒng)一編入)</p><p>  6)論文主體部分:引言(或緒論)、正文、結(jié)論</p><p><b>  7)參考文獻(xiàn)</b></p><p><b>  8)致謝</b></p><p>  9)附錄(對(duì)論文支持必要時(shí))<

6、;/p><p>  2.論文字?jǐn)?shù)要求:理工類設(shè)計(jì)(論文)正文字?jǐn)?shù)不少于1萬字(不包括圖紙、程序清單等),文科類論文正文字?jǐn)?shù)不少于1.2萬字。</p><p>  3.附件包括:任務(wù)書、開題報(bào)告、外文譯文、譯文原文(復(fù)印件)。</p><p>  4.文字、圖表要求:</p><p>  1)文字通順,語言流暢,書寫字跡工整,打印字體及大小符合要求

7、,無錯(cuò)別字,不準(zhǔn)請(qǐng)他人代寫</p><p>  2)工程設(shè)計(jì)類題目的圖紙,要求部分用尺規(guī)繪制,部分用計(jì)算機(jī)繪制,所有圖紙應(yīng)符合國家技術(shù)標(biāo)準(zhǔn)規(guī)范。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準(zhǔn)用徒手畫</p><p>  3)畢業(yè)論文須用A4單面打印,論文50頁以上的雙面打印</p><p>  4)圖表應(yīng)繪制于無格子的頁面上</p><p&

8、gt;  5)軟件工程類課題應(yīng)有程序清單,并提供電子文檔</p><p><b>  5.裝訂順序</b></p><p><b>  1)設(shè)計(jì)(論文)</b></p><p>  2)附件:按照任務(wù)書、開題報(bào)告、外文譯文、譯文原文(復(fù)印件)次序裝訂</p><p><b>  3)其它&

9、lt;/b></p><p><b>  目 錄</b></p><p><b>  1.系統(tǒng)描述1</b></p><p>  1.1 問題描述1</p><p>  1.2 功能描述1</p><p>  1.3 數(shù)據(jù)需求2</p>&l

10、t;p>  1.4 設(shè)計(jì)意義2</p><p><b>  2.背景介紹2</b></p><p>  2.1 Android系統(tǒng)概述2</p><p>  2.2 Android開發(fā)組件4</p><p>  2.2.1 Activity組件4</p><p>  2.2.2 S

11、ervice 組件7</p><p>  2.2.3 BroadcastReceiver 組件8</p><p>  2.2.4 Content Provider 組件8</p><p>  2.3 Android數(shù)據(jù)庫9</p><p>  2.3.1 SQLite數(shù)據(jù)庫9</p><p>  2.3.2

12、SQLite數(shù)據(jù)庫特點(diǎn)10</p><p>  3.可行性研究11</p><p>  3.1 技術(shù)可行性11</p><p>  3.2 經(jīng)濟(jì)可行性11</p><p>  3.3 操作可行性11</p><p><b>  4.需求分析12</b></p><p

13、>  4.1 前期調(diào)研12</p><p>  4.2 數(shù)據(jù)流圖12</p><p>  4.3 數(shù)據(jù)字典13</p><p><b>  5.系統(tǒng)設(shè)計(jì)14</b></p><p>  5.1 總體設(shè)計(jì)14</p><p>  5.2 數(shù)據(jù)庫表結(jié)構(gòu)14</p>&l

14、t;p>  5.2.1 實(shí)體14</p><p>  5.2.2 系統(tǒng)E-R圖15</p><p>  5.2.3 數(shù)據(jù)庫表設(shè)計(jì)15</p><p>  5.3 輸入/輸出設(shè)計(jì)16</p><p>  5.4 處理過程設(shè)計(jì)17</p><p>  5.4.1 業(yè)務(wù)流程圖17</p>&l

15、t;p>  5.4.2 系統(tǒng)Activity設(shè)計(jì)18</p><p>  5.4.3 功能處理設(shè)計(jì)19</p><p>  5.4.4 系統(tǒng)界面設(shè)計(jì)23</p><p><b>  6.詳細(xì)設(shè)計(jì)28</b></p><p>  6.1 開發(fā)環(huán)境28</p><p>  6.2 程序

16、設(shè)計(jì)29</p><p>  6.2.1 數(shù)據(jù)類設(shè)計(jì)29</p><p>  6.2.2 Main(Activity)設(shè)計(jì)32</p><p>  6.2.3 AddNew(Activity)設(shè)計(jì)33</p><p>  6.2.4 UserDetail(Activity)設(shè)計(jì)34</p><p>  6.2

17、.5 MainPrivacy(Activity)設(shè)計(jì)35</p><p><b>  7.系統(tǒng)測試36</b></p><p>  7.1 程序調(diào)試36</p><p>  7.2 系統(tǒng)的測試36</p><p>  7.2.1 測試的意義及目的36</p><p>  7.2.2 測試

18、步驟36</p><p>  7.2.3 測試的主要內(nèi)容37</p><p>  7.3 測試數(shù)據(jù)38</p><p>  7.3.1 添加模塊測試38</p><p>  7.3.2 查看編輯模塊測試39</p><p>  7.3.3 查詢模塊測試41</p><p>  7.3

19、.4 刪除模塊測試43</p><p>  7.3.5 備份與還原模塊測試46</p><p><b>  8設(shè)計(jì)總結(jié)48</b></p><p>  8.1 設(shè)計(jì)特點(diǎn)48</p><p>  8.2 經(jīng)驗(yàn)與收獲49</p><p>  本科生課程設(shè)計(jì)成績評(píng)定表51</p>

20、<p>  計(jì)算機(jī)能力拓展訓(xùn)練任務(wù)書</p><p>  學(xué)生姓名: 專業(yè)班級(jí): 計(jì)算機(jī)班 </p><p>  指導(dǎo)教師: 工作單位: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 </p><p>  題 目: </p><p>

21、<b>  初始條件:</b></p><p>  理論:.NET、Java、Linux、Android或Windows Phone環(huán)境, Oracle、SQLite、SQL Server、SQL Server CE或MySQL數(shù)據(jù)庫, C#、Eclipse、C++或其它合適、有效的開發(fā)工具,等等。</p><p>  實(shí)踐:計(jì)算機(jī)科學(xué)系實(shí)驗(yàn)中心提供計(jì)算機(jī)及軟件開發(fā)環(huán)

22、境。</p><p>  要求完成的主要任務(wù): </p><p> ?。?)系統(tǒng)需求分析:使用軟件工程所學(xué)的知識(shí)對(duì)擬開發(fā)的系統(tǒng)進(jìn)行數(shù)據(jù)需求和功能需求分析,確定開發(fā)環(huán)境和工具軟件。 </p><p>  (2)系統(tǒng)設(shè)計(jì):根據(jù)系統(tǒng)需求分析進(jìn)行概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),在確定好的開發(fā)環(huán)境中利用確定的工具軟件進(jìn)行系統(tǒng)實(shí)現(xiàn)。</p><p>  (3)編制好

23、程序后,設(shè)計(jì)若干測試用例,上機(jī)測試所設(shè)計(jì)的原型系統(tǒng)。</p><p>  (4)設(shè)計(jì)報(bào)告按格式要求書寫。設(shè)計(jì)報(bào)告正文的內(nèi)容應(yīng)包括:</p><p>  1)系統(tǒng)描述 包括問題說明、數(shù)據(jù)需求和功能需求。</p><p>  2)系統(tǒng)設(shè)計(jì) 包括總體設(shè)計(jì)、數(shù)據(jù)庫表結(jié)構(gòu)、輸入/輸出設(shè)計(jì)、用戶界面設(shè)計(jì)、處理過程設(shè)計(jì)。</p><p>  3

24、)系統(tǒng)測試 包括測試用例的描述、測試方法和測試結(jié)果。</p><p>  4)設(shè)計(jì)的特點(diǎn)、不足、收獲和體會(huì)。</p><p><b>  時(shí)間安排:</b></p><p><b>  1、暑期完成。</b></p><p>  2、下學(xué)期開學(xué)第一周到計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心(三樓)檢查程序、交課程

25、設(shè)計(jì)報(bào)告、源程序(CD盤)。</p><p>  指導(dǎo)教師簽名: 年 月 日</p><p>  系主任(或責(zé)任教師)簽名: 年 月 日</p><p>  基于Andriod環(huán)境的通訊錄系統(tǒng)設(shè)計(jì)</p><p><b>  1.系統(tǒng)描述<

26、/b></p><p><b>  1.1 問題描述</b></p><p>  學(xué)習(xí)完計(jì)算機(jī)相關(guān)專業(yè)課后,對(duì)計(jì)算機(jī)軟硬件相關(guān)知識(shí)有了一定的了解;基于此,設(shè)計(jì)與實(shí)現(xiàn)一個(gè)在Android系統(tǒng)上運(yùn)行的手機(jī)通訊管理軟件,實(shí)現(xiàn)手機(jī)通訊錄的基本功能,包括:添加聯(lián)系人、查看聯(lián)系人、修改聯(lián)系人、刪除聯(lián)系人、撥打電話、發(fā)送短信、查詢聯(lián)系人,以及聯(lián)系人的導(dǎo)入導(dǎo)出功能即聯(lián)系人的備份

27、。</p><p>  主要開發(fā)基于Android 的手機(jī)的通訊管理軟件。以Java語言為基礎(chǔ),結(jié)合Android移動(dòng)開發(fā)平臺(tái),并利用Android提供的SDK,實(shí)現(xiàn)在Android平臺(tái)上運(yùn)行的手機(jī)通訊錄,方便廣大手機(jī)用戶更加便捷地對(duì)聯(lián)系人的信息進(jìn)行管理。該手機(jī)通訊錄面向所有的Android手機(jī)用戶,為他們提供更實(shí)際便捷的手機(jī)服務(wù),具有撥號(hào)、通訊記錄等基本功能。該通訊錄的數(shù)據(jù)導(dǎo)出功能是該軟件的一個(gè)特色,可以實(shí)現(xiàn)聯(lián)

28、系人數(shù)據(jù)導(dǎo)出到文本,實(shí)現(xiàn)數(shù)據(jù)備份。大家生活當(dāng)中經(jīng)常遇到手機(jī)丟失,出現(xiàn)故障,和其他一些事故。最擔(dān)心的就是丟失手機(jī)里的電話號(hào)碼。</p><p><b>  1.2 功能描述</b></p><p>  此次設(shè)計(jì)的軟件主要功能有:</p><p>  添加聯(lián)系人:可以添加聯(lián)系人的基本信息,如:姓名、電話、單位、住址等信息;</p>&

29、lt;p>  查看信息:查看某個(gè)聯(lián)系人的具體信息;</p><p>  查詢聯(lián)系人:根據(jù)輸入的條件查詢聯(lián)系人;</p><p><b>  修改聯(lián)系人的信息;</b></p><p>  數(shù)據(jù)備份與還原:可以將整個(gè)通訊錄備份到SD卡上,以防止信息丟失、抑可將備份的數(shù)據(jù)還原到通訊錄中;</p><p><b&g

30、t;  1.3 數(shù)據(jù)需求</b></p><p>  本程序的數(shù)據(jù)為通訊錄中的聯(lián)系人信息,這些信息有用戶輸入,并保存在Android的SQLite數(shù)據(jù)庫中,主要有:聯(lián)系人的姓名、手機(jī)、家庭電話、公司電話、單位、家庭地址、電子郵件、備注等信息。</p><p><b>  1.4 設(shè)計(jì)意義</b></p><p>  隨著3G網(wǎng)絡(luò)的使

31、用,移動(dòng)終端不再僅是通訊網(wǎng)絡(luò)的終端,還將成為互聯(lián)網(wǎng)的終端。因此,移動(dòng)終端的應(yīng)用軟件和需要的服務(wù)將會(huì)有很大的發(fā)展空間。在Google和Android手機(jī)聯(lián)盟的共同推動(dòng)下,Android在眾多手機(jī)操作系統(tǒng)中脫穎而出,受到廣大消費(fèi)者的歡迎。</p><p>  手機(jī)通訊錄作為手機(jī)的基本功能之一,每天我們都在頻繁地使用著。根據(jù)手機(jī)功能使用調(diào)查顯示,有八成以上的消費(fèi)者使用手機(jī)通訊錄功能。隨著手機(jī)通訊錄功能的不斷加強(qiáng)與完善,

32、手機(jī)通訊錄對(duì)于人們的意義,已不僅僅像記事簿一樣顯示通訊地址,而是向著個(gè)性化、人性化的方向發(fā)展[4]。通訊錄從無到有,從英文到中文,經(jīng)過了十幾年的發(fā)展歷程,今后的發(fā)展趨勢就是從通訊錄發(fā)展為名片夾,也就是在一個(gè)人名下,可以存儲(chǔ)座機(jī)、手機(jī)、單位、地址、電子郵件等內(nèi)容。這種名片夾在電話薄的基礎(chǔ)上,大大豐富了內(nèi)容,同時(shí)結(jié)構(gòu)也發(fā)生了革命性變化,而且隨著手機(jī)的發(fā)展,相信更優(yōu)秀的通訊錄會(huì)越來越受到社會(huì)各層人士的喜愛。</p><p&

33、gt;<b>  2.背景介紹</b></p><p>  2.1 Android系統(tǒng)概述</p><p>  Android一詞的本義指"機(jī)器人",同時(shí)也是Google在2007年11月5日宣布的基于Linux內(nèi)核的開源手機(jī)系統(tǒng)的名稱,中文注冊商標(biāo)"安致", 該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是一個(gè)為移動(dòng)終端

34、打造的真正開放和完整的智能手機(jī)系統(tǒng)。其早期為Google開發(fā),后由開放手機(jī)聯(lián)盟( Open Handset Alliance)開發(fā)。它采用了軟件堆層(software stack,又名以軟件疊層)的架構(gòu),主要分為三部分,底層以Linux內(nèi)核為基礎(chǔ),由C語言開發(fā),只提供基本功能;中間層包括數(shù)據(jù)庫Library和虛擬機(jī)Virtual Machine,由C++開發(fā);最上層是由各公司自行開發(fā),以Java編寫的各種應(yīng)用軟件,如通話程序,短信程序等

35、。</p><p>  Android平臺(tái)架構(gòu):</p><p>  Android平臺(tái)整體自底向上由以下四個(gè)層次組成:Linux內(nèi)核層、Android運(yùn)行庫和其他庫層、應(yīng)用框架層、應(yīng)用程序?qū)印?lt;/p><p><b>  Linux內(nèi)核層</b></p><p>  Android 基于Linux version 2.

36、6.23內(nèi)核開發(fā)的,主要是添加了一個(gè)名為Goldfish的虛擬CPU以及Android運(yùn)行。</p><p>  所需的特定驅(qū)動(dòng)代碼,該層用來提供系統(tǒng)的底層服務(wù),包括安全機(jī)制、存管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧及一系列驅(qū)動(dòng)模塊。作為一虛擬的中間層,該層位于硬件和軟件層之間。但這個(gè)內(nèi)核操作系統(tǒng)并非類GNU/Linux的,所以其系統(tǒng)庫、系統(tǒng)初始化和編程接口都和標(biāo)準(zhǔn)Linux系統(tǒng)有所不同的。它沒有采用虛擬內(nèi)存文件系統(tǒng)。而是采用

37、YAFFS2文件系統(tǒng)YAFFSYetAnotherFlash File System文件系統(tǒng)是一個(gè)開源的,專門為 NAND Flash 設(shè)計(jì)的文件系統(tǒng),具有很好的可移植性,也是一種日志型文件系統(tǒng),能夠在 Linux,uCLinux和 Windows CE 上運(yùn)行。YAFFS 目前有 YAFFS 和 YAFFS2 兩個(gè)版本,一般來說,YAFFS 對(duì)小頁面528 字節(jié)/頁有很好的支持,而更大的頁面2K 64字節(jié)/頁就需要支持超大容量的 NA

38、ND Flash。所以采用支持大頁面的 YAFFS2文件系統(tǒng)。</p><p>  Android運(yùn)行庫和其他庫層</p><p>  Android運(yùn)行庫包含一組核心庫和Dalvik虛擬機(jī)。同時(shí)Android提供了豐富的庫類支持且大部分為開源代碼,如采用的數(shù)據(jù)庫為SQLite。Android選擇它作為移動(dòng)終端的嵌入式數(shù)據(jù)庫有以下優(yōu)點(diǎn),它無需安裝和管理配置,它是一個(gè)存儲(chǔ)在單一磁盤文件中的完

39、整數(shù)據(jù)庫,體積小只有250KB但支持?jǐn)?shù)據(jù)庫大小至2TB,提供了對(duì)事務(wù)功能和并發(fā)處理的支持,而且比目前流行的大多數(shù)數(shù)據(jù)庫運(yùn)行速度快。</p><p><b>  應(yīng)用框架層</b></p><p>  在應(yīng)用框架Android開發(fā)人員可以跟那些核心應(yīng)用一樣擁有訪問框架APIS的全部權(quán)限。應(yīng)用的系統(tǒng)機(jī)構(gòu)化設(shè)計(jì)簡化了各組件之間的重用,任何應(yīng)用都可以分發(fā)自己的足見,任何應(yīng)用也

40、可以使用這些分發(fā)的足見。</p><p><b>  應(yīng)用程序?qū)?lt;/b></p><p>  Android本身會(huì)附帶一些核心的應(yīng)用程序,包括e-mail客戶端、短信程序、日歷、地圖、瀏覽器、通訊錄等等,目前所有的應(yīng)用程序都是由java語言開發(fā)的。</p><p>  圖2-1 Android體系結(jié)構(gòu)</p><p> 

41、 2.2 Android開發(fā)組件</p><p>  Android開發(fā)四大組件分別是:活動(dòng)(Activity): 用于表現(xiàn)功能;服務(wù)(Service): 后臺(tái)運(yùn)行服務(wù),不提供界面呈現(xiàn);廣播接收器(BroadcastReceiver):用于接收廣播;內(nèi)容提供商(Content Provider): 支持在多個(gè)應(yīng)用中存儲(chǔ)和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫。</p><p>  2.2.1 Activi

42、ty組件</p><p>  Android 中,Activity 是所有程序的根本,所有程序的流程都運(yùn)行在Activity 之中,Activity可以算是開發(fā)者遇到的最頻繁,也是Android 當(dāng)中最基本的模塊之一。</p><p>  一般一個(gè)Android 應(yīng)用是由多個(gè)Activity 組成的,這多個(gè)Activity 之間可以進(jìn)行相互跳轉(zhuǎn),每個(gè)Activity都是一個(gè)單獨(dú)的類,它擴(kuò)展

43、實(shí)現(xiàn)了Activity基礎(chǔ)類。這個(gè)類顯示為一個(gè)有Views組成的用戶界面,并響應(yīng)事件。大多數(shù)程序有多個(gè)Activity。某些情況下,一個(gè)Activity可能會(huì)給前一個(gè)Activity返回值。</p><p>  打開一個(gè)新界面后,前一個(gè)界面被暫停,并放入歷史棧中。使用者可以回溯前面已經(jīng)打開的存放在歷史棧中的界面,也可以從歷史棧中刪除沒有價(jià)值的界面。</p><p>  Activity的生

44、命周期</p><p>  如圖2-1所示,Activity的5中狀態(tài)之間的如何切換與運(yùn)作</p><p>  圖2-2 Activity的生命周期</p><p>  一個(gè)Activity的啟動(dòng)順序:onCreate()-->onStart()-->onResume()</p><p>  當(dāng)另一個(gè)Activity啟動(dòng)時(shí):<

45、;/p><p>  第一個(gè)Activity onPause()--></p><p>  第二個(gè)ActivityonCreate()-->onStart()-->onResume()--></p><p>  第一個(gè)ActivityonStop()當(dāng)返回到第一個(gè)Activity時(shí):</p><p>  第二個(gè)Activit

46、y onPause()--> </p><p>  第一個(gè)ActivityonRestart()-->onStart()-->onResume()--></p><p>  第二個(gè)ActivityonStop()-->onDestroy()</p><p>  一個(gè)Activity的銷毀順序:</p><p> 

47、 情況一:onPause()--><Process Killed></p><p>  情況二:onPause()-->onStop()--><Process Killed></p><p>  情況三:onPause()-->onStop()-->onDestroy()每一個(gè)活動(dòng)Activity都處于某一個(gè)狀態(tài),對(duì)于開發(fā)者來說,是無法

48、控制其應(yīng)用程序處于某一個(gè)狀態(tài)的,這些均由系統(tǒng)來完成。</p><p>  但是當(dāng)一個(gè)活動(dòng)的狀態(tài)發(fā)生改變的時(shí)候,開發(fā)者可以通過調(diào)用 onXX() 的方法獲取到相關(guān)的通知信息。在實(shí)現(xiàn) Activity 類的時(shí)候,通過覆蓋override這些方法即可在你需要處理的時(shí)候來調(diào)用。</p><p>  onCreate : 當(dāng)活動(dòng)第一次啟動(dòng)的時(shí)候,觸發(fā)該方法,可以在此時(shí)完成活動(dòng)的初始化工作。 onCr

49、eate 方法有一個(gè)參數(shù),該參數(shù)可以為空null,也可以是之前調(diào)用 onSaveInstanceState ()方法保存的狀態(tài)信息。</p><p>  onStart: 該方法的觸發(fā)表示所屬活動(dòng)將被展現(xiàn)給用戶。</p><p>  onResume:當(dāng)一個(gè)活動(dòng)和用戶發(fā)生交互的時(shí)候,觸發(fā)該方法。 </p><p>  onPause: 當(dāng)一個(gè)正在前臺(tái)運(yùn)行的活動(dòng)

50、因?yàn)槠渌幕顒?dòng)需要前臺(tái)運(yùn)行而轉(zhuǎn)入后臺(tái)運(yùn)行的時(shí)候,觸發(fā)該方法。這時(shí)候需要將活動(dòng)的狀態(tài)持久化,比如正在編輯的數(shù)據(jù)庫記錄等。</p><p>  onStop: 當(dāng)一個(gè)活動(dòng)不再需要展示給用戶的時(shí)候,觸發(fā)該方法。如果內(nèi)存緊張,系統(tǒng)會(huì)直接結(jié)束這個(gè)活動(dòng),而不會(huì)觸發(fā) onStop 方法。 所以保存狀態(tài)信息是應(yīng)該在onPause時(shí)做,而不是onStop時(shí)做?;顒?dòng)如果沒有在前臺(tái)運(yùn)行,都將被停止或者Linux管理進(jìn)程為了給新的活

51、動(dòng)預(yù)留足夠的存儲(chǔ)空間而隨時(shí)結(jié)束這些活動(dòng)。在一些情況下,onPause方法或許是活動(dòng)觸發(fā)的最后的方法,因此開發(fā)者需要在這個(gè)時(shí)候保存需要保存的信息。</p><p>  onRestart: 當(dāng)處于停止?fàn)顟B(tài)的活動(dòng)需要再次展現(xiàn)給用戶的時(shí)候,觸發(fā)該方法。</p><p>  onDestroy:當(dāng)活動(dòng)銷毀的時(shí)候,觸發(fā)該方法。和 onStop 方法一樣,如果內(nèi)存緊張,系統(tǒng)會(huì)直接結(jié)束這個(gè)活動(dòng)而不會(huì)觸發(fā)

52、該方法。</p><p>  onSaveInstanceState :系統(tǒng)調(diào)用該方法,允許活動(dòng)保存之前的狀態(tài),比如說在一串字符串中的光標(biāo)所處的位置等。</p><p><b>  Activity棧</b></p><p>  每個(gè)Activity的狀態(tài)是由它在Activity棧(是一個(gè)后進(jìn)先出LIFO,包含所有正在運(yùn)行Activity的隊(duì)列

53、)中的位置決定的。</p><p>  當(dāng)一個(gè)新的Activity啟動(dòng)時(shí),當(dāng)前的活動(dòng)的Activity將會(huì)移到Activity棧的頂部。 </p><p>  如果用戶使用后退按鈕返回的話,或者前臺(tái)的Activity結(jié)束,活動(dòng)的Activity就會(huì)被移出棧消亡,而在棧上的上一個(gè)活動(dòng)的Activity將會(huì)移上來并變?yōu)榛顒?dòng)狀態(tài)。如圖2-3所示,Activity在棧中的活動(dòng)順序:</p&g

54、t;<p>  圖2-3 Activity棧</p><p>  每個(gè)Activity都有一個(gè)默認(rèn)窗體;另外Activity也會(huì)使用額外的窗體,例如:彈出式對(duì)話框,窗體中的元素是由view類的對(duì)象生成的,它們都繼承自基類View。</p><p>  2.2.2 Service 組件</p><p>  Service 是android 系統(tǒng)中的一種組

55、件,它跟Activity 的級(jí)別差不多,但是它不能自己運(yùn)行,只能后臺(tái)運(yùn)行,并且可以和其他組件進(jìn)行交互。Service 是沒有界面的長生命周期的代碼。Service 是一種程序,它可以運(yùn)行很長時(shí)間,但是它卻沒有用戶界面。</p><p>  開啟service有兩種方式:</p><p>  (1) Context.startService():Service會(huì)經(jīng)歷onCreate ->

56、; onStart(如果Service還沒有運(yùn)行,則android先調(diào)用onCreate()然后調(diào)用onStart();如果Service已經(jīng)運(yùn)行,則只調(diào)用onStart(),所以一個(gè)Service的onStart方法可能會(huì)重復(fù)調(diào)用多次 );stopService的時(shí)候直接onDestroy,如果是調(diào)用者自己直接退出而沒有調(diào)用stopService的話,Service會(huì)一直在后臺(tái)運(yùn)行。該Service的調(diào)用者再啟動(dòng)起來后可以通過stop

57、Service關(guān)閉Service。 注意,多次調(diào)用Context.startservice()不會(huì)嵌套(即使會(huì)有相應(yīng)的onStart()方法被調(diào)用),所以無論同一個(gè)服務(wù)被啟動(dòng)了多少次,一旦調(diào)用Context.stopService()或者stopSelf(),他都會(huì)被停止。補(bǔ)充說明:傳遞給startService()的Intent對(duì)象會(huì)傳遞給onStart()方法。調(diào)用順序?yàn)椋簅nCreate --> onStart(可多次調(diào)用)

58、 --> onDestroy。</p><p>  (2) Context.bindService():Service會(huì)經(jīng)歷onCreate() -> onBind(),onBind將返回給客戶端一個(gè)IBind接口實(shí)例,IBind允許客戶端回調(diào)服務(wù)的方法,比如得到Service運(yùn)行的狀態(tài)或其他操作。這個(gè)時(shí)候把調(diào)用者(Context,例如Activity)會(huì)和Service綁定在一起,Context退出

59、了,Srevice就會(huì)調(diào)用onUnbind -> onDestroyed相應(yīng)退出,所謂綁定在一起就共存亡了 。</p><p>  2.2.3 BroadcastReceiver 組件</p><p>  在Android 中,Broadcast 是一種廣泛運(yùn)用的在應(yīng)用程序之間傳輸信息的機(jī)制。而BroadcastReceiver 是對(duì)發(fā)送出來的Broadcast進(jìn)行過濾接受并響應(yīng)的一

60、類組件??梢允褂肂roadcastReceiver 來讓應(yīng)用對(duì)一個(gè)外部的事件做出響應(yīng)。例如,當(dāng)電話呼入這個(gè)外部事件到來的時(shí)候,可以利用BroadcastReceiver 進(jìn)行處理。BroadcastReceiver不能生成UI,也就是說對(duì)于用戶來說不是透明的,用戶是看不到的。BroadcastReceiver通過NotificationManager 來通知用戶這些事情發(fā)生了。BroadcastReceiver 既可以在AndroidM

61、anifest.xml 中注冊,也可以在運(yùn)行時(shí)的代碼中使用Context.registerReceiver()進(jìn)行注冊。只要是注冊了,當(dāng)事件來臨的時(shí)候,即使程序沒有啟動(dòng),系統(tǒng)也在需要的時(shí)候啟動(dòng)程序。各種應(yīng)用還可以通過使用Context.sendBroadcast () 將它們自己的intent broadcasts廣播給其他應(yīng)用程序。</p><p>  2.2.4 Content Provider 組件<

62、/p><p>  Content Provider 是Android提供的第三方應(yīng)用數(shù)據(jù)的訪問方案。</p><p>  在Android中,對(duì)數(shù)據(jù)的保護(hù)是很嚴(yán)密的,除了放在SD卡中的數(shù)據(jù),一個(gè)應(yīng)用所持有的數(shù)據(jù)庫、文件、等等內(nèi)容,都是不允許其他直接訪問的。Andorid當(dāng)然不會(huì)真的把每個(gè)應(yīng)用都做成一座孤島,它為所有應(yīng)用都準(zhǔn)備了一扇窗,這就是Content Provider。應(yīng)用想對(duì)外提供的數(shù)據(jù)

63、,可以通過派生ContentProvider類, 封裝成一枚Content Provider,每個(gè)Content Provider都用一個(gè)uri作為獨(dú)立的標(biāo)識(shí),形如:content://com.xxxxx。所有東西看著像REST的樣子,但實(shí)際上,它比REST 更為靈活。和REST類似,uri也可以有兩種類型,一種是帶id的,另一種是列表的。</p><p>  另外,Content Provider不和REST一

64、樣只有uri可用,還可以接受Projection,Selection,OrderBy等參數(shù),這樣,就可以像數(shù)據(jù)庫那樣進(jìn)行投影,選擇和排序。查詢到的結(jié)果,以Cursor的形式進(jìn)行返回,調(diào)用者可以移動(dòng)Cursor來訪問各列的數(shù)據(jù)。</p><p>  Content Provider屏蔽了內(nèi)部數(shù)據(jù)的存儲(chǔ)細(xì)節(jié),向外提供了上述統(tǒng)一的接口模型,這樣的抽象層次,大大簡化了上層應(yīng)用的書寫,也對(duì)數(shù)據(jù)的整合提供了更方便的途徑。Co

65、ntent Provider內(nèi)部,常用數(shù)據(jù)庫來實(shí)現(xiàn),Android提供了強(qiáng)大的Sqlite支持,但很多時(shí)候,你也可以封裝文件或其他混合的數(shù)據(jù)。</p><p>  2.3 Android數(shù)據(jù)庫</p><p>  2.3.1 SQLite數(shù)據(jù)庫</p><p>  SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目

66、前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月. 至今已經(jīng)有10個(gè)年頭,SQ

67、Lite也迎來了一個(gè)版本 SQLite 3已經(jīng)發(fā)布。</p><p>  SQLite數(shù)據(jù)類型:</p><p>  一般數(shù)據(jù)采用的固定的靜態(tài)數(shù)據(jù)類型,而SQLite采用的是動(dòng)態(tài)數(shù)據(jù)類型,會(huì)根據(jù)存入值自動(dòng)判斷。SQLite具有以下五種常用的數(shù)據(jù)類型:</p><p>  NULL:這個(gè)值為空值</p><p>  VARCHAR(n):長度不

68、固定且其最大長度為n的字串,n不能超過 4000</p><p>  CHAR(n):長度固定為n的字串,n不能超過 254。</p><p>  INTEGER:值被標(biāo)識(shí)為整數(shù),依據(jù)值的大小可以依次被存儲(chǔ)為1,2,3,4,5,6,7,8.</p><p>  REAL:所有值都是浮動(dòng)的數(shù)值,被存儲(chǔ)為8字節(jié)的IEEE浮動(dòng)標(biāo)記序號(hào).</p><p&

69、gt;  TEXT:值為文本字符串,使用數(shù)據(jù)庫編碼存儲(chǔ)(TUTF-8, UTF-16BE or UTF-16-LE).</p><p>  BLOB:值是BLOB數(shù)據(jù)塊,以輸入的數(shù)據(jù)格式進(jìn)行存儲(chǔ)。如何輸入就如何存儲(chǔ),不改變格</p><p>  DATA:包含了 年份、月份、日期。TIME: 包含了 小時(shí)、分鐘、秒。</p><p>  2.3.2 SQLite數(shù)據(jù)

70、庫特點(diǎn)</p><p><b>  輕量級(jí)</b></p><p>  SQLite和C/S模式的數(shù)據(jù)庫軟件不同,它是進(jìn)程內(nèi)的數(shù)據(jù)庫引擎,因此不存在數(shù)據(jù)庫的客戶端和服務(wù)器。使用SQLite一般只需要帶上它的一個(gè)動(dòng)態(tài)庫,就可以分享它的全部功能。而且動(dòng)態(tài)庫的尺寸也相當(dāng)小。</p><p><b>  獨(dú)立性。</b></

71、p><p>  SQLite數(shù)據(jù)庫的核心引擎不依賴第三方軟件,使用它也不需要“安裝”。所以在部署的使用能省去不少麻煩。</p><p><b>  隔離性</b></p><p>  SQLite數(shù)據(jù)庫中所有的信息(比如表、視圖、觸發(fā)器等)都包含在一個(gè)文件內(nèi),方便管理和維護(hù)。</p><p><b>  跨平臺(tái)性&

72、lt;/b></p><p>  SQLite數(shù)據(jù)庫支持大部分操作系統(tǒng),除了我們在電腦上使用的操作系統(tǒng)之外。很多手機(jī)操作系統(tǒng)都可以運(yùn)行,比如Android、Windows Phone、Symbin、Plam、IOS等。</p><p><b>  多語言接口</b></p><p>  SQLite數(shù)據(jù)庫支持很多編程語言接口,比如C/C+

73、+、Java等,得到很多開發(fā)者的喜愛。</p><p><b>  安全性</b></p><p>  SQLite數(shù)據(jù)庫通過數(shù)據(jù)庫級(jí)上的獨(dú)占性和共享鎖實(shí)現(xiàn)獨(dú)立事務(wù)處理。這就意味著多個(gè)進(jìn)程可以在同一時(shí)間從同一數(shù)據(jù)庫讀取數(shù)據(jù),但只有一個(gè)可以寫入數(shù)據(jù)。在某個(gè)進(jìn)程或線程向數(shù)據(jù)庫執(zhí)行寫入操作之前,必須取得獨(dú)占鎖。在發(fā)出獨(dú)占鎖后,其他的讀或?qū)懖僮鲗⒉粫?huì)在發(fā)生。</p>

74、;<p><b>  3.可行性研究</b></p><p><b>  3.1 技術(shù)可行性</b></p><p>  本系統(tǒng)設(shè)計(jì)到的技術(shù)因素主要有如下幾個(gè)方面:</p><p><b>  UI頁面的設(shè)計(jì)</b></p><p>  Android控件的各種函

75、數(shù)的應(yīng)用,實(shí)現(xiàn)其功能</p><p>  Activity的之間的跳轉(zhuǎn),頁面之間值得傳遞方式,如何利用Intent</p><p>  數(shù)據(jù)庫的創(chuàng)建和操作,如何把聯(lián)系人的信息存儲(chǔ)到數(shù)據(jù)庫中,并把它顯示出來</p><p>  配置環(huán)境,裝有Windows 電腦一臺(tái),安裝Eclipse,安裝Android SDK,安裝JDK,并配置了環(huán)境變量,安裝 ADT插件。<

76、;/p><p>  開發(fā)技術(shù):本次設(shè)計(jì)用的是Java開發(fā)語言和Android相關(guān)開發(fā)知識(shí),由于Android是開源項(xiàng)目,基于Java,語法上并不難,網(wǎng)絡(luò)上學(xué)習(xí)資源較多,因此技術(shù)上可行,調(diào)試相對(duì)簡單。</p><p>  硬件支持:當(dāng)前的計(jì)算機(jī)硬件配置也完全能滿足開發(fā)的需求,能夠良好的運(yùn)行哥開發(fā)軟件和Android虛擬機(jī)。</p><p>  軟件方面:相關(guān)的開發(fā)軟件,可

77、以方便的從網(wǎng)上下載,易于獲得,且可以滿足系統(tǒng)需求。</p><p>  綜上所述:技術(shù)上可行!</p><p><b>  3.2 經(jīng)濟(jì)可行性</b></p><p>  由于軟件資源可以從網(wǎng)絡(luò)上免費(fèi)獲得,因此,軟件尚不需要花費(fèi),另外,由于Android有自己的運(yùn)行虛擬機(jī),因此開發(fā)的應(yīng)用不用在Android實(shí)體機(jī)上運(yùn)行,省去了一部分硬件成本,因

78、此經(jīng)濟(jì)上可行。</p><p><b>  3.3 操作可行性</b></p><p>  開發(fā)的應(yīng)用完全可以運(yùn)行在Android虛擬機(jī)上,當(dāng)然也可以運(yùn)行在實(shí)體機(jī)上,而且整個(gè)應(yīng)用操作上相對(duì)簡單,操作上可行。</p><p><b>  4.需求分析</b></p><p><b>  4.

79、1 前期調(diào)研</b></p><p>  通過對(duì)已有的手機(jī)通訊錄的研究,對(duì)其基本業(yè)務(wù)流程進(jìn)行分析,確定出基本的處理需求:</p><p>  用戶的行為:增、刪、改、查、備份與還原。</p><p>  增:增加聯(lián)系人的基本信息;</p><p>  刪:刪除已有聯(lián)系人的基本信息;</p><p>  改:

80、修改已有聯(lián)系人的信息;</p><p>  查:查詢聯(lián)系人的基本信息;</p><p>  備份與還原:備份該通訊錄數(shù)據(jù)庫中的數(shù)據(jù)到SD卡上,或者從SD卡上還原備份的數(shù)據(jù)。</p><p><b>  4.2 數(shù)據(jù)流圖</b></p><p>  根據(jù)“功能分解,逐步求精”的原則,此次需求分析的數(shù)據(jù)流圖主要分為三層:頂層

81、數(shù)據(jù)流圖:確定系統(tǒng)的輸入與輸出、第一層數(shù)據(jù)流圖:對(duì)系統(tǒng)進(jìn)行第一層功能分解,確定系統(tǒng)的主要工作、第二層數(shù)據(jù)流圖:確定系統(tǒng)詳細(xì)的工作流圖</p><p><b>  頂層數(shù)據(jù)流圖:</b></p><p><b>  底層數(shù)據(jù)流圖:</b></p><p><b>  4.3 數(shù)據(jù)字典</b></p

82、><p>  數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理的關(guān)系,數(shù)據(jù)字典則是系統(tǒng)中的各類數(shù)據(jù)描述的集合,是進(jìn)行詳細(xì)的數(shù)據(jù)手機(jī)和數(shù)據(jù)分析做得到的主要成果,可以自己設(shè)計(jì)一套適合閱讀的圖表。</p><p>  本設(shè)計(jì)的數(shù)據(jù)字典有:聯(lián)系人的信息,具體如下:</p><p><b>  5.系統(tǒng)設(shè)計(jì)</b></p><p><b>  5.

83、1 總體設(shè)計(jì)</b></p><p>  Android手機(jī)通訊管理軟件主要功能模塊包括:聯(lián)系人添加、聯(lián)系人查看、聯(lián)系人編輯、聯(lián)系人刪除、聯(lián)系人查找、呼叫、發(fā)送短信、數(shù)據(jù)備份與還原、個(gè)人空間等,如圖5-1所示:</p><p>  圖5-1 總體設(shè)計(jì)圖</p><p>  5.2 數(shù)據(jù)庫表結(jié)構(gòu)</p><p><b> 

84、 5.2.1 實(shí)體</b></p><p>  根據(jù)需求分析的數(shù)據(jù)流圖,對(duì)其進(jìn)行自底向上的分析。抽象出設(shè)計(jì)視圖,集成局部視圖,得到全局的概念結(jié)構(gòu)。</p><p><b>  本數(shù)據(jù)庫的實(shí)體為:</b></p><p>  聯(lián)系人信息(頭像 ,姓名,手機(jī)號(hào)碼,辦公室號(hào)碼,家庭電話,職務(wù)職稱,單位名稱,地址,郵編,Email,其他聯(lián)系

85、方式,備注)</p><p>  5.2.2 系統(tǒng)E-R圖</p><p>  根據(jù)E-R的設(shè)計(jì)過程,根據(jù)初始數(shù)據(jù)流圖設(shè)計(jì)初始的E-R圖,而后將各分E-R圖集成,消除沖突、消除冗余,得到最初的E-R圖,對(duì)其進(jìn)行分析和根據(jù)規(guī)范化理論進(jìn)行規(guī)范化,集成視圖,最后形成基本的E-R圖。其過程如圖所示: </p><p><b>  聯(lián)系人實(shí)體E-R圖</b&g

86、t;</p><p>  圖5-2 聯(lián)系人信息實(shí)體E-R圖</p><p>  5.2.3 數(shù)據(jù)庫表設(shè)計(jì)</p><p>  根據(jù)上述聯(lián)系人實(shí)體E-R圖,設(shè)計(jì)出數(shù)據(jù)庫的表,如表5-1所示,</p><p>  表5-1 user表的設(shè)計(jì)</p><p>  5.3 輸入/輸出設(shè)計(jì)</p><p>

87、;  在這個(gè)系統(tǒng)中,通過對(duì)系統(tǒng)的分析,可以識(shí)別出參與者:用戶。對(duì)于用戶而言,通訊錄上按鈕、菜單、輸入框是用戶向系統(tǒng)輸入的操作請(qǐng)求的輸入設(shè)備,GUI與是用于向用戶輸出信息的輸出設(shè)備。</p><p>  圖5-3通訊錄的參與者</p><p>  事件是來自人操作的重要的消息,表5-2給出了通訊錄系統(tǒng)中可能發(fā)生的所有事件。</p><p>  表5-2系統(tǒng)響應(yīng)及其

88、執(zhí)行結(jié)果</p><p>  其中的輸入包括:用戶選擇的上述按鈕、菜單,還包括輸入框的內(nèi)容,包括:聯(lián)系人頭像、聯(lián)系人姓名、手機(jī)號(hào)、家庭電話、單位電話、單位名、職位、住址、郵編、備注等信息。</p><p>  其中輸出包括:根據(jù)用戶的選擇輸出的相應(yīng)內(nèi)容,如:聯(lián)系人列表顯示信息、聯(lián)系人詳細(xì)信息等。</p><p>  5.4 處理過程設(shè)計(jì)</p><

89、;p>  5.4.1 業(yè)務(wù)流程圖</p><p>  用戶進(jìn)入手機(jī)通訊管理軟件后,會(huì)看到聯(lián)系人列表界面。聯(lián)系人列表界面主菜單中包括:添加、搜索、刪除、菜單、退出;其中菜單又包括:顯示所有聯(lián)系人、刪除所有聯(lián)系人、備份信息到SD卡、還原數(shù)據(jù)到通訊錄、個(gè)人空間、退出。點(diǎn)擊添加聯(lián)系人,則進(jìn)入聯(lián)系人添加界面,添加成功后返回聯(lián)系人列表界面。點(diǎn)擊搜索菜單,則進(jìn)入聯(lián)系人搜索界面,輸入聯(lián)系人的全名或一個(gè)字,即可查找到相關(guān)聯(lián)系

90、人,點(diǎn)擊聯(lián)系人會(huì)進(jìn)入聯(lián)系人查看界面,可以對(duì)聯(lián)系人進(jìn)行編輯、刪除、撥打電話、發(fā)送短信,,長按某分聯(lián)系人,可以選中該聯(lián)系人,點(diǎn)擊刪除,會(huì)刪除已經(jīng)標(biāo)記的聯(lián)系人。點(diǎn)擊菜單,可進(jìn)入菜單界面:點(diǎn)擊所有聯(lián)系人,可以顯示所有人信息、點(diǎn)擊刪除所有聯(lián)系人,可以刪除所有人信息、點(diǎn)擊備份信息到SD卡,可以將數(shù)據(jù)庫數(shù)據(jù)備份到SD卡、點(diǎn)擊還原數(shù)據(jù)到通訊錄,可以從SD卡上備份的數(shù)據(jù)還原到數(shù)據(jù)庫、點(diǎn)擊個(gè)人空間,輸入密碼并進(jìn)入個(gè)人操作界面、點(diǎn)擊退出,退出到主界面。該軟件

91、的業(yè)務(wù)流程如圖5-4所示:</p><p>  圖5-4 系統(tǒng)業(yè)務(wù)流程圖</p><p>  5.4.2 系統(tǒng)Activity設(shè)計(jì)</p><p>  根據(jù)Android的Activity設(shè)計(jì)原則,設(shè)計(jì)出整個(gè)系統(tǒng)的界面,如圖5-5所示:</p><p>  圖5-5 系統(tǒng)Activity設(shè)計(jì)圖</p><p>  5.

92、4.3 功能處理設(shè)計(jì)</p><p><b>  瀏覽聯(lián)系人</b></p><p>  用例名稱:瀏覽聯(lián)系人</p><p>  用例描述:瀏覽聯(lián)系人列表</p><p><b>  角色:手機(jī)用戶</b></p><p>  前置條件:通訊錄中已有聯(lián)系人</p>

93、;<p>  后置條件:顯示出所有聯(lián)系人</p><p><b>  基本路徑</b></p><p><b>  打開通訊錄</b></p><p><b>  系統(tǒng)查詢數(shù)據(jù)庫</b></p><p><b>  顯示出聯(lián)系人列表</b>&

94、lt;/p><p><b>  查看聯(lián)系人</b></p><p>  用例名稱:查看聯(lián)系人</p><p>  用例描述:查看聯(lián)系人信息</p><p><b>  角色:手機(jī)用戶</b></p><p>  前置條件:通訊錄中已有聯(lián)系人</p><p>

95、;  后置條件:給出聯(lián)系人信息</p><p><b>  基本路徑</b></p><p><b>  A.查看聯(lián)系人信息</b></p><p><b>  B.給出相關(guān)信息</b></p><p><b>  編輯聯(lián)系人</b></p>

96、<p>  用例名稱:編輯聯(lián)系人</p><p>  用例描述:編輯聯(lián)系人信息</p><p><b>  角色:手機(jī)用戶</b></p><p>  前置條件:通訊錄中已有聯(lián)系人</p><p>  后置條件:修改聯(lián)系人信息</p><p><b>  基本路徑</b

97、></p><p>  A.輸入要修改的新信息</p><p><b>  B.修改聯(lián)系人信息</b></p><p><b>  刪除聯(lián)系人</b></p><p>  用例名稱:刪除聯(lián)系人</p><p>  用例描述:刪除聯(lián)系人</p><p&

98、gt;<b>  角色:手機(jī)用戶</b></p><p>  前置條件:通訊錄中已有聯(lián)系人</p><p>  后置條件:刪除聯(lián)系人</p><p><b>  基本路徑</b></p><p>  A.選中聯(lián)系人,選擇刪除操做</p><p>  B.詢問是否確定刪除操作&

99、lt;/p><p><b>  C.刪除聯(lián)系人</b></p><p>  上述三種業(yè)務(wù)操作的流程圖</p><p>  圖5-6 查看/修改/刪除流程圖</p><p><b>  查詢聯(lián)系人</b></p><p>  用例名稱:查詢聯(lián)系人</p><p&

100、gt;  用例描述:查詢聯(lián)系人信息</p><p><b>  角色:手機(jī)用戶</b></p><p>  前置條件:通訊錄中已有聯(lián)系人</p><p>  后置條件:給出聯(lián)系人信息</p><p><b>  基本路徑</b></p><p><b>  A.輸入

101、查找的數(shù)據(jù)</b></p><p>  B.查詢列表根據(jù)數(shù)據(jù)動(dòng)態(tài)現(xiàn)實(shí)出信息</p><p>  點(diǎn)擊Menu菜單,選擇查找聯(lián)系人跳轉(zhuǎn)SearchContactActivity,在查找聯(lián)系人界面中,TextView被監(jiān)聽,根據(jù)TextView輸入的數(shù)據(jù),進(jìn)行查詢后在List中顯示。</p><p>  圖5-7 查詢聯(lián)系人流程圖</p>&l

102、t;p><b>  菜單操作</b></p><p><b>  用例名稱:菜單操作</b></p><p>  用例描述:選擇菜單功能</p><p><b>  角色:手機(jī)用戶</b></p><p>  前置條件:單擊菜單按鈕</p><p>

103、;  后置條件:進(jìn)入菜單界面</p><p><b>  基本路徑</b></p><p><b>  A.單擊菜單按鈕</b></p><p><b>  B.選擇菜單的功能</b></p><p>  圖5-8 菜單操作流程圖</p><p>  5

104、.4.4 系統(tǒng)界面設(shè)計(jì)</p><p>  本系統(tǒng)一共有11個(gè)頁面文件,主要的界面如下:</p><p>  Main.xml文件,如圖5-9所示,顯示已經(jīng)存儲(chǔ)的聯(lián)系人數(shù)據(jù)數(shù)據(jù):</p><p>  圖5-9 系統(tǒng)主界面</p><p>  AddNew.xml文件,如圖5-10所示,顯示添加聯(lián)系人的選項(xiàng),完成聯(lián)系人的添加:</p>

105、;<p>  圖5-10 添加聯(lián)系人界面</p><p>  Main-menu_grid.xml 顯示彈出的主菜單的對(duì)話</p><p>  圖5-11 主菜單界面</p><p>  Userdetail.xml文件如圖5-12所示,顯示聯(lián)系人的信息具體選項(xiàng),可以完成數(shù)據(jù)的編輯和刪除:</p><p>  圖5-12 查看

106、修改界面</p><p>  Imgaeswitch.xml 顯示用戶頭像的切換:</p><p>  圖5-13 選擇頭像界面</p><p>  Numchoose.xml 打電話時(shí)彈出的對(duì)話框顯示</p><p>  圖5-14 打電話發(fā)短信界面</p><p>  Item_menu.xml 顯示主頁的菜單&

107、lt;/p><p>  圖5-15 子菜單界面</p><p>  Login.xml 為特權(quán)用戶登錄</p><p>  圖5-16 個(gè)人空間登陸界面</p><p><b>  進(jìn)入后的界面:</b></p><p>  圖5-17 個(gè)人空間界面</p><p><

108、b>  6.詳細(xì)設(shè)計(jì)</b></p><p>  完成上述的操作后,便是進(jìn)行代碼的編寫和調(diào)試,使用Java語言和Android API進(jìn)行程序設(shè)計(jì)。</p><p><b>  6.1 開發(fā)環(huán)境</b></p><p>  開發(fā)軟件:Eclipse 、JDK1.7、Android SDK 、ADT </p>&l

109、t;p>  開發(fā)環(huán)境:Windows7</p><p>  虛擬設(shè)備:Android AVD </p><p>  開發(fā)版本:Android 2.1</p><p><b>  6.2 程序設(shè)計(jì)</b></p><p>  6.2.1 數(shù)據(jù)類設(shè)計(jì)</p><p><b>  用戶U

110、ser類</b></p><p>  如圖6-1所示,主要用于暫存頁面獲得的信息,然后再存入數(shù)據(jù)庫中。</p><p>  圖6-1 User類</p><p><b>  DBhelper類</b></p><p>  如圖6-2所示,主要完成數(shù)據(jù)庫的表的創(chuàng)建和數(shù)據(jù)的添加刪除以及備份的功能,以下是各個(gè)具體的

111、函數(shù)和變量。</p><p>  圖6-2 DBhelper類</p><p>  insert(User)函數(shù)實(shí)現(xiàn):</p><p>  完成數(shù)據(jù)的插入,并根據(jù)插入是否成功,返回一個(gè)長整型的值</p><p>  getAllUser(boolean)的實(shí)現(xiàn):</p><p>  完成數(shù)據(jù)的顯示,使用SQLiteDa

112、tabase.query() 方法,利用cursor對(duì)象,一一取出字段的值,放入一個(gè)hasp表中,最后存入數(shù)組列表中,返回給數(shù)組列表。</p><p>  modify(User )函數(shù)的實(shí)現(xiàn):</p><p>  使用user類中的字段,更新數(shù)據(jù)庫</p><p>  delete(int)函數(shù)的實(shí)現(xiàn):</p><p>  根據(jù)數(shù)據(jù)的id進(jìn)

113、行單個(gè)數(shù)據(jù)的刪除</p><p>  deleteAll(int )函數(shù)的實(shí)現(xiàn):</p><p><b>  刪除所有數(shù)據(jù)</b></p><p>  getTotalCount() 函數(shù)的實(shí)現(xiàn):</p><p>  使用cursor對(duì)象getint()方法得到數(shù)據(jù)的個(gè)數(shù)</p><p>  ge

114、tUsers(String boolean) 函數(shù)的實(shí)現(xiàn):</p><p>  完成數(shù)據(jù)的查找,使用SQL語句中的模糊查找,然后放入數(shù)組列表,進(jìn)行返回。</p><p>  deleteMarked(ArrayList<Integer>)函數(shù)的實(shí)現(xiàn):</p><p>  刪除被標(biāo)記多個(gè)數(shù)據(jù)的數(shù)據(jù),</p><p>  backu

115、pData(boolean)函數(shù)的實(shí)現(xiàn):</p><p>  新建一個(gè)字符串,把當(dāng)前所有數(shù)據(jù)的值寫成一個(gè)insert 語句存入字符串中,以便備份的時(shí)候能夠插入到數(shù)據(jù)庫中</p><p>  saveDataToFile(string,boolean)函數(shù)的實(shí)現(xiàn):</p><p>  把插入字符串寫到zpcontacData下的文件中</p><p

116、>  public void backupData(boolean privacy) {</p><p>  StringBuffer sqlBackup = new StringBuffer();</p><p>  Cursor cursor = null;</p><p>  if(privacy) {</p><p>  cur

117、sor = dbInstance.query(DB_TABLENAME, </p><p>  new String[]{"_id","name","mobilephone","officephone","familyphone","address","othercontact&quo

118、t;,"email","position","company","zipcode","remark","imageid,privacy"}, </p><p>  "privacy=1", null, null, null, null);</p><p&g

119、t;<b>  } else {</b></p><p>  cursor = dbInstance.query(DB_TABLENAME, </p><p>  new String[]{"_id","name","mobilephone","officephone","fam

120、ilyphone","address","othercontact","email","position","company","zipcode","remark","imageid,privacy"}, </p><p>  "pri

121、vacy=0",null, null, null, null);</p><p><b>  }</b></p><p>  while(cursor.moveToNext()) {</p><p>  sqlBackup.append("insert into " + DB_TABLENAME + "(

122、name,mobilephone,officephone,familyphone,address,othercontact,email,position,company,zipcode,remark,imageid,privacy)")</p><p>  .append(" values ('")</p><p>  .append(cursor.g

123、etString(cursor.getColumnIndex("name"))).append("','")</p><p>  .append(cursor.getString(cursor.getColumnIndex("mobilephone"))).append("','")</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論