畢業(yè)設(shè)計(論文)-基于Android系統(tǒng)的同學(xué)錄的實(shí)現(xiàn).doc_第1頁
畢業(yè)設(shè)計(論文)-基于Android系統(tǒng)的同學(xué)錄的實(shí)現(xiàn).doc_第2頁
畢業(yè)設(shè)計(論文)-基于Android系統(tǒng)的同學(xué)錄的實(shí)現(xiàn).doc_第3頁
畢業(yè)設(shè)計(論文)-基于Android系統(tǒng)的同學(xué)錄的實(shí)現(xiàn).doc_第4頁
畢業(yè)設(shè)計(論文)-基于Android系統(tǒng)的同學(xué)錄的實(shí)現(xiàn).doc_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

河河北北農(nóng)農(nóng)業(yè)業(yè)大大學(xué)學(xué) 本本科科畢畢業(yè)業(yè)論論文文 ( (設(shè)設(shè)計計) ) 題題 目:目: 基于 Android 系統(tǒng)的同學(xué)錄的實(shí)現(xiàn) 學(xué)學(xué) 院:院: 現(xiàn)代科技學(xué)院 專業(yè)班級:專業(yè)班級: 計算機(jī)科學(xué)與技術(shù) 學(xué)學(xué) 號:號: 2013 年年 6 月月 1 日日 摘要摘要 隨著第三代通信技術(shù) 3G 的推廣,無線帶寬和傳輸速度都得到了大幅度提升, 為智能手機(jī)終端添加更多內(nèi)容豐富的應(yīng)用功能提供了良好的平臺。本系統(tǒng)是基 于谷歌公司新推出的一款 Linux 平臺的開源手機(jī)操作系統(tǒng)Android 系統(tǒng), 利用 Java 語言,Eclipse 為開發(fā)工具,通過對平臺的系統(tǒng)架構(gòu)和應(yīng)用程序進(jìn)行 學(xué)習(xí),設(shè)計出一款手機(jī)通訊錄。本系統(tǒng)包括存儲,刪除,Android 修改,打電 話,發(fā)信息,發(fā)郵件,備份 SD 卡等功能,滿足了用戶對通訊錄的需求。此通訊 錄的設(shè)計遵循標(biāo)準(zhǔn)的開發(fā)流程,首先進(jìn)行需求分析,然后確定通訊錄的功能, 再編寫程序的代碼,調(diào)試程序,運(yùn)行程序,并對程序進(jìn)行優(yōu)化完善。 關(guān)鍵詞:Android;手機(jī)通訊錄;智能手機(jī);JAVA AbstractAbstract With the 3G promotion of third-generation communications technology, wireless bandwidth and transmission speed have been improved significantly, and provides a good platform for smart mobile terminals to add more content-rich applications. The design is based on the Google Corporation a new version of the Linux platform to the source mobile phone operating system - Android system, using Java language, Eclipse as a development tool, through the Android platform system architecture and application for research, design a mobile phone contacts. The design including functions of storage, deletion, modification, phone calls, messages sending, E-mail sending, backup SD cards and other functions, to meet user demand for mail list. The design of the contacts follows the standard development process, the first needs analysis, and then determine the function of the contacts, then write the code, the debugger, run the program, and procedures to optimize the sound. KeyKey words:words: Android; Mobile Phone Contacts; Smartphone;Java 目錄目錄 1 緒論 .1 1.1 研究背景.1 1.2 研究現(xiàn)狀.1 1.3 主要工作.3 2 ANDROID 技術(shù)與理論.4 2.1 ANDROID系統(tǒng)開發(fā)簡介.4 2.1.1 Android 技術(shù)簡介.4 2.1.2 關(guān)鍵應(yīng)用程序.6 2.1.3 應(yīng)用程序框架.6 2.1.4 函數(shù)庫.6 2.1.5 Linux 內(nèi)核 .6 2.2 ANDROID應(yīng)用的構(gòu)成和工作機(jī)制.7 2.2.1 Activity.7 2.2.2 Intent Receiver .7 2.2.3 Service.8 2.2.4 Content Provider.8 3 需求分析 .9 3.1 功能需求分析.9 3.2 性能需求分析.10 3.3 數(shù)據(jù)庫需求分析.10 3.4 安全需求.11 4 功能設(shè)計 .11 4.1 總體設(shè)計.11 4.2 系統(tǒng)功能設(shè)計.13 4.3 系統(tǒng)數(shù)據(jù)庫設(shè)計.14 5 通訊錄實(shí)現(xiàn) .16 5.1 ANDROID開發(fā)平臺搭建.16 5.2 具體功能實(shí)現(xiàn).16 5.2.1 界面布局.16 5.2.2 增加聯(lián)系人功能.17 5.2.3 查找聯(lián)系人功能.18 5.2.4 數(shù)據(jù)庫操作實(shí)現(xiàn).19 5.3 系統(tǒng)功能截圖.21 參考文獻(xiàn) .25 致謝 .26 1 1 緒論 1.1 研究背景 智能手機(jī)(Smartphone),是指“像個人電腦一樣,具有獨(dú)立的操作系統(tǒng),可以由用 戶自行安裝軟件、游戲等第三方服務(wù)商提供的程序,通過此類程序來不斷對手機(jī)的功能 進(jìn)行擴(kuò)充,并可以通過移動通訊網(wǎng)絡(luò)來實(shí)現(xiàn)無線網(wǎng)絡(luò)接入的這樣一類手機(jī)的總稱” 。目前, 全球多數(shù)手機(jī)廠商都有智能手機(jī)產(chǎn)品,而芬蘭諾基亞、美國蘋果、加拿大 RIM(黑莓) 、 美國摩托羅拉、中國臺灣宏達(dá)(htc)都是智能機(jī)中的佼佼者1。 智能手機(jī)具有五大特點(diǎn):1具備了無線接入互聯(lián)網(wǎng)的能力,即要有 GSM 的支持網(wǎng)絡(luò) 下的 GPRS 或者是 CDMA 網(wǎng)絡(luò)支持下的 CDMA 1X 或 3G 網(wǎng)絡(luò)。2人性化,可以根據(jù)個人需 要擴(kuò)展機(jī)器的功能。3它是具有開放性的操作系統(tǒng),還可以安裝非常多的應(yīng)用程序,使 得智能手機(jī)的功能可以得到無限的擴(kuò)展。4具有 PDA 功能,其中包括個人信息管理、日 程記事、任務(wù)安排、多媒體應(yīng)用、瀏覽網(wǎng)頁等。5擴(kuò)展性能強(qiáng),第三方軟件支持多2。 Android 是一種以 Linux 為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于便攜設(shè)備。目前尚 未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致” 。Android 操作系統(tǒng)最 初由 Andy Rubin 開發(fā),最初主要支持手機(jī)。2005 年由 Google 收購注資,并組建開放手 機(jī)聯(lián)盟開發(fā)改良,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。Android 的主要競爭對手是蘋果公 司的 iOS 以及 RIM 的 Blackberry OS。2011 年第一季度,Android 在全球的市場份額首次 超過塞班系統(tǒng),躍居全球第一。 2012 年 2 月數(shù)據(jù),Android 占據(jù)全球智能手機(jī)操作系統(tǒng) 市場 52.5%的份額,中國市場占有率為 68.4%3。 在這個信息化的時代,手機(jī)已成為繼固話之后最為通俗的交流工具4。在這個人與 人關(guān)系愈加密切的時代, “通訊”成了生活中的必需品。這就有這么一個系統(tǒng)記錄下人與 人之間的多樣聯(lián)系方式手機(jī)通訊系統(tǒng)。目前國內(nèi)的通訊錄應(yīng)用服務(wù)商分為三類,第 一類如幸會、名片全能王、QR 掃描等等,這些產(chǎn)品主要是為了解決名片交換時候輸入難 度較高的問題。而這也就致使了這部分廠家缺少了一個服務(wù)商最看重的東西:對用戶沒 有持續(xù)的運(yùn)營能力;第二類如火種、QQ 通訊錄、友錄、手機(jī)自帶的通訊錄同步服務(wù)等等, 這部分的市場主要提供了號碼備份服務(wù),幫助用戶解決手機(jī)號碼記錄聯(lián)系人的問題。第 三類就是針對與通訊錄之上提供的拓展應(yīng)用服務(wù)提供商,比如:米聊和微信,你可以通過 上面去發(fā)短信,實(shí)現(xiàn)多種通信能力的聚合5。 1.2 研究現(xiàn)狀 當(dāng)今社會的生活節(jié)奏越來越快,人們對手機(jī)的要求也越來越高,由于手機(jī)市場發(fā)展 迅速,使得手機(jī)操作系統(tǒng)也出現(xiàn)了不同種類。Android 是一個基于 Linux 核心(kernel) 的開放手機(jī)平臺作業(yè)系統(tǒng),與 Windows Mobile、Symbian 等手機(jī)作業(yè)系統(tǒng)處在同一級別, 其中占有開放源代碼優(yōu)勢的 Android 系統(tǒng)有最大的發(fā)展前景。較之 Symbian 用戶體驗(yàn)較 差,系統(tǒng)較為封閉,支持的應(yīng)用較少和 Windows Mobile 系統(tǒng)對終端廠商來講引入成本較 2 為昂貴,娛樂性平平。Android 系統(tǒng)則擁有低廉的引入成本,在應(yīng)用方面的資源豐富,以 及良好的用戶體驗(yàn)開放性較強(qiáng)的特點(diǎn),適應(yīng)了移動互聯(lián)網(wǎng)的發(fā)展趨勢,切合了移動互聯(lián) 網(wǎng)產(chǎn)業(yè)鏈各方的發(fā)展變化需求,所以取得了迅猛的發(fā)展6。 Android 系統(tǒng)除了低廉的成本和良好的用戶體驗(yàn)外,因采用了開源的平臺,給予了 終端廠商和開發(fā)者更大的靈活性,開發(fā)者在程序的開發(fā)移植上更為方便且不需要考慮廠 商端內(nèi)容審核等問題,終端廠商則可以按需深度定制系統(tǒng)開發(fā)本地化應(yīng)用環(huán)境,在終端 廠商、電信運(yùn)營商和第三方應(yīng)用開發(fā)商的推動下,用戶可選擇的應(yīng)用資源將會進(jìn)一步豐 富。各大 Android 應(yīng)用商店呈現(xiàn)百花齊放的態(tài)勢。帶給了應(yīng)用開發(fā)者更多的機(jī)遇和極具 誘惑力的利潤分成,在各應(yīng)用商店間的移植改造成本也相對較低。隨著應(yīng)用商店的不斷 發(fā)展和開發(fā)者的涌入,Android 平臺的應(yīng)用資源優(yōu)勢正在逐步的擴(kuò)大7。 而從用戶的角度考慮,Android 良好發(fā)展前景主要源于優(yōu)秀的用戶體驗(yàn)和高性價比這 兩個方面。 從人才需求類型來看,目前對 Android 人才需求一類是偏向硬件驅(qū)動的 Android 人 才需求,一類是偏向軟件應(yīng)用的 Android 人才需求。從目前的招聘需求來看,后者的需 求最大,包括手機(jī)游戲、手機(jī)終端應(yīng)用軟件和其他手機(jī)應(yīng)用軟件的開發(fā)8。 職業(yè)專家分析說,由于目前 Android 技術(shù)較新,具有開拓空間,無論是相關(guān)書籍、 培訓(xùn)還是大學(xué)教育,都處于初級階段,因此 Android 人才短期將供不應(yīng)求。從長期來看, 隨著各種移動應(yīng)用和手機(jī)游戲等內(nèi)容需求日益增加,也將激勵大中小型手機(jī)應(yīng)用開發(fā)商 加大對 Android 應(yīng)用的開發(fā)力度,因此 Android 人才前景也被看好。 生活在信息高速發(fā)展的今天,智能手機(jī)的普及己經(jīng)是不可改變的趨勢。而作為手機(jī) 各個功能中最為基本的通訊錄也成為人們生活中必不可少的一部分了9。在這個人與人 關(guān)系愈加密切的時代, “通訊”成了生活中的必需品。通過手機(jī)通訊錄記錄下對方的聯(lián)系 方式,既減輕了大腦的負(fù)擔(dān),又不在受各種條件的約束,做到便捷隨身管理相關(guān)的聯(lián)系 信息,擺脫了傳統(tǒng)電話簿,名片的累贅。另外,不同于微博,社交網(wǎng)站,手機(jī)通訊錄是 完全屬于用戶的,而不隸屬于某個特定公司或是服務(wù),只要獲得用戶的認(rèn)可,即使不是 大公司也可以借此迅速建立起一個巨大的關(guān)系網(wǎng)絡(luò)10。Frost 中間層包括函數(shù)庫 Library 和虛擬機(jī) Virtual Machine,由 C+開發(fā)。最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件 則由各公司自行開發(fā),以 Java 作為編寫程序的一部分,不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng) 新的專有權(quán)障礙。Google 通過與軟、硬件開發(fā)商、設(shè)備制造商、電信運(yùn)營商等其他有關(guān) 各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的移動電話軟件平臺, 在移動產(chǎn)業(yè)內(nèi)形成一個開放式的生態(tài)系統(tǒng)13。 對于設(shè)備制造商來說,Android 是一個免費(fèi)的平臺。對硬體開發(fā)廠商來說,Android 是個開放的平臺。只要廠商有能力,可以在這個平臺上自由加入特有的裝置或功能,不 受手機(jī)作業(yè)系統(tǒng)廠商的限制。對于手持裝置的開發(fā)者來說,Android 是個先進(jìn)的平臺。平 臺上的應(yīng)用程式可相容于各種型號的 Android 手機(jī),免去為各種不同手機(jī)機(jī)型開發(fā)的困 擾。Android 平臺支援各種先進(jìn)的網(wǎng)絡(luò)、繪圖、3D 處理能力,可以用來提供更好的使用 者體驗(yàn)。Android 它的開放性就優(yōu)于其它封閉式的手機(jī)系統(tǒng),因此,任何人都可能根據(jù)自 己的喜好將手機(jī)系統(tǒng)中的所有功能重新編寫。這使得越來越多的人關(guān)注這個操作系統(tǒng)14。 Android 軟件平臺主要由五部分構(gòu)成,它們分別是:關(guān)鍵應(yīng)用程序、應(yīng)用程序框架和 組件、C /C +函數(shù)庫、Java 程序運(yùn)行環(huán)境、優(yōu)化了的 Linux 內(nèi)核15。 關(guān)鍵應(yīng)用程序:Android 平臺內(nèi)包含一些關(guān)鍵應(yīng)用程序,如郵件收發(fā)客戶端程序、短 信收發(fā)程序、日歷、網(wǎng)頁瀏覽器等,而更多有特色的 Android 應(yīng)用程序還有待于廣大開 發(fā)者共同參與開發(fā)。 應(yīng)用程序框架及組件:Android 應(yīng)用程序開發(fā)基于框架和組件。Android 本身已在其 框架中提供了許多組件供應(yīng)用程序調(diào)用,開發(fā)者也可在開發(fā)應(yīng)用程序時順帶開發(fā)新的組 件,并將該組件放入應(yīng)用程序框架中,以供自己和其它應(yīng)用程序調(diào)用。 C/C+函數(shù)庫:Android 應(yīng)用程序框架之下是一套 C/C +函數(shù)庫,它們服務(wù)于 Android 應(yīng)用程序組件,其功能通過組件間接提供給開發(fā)者。這些函數(shù)庫包括: 標(biāo)準(zhǔn) C 函 數(shù)庫、媒體功能庫、瀏覽器引擎、2D 和 3D 圖形庫等16。 Java 程序運(yùn)行環(huán)境:Android 的 Java 程序運(yùn)行環(huán)境包含一組 Java 核心函數(shù)庫及 Dalvik 虛擬機(jī),它們有效地優(yōu)化了 Java 程序的運(yùn)行過程。 Linux 內(nèi)核:Android 系統(tǒng)平臺基于優(yōu)化了的 Linux 內(nèi)核,它提供諸如內(nèi)存管理、進(jìn) 程管理、設(shè)備驅(qū)動等服務(wù),同時也是手機(jī)軟硬件的連接層17。 Android 應(yīng)用程序以各種組件(API)為基礎(chǔ),API 是 Android 軟件平臺的重要組成部 分,也是開發(fā) Android 應(yīng)用的關(guān)鍵所在。 當(dāng)前活動程序 Activity:作為最常用的應(yīng)用程序組件,幾乎所有 Activity 都會通過 5 創(chuàng)建 U I 窗口與用戶進(jìn)行交流。Activity 具有生命周期,它包含運(yùn)行、暫停、停止等幾 個狀態(tài),狀態(tài)間的轉(zhuǎn)換可通過調(diào)用 onCreate()、onStart()、onRestart()、onResume()、 onFreeze()、onPause()、onStop ()、onDestory()等方法來實(shí)現(xiàn)。要開啟新的 activity,可以調(diào)用 startActivity(Intent),或調(diào)用 startSubActivity(Intent, int), 后者通常和 onActivityResult(int,int, String,Bundle)聯(lián)合使用,以從一個 activity 獲取某結(jié)果并返回給打開它的 activity18。 圖像顯示 View: View 是最基本的 UI 構(gòu)件,它在屏幕中占據(jù)一個矩形區(qū)域可用來顯 示文本、圖像等內(nèi)容,還可完成圖像事件處理。常用的 View 方法有:inflate()(由 XML 文件生成 View)、onDraw (Canvas)(對 View 進(jìn)行填充) 、onMeasure (int, int)(測量 View 的高度和寬度) 、onLayout() (完成 View 的布局) 、onKeyDown(int, KeyEvent) (View 中有按鍵操作時被調(diào)用) 、onFocusChanged (boolean, int)(當(dāng) View 得到或失去 關(guān)注時被調(diào)用)、setOnClilckListener()(設(shè)置 View 點(diǎn)擊事件監(jiān)聽器)。View 也包含一些 子類,如: TextView(布局文件中的文本顯示)、EditText(布局文件中的文本編輯)、 Button(按鈕) 、ListView(顯示列表) 19。 事件 Intent: Intent 抽象描述了想要執(zhí)行的某種操作,它與 startActivity 一起使 用可以開啟新的 activity,與 startService 一起使用可以開啟后臺服務(wù)。Intent 最重 要的作用還是加載 activity,它是不同 activity 間的橋梁。Intent 也可以被認(rèn)為是一 種概括操作行為的數(shù)據(jù)結(jié)構(gòu),它主要包括 action (動作)和 data(數(shù)據(jù))兩部分,此外它 還具有一些附加屬性如 category(intent 種類)、type (數(shù)據(jù)類型)等。常用的 Intent 方 法有 intent() (構(gòu)造 intent)、addcategory() (添加 intent 類型)、getAction()(獲取 intent 動作)、getData()(獲取 intent 數(shù)據(jù))等。 數(shù)據(jù)存取與共享機(jī)制 ContentProvider: ContentProvider 為應(yīng)用程序提供一些訪問 方法,包括: Query(Uri, String , String,String , String, String, String)(數(shù)據(jù)信息的查詢) ,insert (Uri, Contentvalues) (在 Contentp rovider 中 添加新數(shù)據(jù)) , updata(Uri, Contentvalues, String, String )(更新 Conntp rovider 中的數(shù)據(jù)), delect(Uri, String,String )(刪除數(shù)據(jù)) , Gettype (Uri) (獲取數(shù)據(jù)類型)。其中,Uri 標(biāo)明了 ContentProvider 存儲的數(shù)據(jù)類型,在執(zhí)行訪問方法 時都需依據(jù) Uri 作為路徑標(biāo)識來確定要訪問哪個 ContentProvider20。 后臺服務(wù) Service: Service 是運(yùn)行在后臺的應(yīng)用程序組件,不直接與用戶交互。當(dāng) 前活動程序可以使用 Context. StartService()開啟一項后臺服務(wù),還可以通過 Context. bindService()與后臺服務(wù)通信。 Android 的架構(gòu)是 Linux 內(nèi)核、C/C+函數(shù)庫、Dalvik 虛擬機(jī)、應(yīng)用框架以及關(guān)鍵應(yīng) 用程序構(gòu)成的,如圖 2-1。通過編譯基于框架的應(yīng)用程序可以降低開發(fā)負(fù)荷。應(yīng)用軟件原 則上是在 Dalvik VM 上運(yùn)行的。 6 圖 2-1 Android 架構(gòu)圖 2.1.2 關(guān)鍵應(yīng)用程序 Android 平臺內(nèi)包含一些關(guān)鍵應(yīng)用程序,如郵件收發(fā)客戶端程序、短信收發(fā)程序、日 歷和網(wǎng)頁瀏覽器等,開發(fā)者可以在其平臺上開發(fā)更多有特色的應(yīng)用程序,所用開發(fā)語言是 Java。 2.1.3 應(yīng)用程序框架 Android 應(yīng)用程序的開發(fā)基于框架和組件。Android 本身已在其框架中提高了許多的 組件供應(yīng)用程序調(diào)用,當(dāng)然開發(fā)者也開放新的組件,并將組件放入應(yīng)用程序框架中,以 供自己和其它應(yīng)用程序調(diào)用。 2.1.4 函數(shù)庫 Android 應(yīng)用程序框架之下是一套 C/C+函數(shù)庫,它們服務(wù)于 Android 應(yīng)用程序組件, 其功能通過組件間接提供給開發(fā)者。這些函數(shù)庫包括:標(biāo)準(zhǔn) C 函數(shù)庫、媒體功能庫、瀏 覽器引擎、2D 和 3D 圖形庫、基于 WEB 應(yīng)用的的安全協(xié)議 SSL、用于點(diǎn)陣和矢量字體渲染 的 FreeType 以及 SQLite 引擎等。 Android 的 Java 程序運(yùn)行環(huán)境包含一組 Java 核心函數(shù)庫及 Dalvik 虛擬機(jī),它們有 效地優(yōu)化了 Java 程序的運(yùn)行過程。所有的 Android 應(yīng)用都運(yùn)行在它自己的進(jìn)程里,該進(jìn) 程是一個 Dalvik 虛擬機(jī)的實(shí)例,Dalvik 被設(shè)計成能在一臺設(shè)備上高效的運(yùn)行多個虛擬機(jī) 實(shí)例。Dalvik 虛擬機(jī)的可執(zhí)行文件被封裝成 Dalvik 可執(zhí)行格式(.dex)。這是被優(yōu)化過的 最小內(nèi)存依賴的格式。Java 編譯器(dx 工具)將注冊了的和運(yùn)行時用到的類編譯成.dex 格 式。Dalvik 虛擬機(jī)依賴于底層 Linux 內(nèi)核提供的功能,如線程機(jī)制,和內(nèi)存管理機(jī)制等。 2.1.5 Linux 內(nèi)核 Android 系統(tǒng)平臺是基于優(yōu)化了的 Linux 內(nèi)核,是其系統(tǒng)平臺的核心。它提供諸如內(nèi) 存管理、進(jìn)程管理、設(shè)備驅(qū)動等服務(wù),同時也是手機(jī)軟硬件的連接層,提供了一個屏蔽 層用于屏蔽硬件和上層軟件。 7 2.2 Android 應(yīng)用的構(gòu)成和工作機(jī)制 對于一個 Android 應(yīng)用程序來說,是由 Activity、 Intent Receiver 、Service、Content Provider 四部分組成,但并不是每一個 Android 應(yīng)用程序都必須由 這四部分組成。在應(yīng)用程序中使用時,需要在配置文件 AndroidMainfestxml 中進(jìn)行配 置。這個配置文件是每個 Android 應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件、組件 的功能以及必要條件等。 2.2.1 Activity Activity 是構(gòu)成應(yīng)用程序中最重要的構(gòu)造塊, 在 Android 應(yīng)用程序中,幾乎都是通 過 Activity 來與用戶進(jìn)行交互,所以 Activity 主要負(fù)責(zé)的就是創(chuàng)建與用戶進(jìn)行交互的 顯示窗口,你可以在這些窗口里通過調(diào)用 setContentView(View)方法來顯示你自己的用 戶界面。 活動(Activity)在系統(tǒng)中以活動棧的形式進(jìn)行管理。當(dāng)一個新的活動啟動后,被放 到了棧頂,成為了運(yùn)行活動,而新活動之前的活動在活動棧里總位于新活動之下,直到 新的活動退出才重新回到前臺。 從圖 2-2 可以看出,Activity 有三個關(guān)鍵的循環(huán): (1)活動的整個生命期:從首次調(diào)用 onCreate(Bundle)開始,到最終調(diào)用 onDestroyO 結(jié)束。在 onCreate()中進(jìn)行所有初始化,在 onDestroyO 時進(jìn)行清理工作, 釋放資源。 (2)活動的可見生命期:從調(diào)用 onStart()開始,到 onStop()被調(diào)用為止。在這段時 間內(nèi),即使活動不與用戶進(jìn)行交互,用戶也可以在屏幕上看到它。在這兩個方法調(diào)用之 間,可以維護(hù)活動顯示給用戶的資源。onStart()和 onStop()方法可以多次調(diào)用,因?yàn)榛?動隨時可以在可見和隱藏之間進(jìn)行轉(zhuǎn)換。 (3)活動的后臺生命期:從調(diào)用 onResume()開始,到 onPause()被調(diào)用為止。這段時 間內(nèi)活動處于其它所有活動之前,并與用戶進(jìn)行交互。一個活動可以不斷在 resumed 狀 態(tài)和 paused 狀態(tài)之間變換。 Android 使用了 Intent 類來實(shí)現(xiàn)活動之間的切換工作。Intent 負(fù)責(zé)對應(yīng)用中一次操 作的動作、動作涉及的數(shù)據(jù)和附加數(shù)據(jù)進(jìn)行描述。根據(jù) Intent 的描述,負(fù)責(zé)找到對應(yīng)的 組件,將 Intent 傳遞給調(diào)用的組件并完成組件的調(diào)用。因此,Intent 起著一種媒體中介 的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。在應(yīng) 用中,我們可以以兩種形式來使用 Intent:直接 Intent,指定了 component 屬性的 Intent,通過指定具體的組件類,通知應(yīng)用啟動對應(yīng)的組件。間接 Intent,沒有指定 component 屬性的 Intent,則需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在所 有的可用組件中,確定滿足此 Intent 的組件。 2.2.2 Intent Receiver Intent Receiver 是用于對外部事件的響應(yīng),當(dāng)外部事件發(fā)生時,會使用 Notification Manager 通知用戶。當(dāng)一個 Intent Receiver 被觸發(fā)時,系統(tǒng)會在需要的 時候啟動對應(yīng)的應(yīng)用程序。如在本系統(tǒng)中,當(dāng)用戶正在其它界面進(jìn)行操作時,有好友發(fā) 送消息過來,就會以通知的形式發(fā)送到當(dāng)前界面的正上方來通知用戶。各種應(yīng)用還可以 通過使用 ContextBroadcast Intent()將它們的 Intent Receiver 廣播給其它的應(yīng)用程 8 序,實(shí)現(xiàn)應(yīng)用之間的通訊。 2.2.3 Service Service 是提供連續(xù)信息的應(yīng)用程序。它是運(yùn)行于應(yīng)用程序后臺的服務(wù),在用戶進(jìn)行 其它活動的時候,這個服務(wù)將一直運(yùn)行在基于 Android 平臺的即時通訊系統(tǒng)的研究與實(shí) 現(xiàn)后臺,直到用戶停止該服務(wù)或服務(wù)運(yùn)行結(jié)束。本系統(tǒng)客戶端擴(kuò)展功能就是采用 Service 來進(jìn)行設(shè)計和開發(fā)的。 2.2.4 Content Provider Content Provider 應(yīng)用程序能夠?qū)⑺鼈兊臄?shù)據(jù)保存到文件、SQL 數(shù)據(jù)庫和其它的存 儲設(shè)備中。當(dāng)應(yīng)用程序需要使用存儲設(shè)備中的數(shù)據(jù)時,可以使用 Content Provider 來完 成。使用 Content Provider 能夠靈活的替換底層使用的存儲設(shè)備,從而使應(yīng)用系統(tǒng)具有 良好的數(shù)據(jù)。 9 3 需求分析 3.1 功能需求分析 根據(jù)用戶需求總結(jié)出來的反映了用戶需求的系統(tǒng)邏輯模型轉(zhuǎn)換成可以實(shí)施的物理模 型,把整個設(shè)計劃分成單元,主要解決如何去做的問題,要想創(chuàng)建整個通訊錄首先要通 過增加聯(lián)系人信息來創(chuàng)建通訊錄。整個應(yīng)用程序應(yīng)劃分為 4 個模塊,分別是程序啟動、 用戶界面、后臺服務(wù)和數(shù)據(jù)庫適配器,各模塊之間的關(guān)系如圖 3-1 所示: Appwidget 啟動 Appwidgetprovider 啟動服務(wù) 后臺服務(wù) 數(shù)據(jù)獲取模塊 用戶界面設(shè)置相關(guān)信息 信息 Startservice(new intent() )啟動服務(wù) 聯(lián)系人列表服務(wù) 數(shù)據(jù)庫獲取模塊SQLite 圖 3-1 各模塊關(guān)系圖 從上圖中不難看出,后臺服務(wù)是整個應(yīng)用程序的核心,主要是“數(shù)據(jù)獲取模塊” ,負(fù) 責(zé)周期性的從用戶輸入的內(nèi)容中獲取信息。后臺服務(wù)在程序啟動時就由 AppWidgetProvider 啟動,也可由用戶界面通過 startService()進(jìn)行啟動,啟動后的后 臺服務(wù)將一直保持運(yùn)行狀態(tài)。同時用戶界面從數(shù)據(jù)庫中獲取文本信息。一方面可以避免 因網(wǎng)絡(luò)通信不暢造成界面失去響應(yīng);另一方面,后臺服務(wù)可以及時更新數(shù)據(jù),以保證數(shù) 據(jù)的準(zhǔn)確性。數(shù)據(jù)庫適配器封裝了所有對 SQLite 數(shù)據(jù)庫操作的方法,用戶界面和后臺服 務(wù)會調(diào)用它來實(shí)現(xiàn)數(shù)據(jù)庫操作。在完成用戶界面設(shè)計、數(shù)據(jù)庫設(shè)計和模塊設(shè)計后,至此 程序設(shè)計階段基本完成。 文本編輯器中不同功能界面之間的切換,用戶可以通過點(diǎn)擊 menu 鍵來切換到不同的 10 功能界面,不同功能界面的切換如圖 3-2。 Client 詳細(xì)信息 增加 查找 刪除 菜單 退出 通信功能 顯示所有 刪除所有 返回 刪除 修改 圖 3-2 不同功能界面切換 3.2 性能需求分析 手機(jī)軟件要有良好的用戶體驗(yàn),良好的用戶體驗(yàn)體現(xiàn)在以下幾個方面: (1)界面友好 用戶界面要簡潔直觀,設(shè)計合理,方便用戶操作,讓用戶操作起來比較舒服,并且 UI 視覺效應(yīng)好。 (2)快速響應(yīng) 快速處理用戶的輸入或請求,對于需要長時間處理的部分,在其處理時可以給用戶 一個提示,告知用戶該軟件正在運(yùn)行。 (3)無縫性 一個常見的無縫問題就是一個應(yīng)用的后臺進(jìn)程(如 service 或 broadcast receiver)對某事件作出響應(yīng)而彈出對話框,這看起來并無大礙,特別是當(dāng)我在模擬器 上單獨(dú)地構(gòu)建和測試系統(tǒng)時。然而,當(dāng)我的應(yīng)用在真正的設(shè)備上運(yùn)行,后臺線程顯示對 話框時,我的應(yīng)用當(dāng)時可能沒有獲得用戶焦點(diǎn)。這就會出現(xiàn)我的應(yīng)用會在活動的應(yīng)用后 面顯示對話框,或者從當(dāng)前應(yīng)用中獲得焦點(diǎn)并顯示對話框的情況,而管論當(dāng)時用戶正在 做什么(如正在打電話等) 。那樣的行為可能對我的應(yīng)用或用戶不起作用。為了避免這些 問題,我的應(yīng)用應(yīng)該利用適當(dāng)?shù)南到y(tǒng)資源Notification 類來通知用戶。利用通知, 我的應(yīng)用可以通過在狀態(tài)條上顯示一個圖標(biāo)來通知用戶事件已經(jīng)發(fā)生,而非獲得焦點(diǎn)和 打斷用戶。 11 3.3 數(shù)據(jù)庫需求分析 數(shù)據(jù)結(jié)構(gòu)組織和數(shù)據(jù)庫文件設(shè)計要根據(jù)不同用途使用要求等,來決定數(shù)據(jù)的整體組 織形式等。 數(shù)據(jù)庫,顧名思義,是存放數(shù)據(jù)的倉庫。只不過這個倉庫是在計算機(jī)存儲設(shè)備上, 而且數(shù)據(jù)是按一定的格式存放的。數(shù)據(jù)庫中的數(shù)據(jù)按一定數(shù)據(jù)模型組織、描述和存儲, 具有較小的重復(fù)度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并且可以被在一定范圍內(nèi)的各種用 戶共享。在涉及數(shù)據(jù)庫的軟件開發(fā)中,需要根據(jù)有待解決的問題性質(zhì)、規(guī)模,以及所采 用的前端程序創(chuàng)建工具等,做出合適的數(shù)據(jù)庫類型選擇,用戶數(shù)據(jù)庫是基于 SQLite 建立。 SQLite 是一款輕型的數(shù)據(jù)庫,是遵守 ACID 的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標(biāo) 是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌 入式設(shè)備中,可能只需要幾百 K 的內(nèi)存就夠了。它能夠支持 Windows/Linux/Unix 等等主 流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如 Tcl、PHP、Java 等,還有 ODBC 接口,同樣比起 Mysql、PostgreSQL 這兩款世界著名開源的數(shù)據(jù)庫管理系統(tǒng)來講,它的 處理速度比他們都快。這也是 android 的性能優(yōu)勢。 該系統(tǒng)數(shù)據(jù)庫的建立是完全在 Android 平臺上執(zhí)行 Java 代碼,通過 DVM 編譯來建立 的,沒有什么輔助工具,由于整個 SQLite 數(shù)據(jù)庫是非可視化操作,所有對數(shù)據(jù)庫的操作 都是通過執(zhí)行 Java 代碼實(shí)現(xiàn),在完成其查詢功能的時候沒有使用數(shù)據(jù)庫高級編程,較為 麻煩的關(guān)節(jié)是在如何有機(jī)的將客戶端數(shù)據(jù)庫整體結(jié)構(gòu)實(shí)現(xiàn)出來,實(shí)現(xiàn)過程是無可視界面, 也沒有數(shù)據(jù)庫輔助工具情況下,整個過程很抽象。 3.4 安全需求 Android 安全中的一個重要的設(shè)計點(diǎn)是在默認(rèn)的情況下應(yīng)用沒有權(quán)限執(zhí)行對其他應(yīng)用 程序,操作系統(tǒng)或用戶的有害操作。這些操作包括讀取用戶的隱私數(shù)據(jù),訪問網(wǎng)絡(luò),保 持設(shè)備活動等等,應(yīng)用程序的進(jìn)程是一個安全的黑盒子,在沒有給它權(quán)限的時候它不能 干擾其他應(yīng)用程序。 12 4 功能設(shè)計 4.1 總體設(shè)計 一個好的系統(tǒng)設(shè)計的步驟決定了程序是否能按照設(shè)計者的目的按時完成,是否能在規(guī)定 的時間內(nèi)按照設(shè)計者的要求高質(zhì)量的完成程序必要的功能。并且按照標(biāo)準(zhǔn)的設(shè)計步驟對 程序進(jìn)行調(diào)試,測試,以及后期的優(yōu)化完善,使程序更加具有健壯性和可用性。通過對 通訊錄功能、系統(tǒng)模塊、用戶需求方面進(jìn)行全方位的分析制定開發(fā)流程,開發(fā)流程如圖 4-1 所示。 調(diào)查研究確定功能編寫程序調(diào)試程序 運(yùn)行測試優(yōu)化完善 圖 4-1 開發(fā)流程圖 采用標(biāo)準(zhǔn)的開發(fā)流程確定系統(tǒng)具有用戶管理功能,聯(lián)系人增刪改功能,通訊功能,查找 功能,備份等功能。系統(tǒng)的功能圖如 4-2 所示。 增 加 查 找 刪 除 菜 單 詳 細(xì) 信 息 修 改 聯(lián)系人列表 退 出 刪 除 顯 示 所 有 刪 除 所 有 備 份 返 回 圖 4-2 系統(tǒng)功能圖 通過對系統(tǒng)的功能結(jié)構(gòu)的分析,設(shè)計后系統(tǒng)運(yùn)行流程是系統(tǒng)運(yùn)行后用戶將進(jìn)入通訊錄主 13 界面,可以看到聯(lián)系人列表。通過點(diǎn)擊 MENU 界面的增加功能選項可以新增聯(lián)系人,通過 查找按鈕可以對聯(lián)系人進(jìn)行姓名、號碼的操作,通過選擇聯(lián)系人并點(diǎn)擊刪除鍵可以對聯(lián) 系人進(jìn)行刪除操作,通過菜單功能可以顯示所有聯(lián)系人、刪除所有聯(lián)系人、并備份 SD 卡 功能。在聯(lián)系人詳細(xì)信息界面點(diǎn)擊 MENU 鍵彈出通訊功能框選擇撥打電話按鈕或者發(fā)信息 發(fā)郵件按鍵,系統(tǒng)的運(yùn)行流程圖如 4-3 所示。 開始 初始化 顯示聯(lián)系人列表 通過 menu 鍵進(jìn)行操作 不同的選項操作 具體的操作 操作是否結(jié)束 返回手機(jī)功能界面 結(jié)束 Yes No 圖 4-3 系統(tǒng)運(yùn)行流程 4.2 系統(tǒng)功能設(shè)計 根據(jù)手機(jī)功能調(diào)查顯示,近十成消費(fèi)者都會使用手機(jī)通訊錄功能,隨著手機(jī)通訊錄 功能的不斷加強(qiáng)與完善,手機(jī)通訊錄的意義,已不僅僅像電話薄一樣顯示電話號碼,而 是向著個性化、人性化的方向發(fā)展。通訊錄從無到有,從英文到中文,經(jīng)歷了十幾年的 發(fā)展歷程,今后的發(fā)展趨勢就是從通訊錄發(fā)展為名片夾,也就是在一個聯(lián)系人之下有手 14 機(jī)號碼、固話號碼、公司、住址、郵箱、備注等內(nèi)容。手機(jī)通訊錄扮演著與用戶直接交 互并且提供服務(wù)的重要角色,它需要提供良好的用戶體驗(yàn),方便用戶操作,接收用戶的 操作并把這些操作轉(zhuǎn)換成相應(yīng)的命令,采用用戶活動的方式完成各個服務(wù)的邏輯流程。 其功能主要包括以下幾方面內(nèi)容。 1、增加、刪除、編輯聯(lián)系人 點(diǎn)擊通信錄界面中的增加按鈕,進(jìn)入增加聯(lián)系人界面。輸入聯(lián)系人的基本信息,并 可根據(jù)用戶需求增加個性化信息如頭像、姓名、手機(jī)號碼、辦公室電話、家庭電話、職 務(wù)職稱、單位名稱、地址、郵政編碼、Email、其他聯(lián)系方式、備注這些信息,單擊確認(rèn) 返回主界面。點(diǎn)擊通信錄中一個已存在的聯(lián)系人,進(jìn)入聯(lián)系人編輯界面,可修改聯(lián)系人 的資料或進(jìn)行刪除聯(lián)系人操作,完成后退回到主界面。對列表中聯(lián)系人的標(biāo)記,點(diǎn)擊 menu 鍵彈出功能界面上的刪除按鍵也可進(jìn)行刪除。還可以在菜單上選擇刪除全部聯(lián)系人 來清空通訊錄。在刪除聯(lián)系人的過程中,系統(tǒng)將提示用戶是否繼續(xù)操作,若放棄操作, 則聯(lián)系人信息將繼續(xù)保存。 2、查找聯(lián)系人 用戶點(diǎn)擊 menu 鍵打開底部菜單框,底部菜單框?yàn)椴樵兟?lián)系人提供入口,進(jìn)入通訊錄 的缺省頁面為聯(lián)系人列表,在列表中看到所有聯(lián)系人的姓名、電話信息排列,用戶點(diǎn)擊 查找按鍵輸入聯(lián)系人基本信息,通訊錄顯示所有符合查詢條件的聯(lián)系人列表,用戶選擇 一個聯(lián)系人進(jìn)入聯(lián)系人基本信息頁面進(jìn)行其他操作;查詢完成,用戶按返回鍵返回主界 面。 3、通訊功能 用戶在通訊錄選擇聯(lián)系人進(jìn)入聯(lián)系人詳細(xì)信息界面,這時點(diǎn)擊 menu 鍵打開通信功能 框,選擇打電話、發(fā)信息還是發(fā)郵件的功能進(jìn)行操作。 4、菜單功能 通過對 menu 按鍵的點(diǎn)擊,顯示底部菜單框,包含有增加、查找、刪除、菜單、返回 功能,菜單按鍵則包含顯示所有、刪除所有、備份 SD 卡等實(shí)用功能。 4.3 系統(tǒng)數(shù)據(jù)庫設(shè)計 該程序數(shù)據(jù)庫是在 Android 平臺上執(zhí)行 Java 代碼,通過 DVM 編譯來建立的,由于整 個 SQLite 數(shù)據(jù)庫是非可視化操作,因此所有對數(shù)據(jù)庫的操作都是通過執(zhí)行 Java 代

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論