![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/13/14/57e64b5a-a361-473d-a788-17d69df6e8f8/57e64b5a-a361-473d-a788-17d69df6e8f8pic.jpg)
![基于android的手機(jī)通訊_錄系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/13/14/57e64b5a-a361-473d-a788-17d69df6e8f8/57e64b5a-a361-473d-a788-17d69df6e8f81.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- android課程設(shè)計(jì)--基于android的手機(jī)安全衛(wèi)士
- 手機(jī)通信錄管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--手機(jī)通信錄管理系統(tǒng)
- 手機(jī)通信錄管理系統(tǒng)課程設(shè)計(jì)2
- 通訊系統(tǒng)原理課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--通訊錄管理
- android課程設(shè)計(jì)---基于android系統(tǒng)的音樂播放器設(shè)計(jì)與實(shí)現(xiàn)
- android_課程設(shè)計(jì)報(bào)告--基于android系統(tǒng)的小查詢工具
- android課程設(shè)計(jì)
- android課程設(shè)計(jì)---基于android平臺(tái)的自動(dòng)鬧鐘
- 通訊管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- android課程設(shè)計(jì)
- 基于安卓android手機(jī)平臺(tái)的記事本設(shè)計(jì)課程設(shè)計(jì)畢業(yè)論文
- android課程設(shè)計(jì)報(bào)告--android智能手機(jī)軟件開發(fā)
- 綜合課程設(shè)計(jì)---基于socket的即時(shí)通訊系統(tǒng)
- 課程設(shè)計(jì)--通信錄管理系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)—手機(jī)銷售管理系統(tǒng)
- 課程設(shè)計(jì)---linux 手機(jī)繳費(fèi)系統(tǒng)
- 手機(jī)銷售系統(tǒng)課程設(shè)計(jì)論文
- 手機(jī)繳費(fèi)系統(tǒng)linux課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論