基于android手機(jī)電話薄的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文設(shè)計(jì)說明_第1頁
基于android手機(jī)電話薄的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文設(shè)計(jì)說明_第2頁
基于android手機(jī)電話薄的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文設(shè)計(jì)說明_第3頁
基于android手機(jī)電話薄的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文設(shè)計(jì)說明_第4頁
基于android手機(jī)電話薄的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文設(shè)計(jì)說明_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 中圖分類號(hào):TP311.1本 科 生 畢 業(yè) 論 文論文題目 基于Android手機(jī)通訊錄畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作與取得的成果。盡我所知,除文中特別加以標(biāo)注和致的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得與其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對(duì)本研究提供過幫助和做出過貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說明并表示了意。作 者 簽 名:日 期:指導(dǎo)教師簽名: 日期:使用授權(quán)說明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢

2、業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉咳?。作者簽名: 日 期:學(xué)位論文原創(chuàng)性聲明本人重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期: 年 月 日學(xué)位論文使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)

3、保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論文的全部或部分容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名:日期: 年 月 日導(dǎo)師簽名: 日期: 年 月 日目 錄摘要1Abstract.11緒論21.1研究背景21.2研究現(xiàn)狀21.3主要工作31.4本文結(jié)構(gòu)42 Android技術(shù)與理論42.1 Android系統(tǒng)開發(fā)簡(jiǎn)介42.1.1 Android技術(shù)簡(jiǎn)介42.1.2 關(guān)鍵應(yīng)用程序72.1.3 應(yīng)用程序框架72.1.4 函數(shù)庫72.1.5

4、 Linux核72.2 Android應(yīng)用的構(gòu)成和工作機(jī)制72.2.1 Activity72.2.2 Intent Receiver82.2.3 Service92.2.4 Content Provider93需求分析93.1功能需求分析93.2性能需求分析103.3數(shù)據(jù)庫需求分析113.4安全需求114功能設(shè)計(jì)114.1總體設(shè)計(jì)114.2系統(tǒng)功能設(shè)計(jì)134.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)135通訊錄實(shí)現(xiàn)145.1 Android開發(fā)平臺(tái)搭建145.2具體功能實(shí)現(xiàn)155.2.1界面布局155.2.2增加聯(lián)系人功能175.2.3刪除聯(lián)系人功能195.2.4查找聯(lián)系人功能205.2.5 Menu底部菜單框功能2

5、15.2.6 通信功能225.2.7顯示所有、刪除所有與備份功能245.2.8數(shù)據(jù)庫操作實(shí)現(xiàn)266系統(tǒng)測(cè)試286.1系統(tǒng)測(cè)試用例286.2系統(tǒng)測(cè)試結(jié)果296.2.1系統(tǒng)測(cè)試方法296.2.2 編輯聯(lián)系人功能測(cè)試296.2.3 查找聯(lián)系人功能測(cè)試296.2.4 刪除聯(lián)系人功能測(cè)試306.2.5 備份功能測(cè)試316.2.6 通訊功能測(cè)試326.3測(cè)試總結(jié)32結(jié)束語32參考文獻(xiàn)32附錄34致3740 / 45基于Android手機(jī)通訊錄的設(shè)計(jì)與實(shí)現(xiàn)摘要:隨著智能手機(jī)逐漸走進(jìn)普通人的生活,它正在成為人們獲取信息的主要設(shè)備,這在學(xué)生一族中體現(xiàn)最為明顯,而且智能手機(jī)是他們獲取信息最方便、最快捷的途徑。因此

6、,手機(jī)的便捷服務(wù)類應(yīng)用將會(huì)有很大的發(fā)展空間,手機(jī)備忘錄軟件就是其中的一種。在Android系統(tǒng)下的備忘錄軟件中,用戶可以非常方便的查詢事件備忘,為工作、出游、生活雜碎事提供整理記錄功能。另外,Android平臺(tái)基本上是免費(fèi)的,所以能夠有效降低軟件的成本,最終讓每個(gè)用戶能夠自由地獲取信息,也為備忘錄應(yīng)用軟件的普與做出貢獻(xiàn)。本文對(duì)目前應(yīng)用的Symbian、WindowsMobile、iOS等平臺(tái)的現(xiàn)狀進(jìn)行了分析與比較。進(jìn)而研究分析了Android平臺(tái)的系統(tǒng)架構(gòu)和組件模型,接著解析了Android中的重要API和應(yīng)用構(gòu)成,以與Intent和生命周期的機(jī)制。在此基礎(chǔ)上,基于Android平臺(tái)設(shè)計(jì)和開發(fā)

7、備忘錄軟件。本系統(tǒng)界面友好、操作便捷,具有良好的可擴(kuò)展性和可維護(hù)性;系統(tǒng)經(jīng)過測(cè)試,可以穩(wěn)定運(yùn)行,能夠滿足手機(jī)用戶的基本需求。關(guān)鍵詞:Android;手機(jī)通訊錄;智能手機(jī); Design and Implementation of Mobile Phone Contacts Based on Android Abstract:With the 3G promotion of third-generation communications technology, wireless bandwidth and transmission speed have been improved signifi

8、cantly, 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, t

9、hrough 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

10、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. This software uses the Android provides a variety of components to des

11、ign the interface, can support the user experience.Key words: Android; Mobile Phone Contacts; Smartphone;1緒論1.1研究背景智能手機(jī)(Smartphone),是指“像個(gè)人電腦一樣,具有獨(dú)立的操作系統(tǒng),可以由用戶自行安裝軟件、游戲等第三方服務(wù)商提供的程序,通過此類程序來不斷對(duì)手機(jī)的功能進(jìn)行擴(kuò)充,并可以通過移動(dòng)通訊網(wǎng)絡(luò)來實(shí)現(xiàn)無線網(wǎng)絡(luò)接入的這樣一類手機(jī)的總稱”。目前,全球多數(shù)手機(jī)廠商都有智能手機(jī)產(chǎn)品,而芬蘭諾基亞、美國蘋果、加拿大RIM(黑莓)、美國摩托羅拉、中國宏達(dá)(htc)都是智能機(jī)中的佼佼

12、者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ù)個(gè)人需要擴(kuò)展機(jī)器的功能。3它是具有開放性的操作系統(tǒng),還可以安裝非常多的應(yīng)用程序,使得智能手機(jī)的功能可以得到無限的擴(kuò)展。4具有PDA功能,其中包括個(gè)人信息管理、日程記事、任務(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ā),最初

13、主要支持手機(jī)。2005年由Google收購注資,并組建開放手機(jī)聯(lián)盟開發(fā)改良,逐漸擴(kuò)展到平板電腦與其他領(lǐng)域上。Android的主要競(jìng)爭(zhēng)對(duì)手是蘋果公司的iOS以與RIM的Blackberry OS。2011年第一季度,Android在全球的市場(chǎng)份額首次超過塞班系統(tǒng),躍居全球第一。 2012年2月數(shù)據(jù),Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場(chǎng)52.5%的份額,中國市場(chǎng)占有率為68.4%3。在這個(gè)信息化的時(shí)代,手機(jī)已成為繼固話之后最為通俗的交流工具4。在這個(gè)人與人關(guān)系愈加密切的時(shí)代,“通訊”成了生活中的必需品。這就有這么一個(gè)系統(tǒng)記錄下人與人之間的多樣聯(lián)系方式手機(jī)通訊系統(tǒng)。目前國的通訊錄應(yīng)用服務(wù)商分為

14、三類,第一類如幸會(huì)、名片全能王、QR掃描等等,這些產(chǎn)品主要是為了解決名片交換時(shí)候輸入難度較高的問題。而這也就致使了這部分廠家缺少了一個(gè)服務(wù)商最看重的東西:對(duì)用戶沒有持續(xù)的運(yùn)營能力;第二類如火種、通訊錄、友錄、手機(jī)自帶的通訊錄同步服務(wù)等等,這部分的市場(chǎng)主要提供了備份服務(wù),幫助用戶解決手機(jī)記錄聯(lián)系人的問題。第三類就是針對(duì)與通訊錄之上提供的拓展應(yīng)用服務(wù)提供商,比如:米聊和微信,你可以通過上面去發(fā)短信,實(shí)現(xiàn)多種通信能力的聚合5。1.2研究現(xiàn)狀當(dāng)今社會(huì)的生活節(jié)奏越來越快,人們對(duì)手機(jī)的要求也越來越高,由于手機(jī)市場(chǎng)發(fā)展迅速,使得手機(jī)操作系統(tǒng)也出現(xiàn)了不同種類。Android是一個(gè)基于Linux 核心(kern

15、el)的開放手機(jī)平臺(tái)作業(yè)系統(tǒng),與Windows Mobile、Symbian 等手機(jī)作業(yè)系統(tǒng)處在同一級(jí)別,其中占有開放源代碼優(yōu)勢(shì)的Android系統(tǒng)有最大的發(fā)展前景。較之Symbian用戶體驗(yàn)較差,系統(tǒng)較為封閉,支持的應(yīng)用較少和Windows Mobile系統(tǒng)對(duì)終端廠商來講引入成本較為昂貴,娛樂性平平。Android系統(tǒng)則擁有低廉的引入成本,在應(yīng)用方面的資源豐富,以與良好的用戶體驗(yàn)開放性較強(qiáng)的特點(diǎn),適應(yīng)了移動(dòng)互聯(lián)網(wǎng)的發(fā)展趨勢(shì),切合了移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)鏈各方的發(fā)展變化需求,所以取得了迅猛的發(fā)展6。Android 系統(tǒng)除了低廉的成本和良好的用戶體驗(yàn)外,因采用了開源的平臺(tái),給予了終端廠商和開發(fā)者更大的靈

16、活性,開發(fā)者在程序的開發(fā)移植上更為方便且不需要考慮廠商端容審核等問題,終端廠商則可以按需深度定制系統(tǒng)開發(fā)本地化應(yīng)用環(huán)境,在終端廠商、電信運(yùn)營商和第三方應(yīng)用開發(fā)商的推動(dòng)下,用戶可選擇的應(yīng)用資源將會(huì)進(jìn)一步豐富。各大Android應(yīng)用商店呈現(xiàn)百花齊放的態(tài)勢(shì)。帶給了應(yīng)用開發(fā)者更多的機(jī)遇和極具誘惑力的利潤分成,在各應(yīng)用商店間的移植改造成本也相對(duì)較低。隨著應(yīng)用商店的不斷發(fā)展和開發(fā)者的涌入,Android平臺(tái)的應(yīng)用資源優(yōu)勢(shì)正在逐步的擴(kuò)大7。而從用戶的角度考慮,Android良好發(fā)展前景主要源于優(yōu)秀的用戶體驗(yàn)和高性價(jià)比這兩個(gè)方面。從人才需求類型來看,目前對(duì)Android人才需求一類是偏向硬件驅(qū)動(dòng)的Androi

17、d人才需求,一類是偏向軟件應(yīng)用的Android人才需求。從目前的招聘需求來看,后者的需求最大,包括手機(jī)游戲、手機(jī)終端應(yīng)用軟件和其他手機(jī)應(yīng)用軟件的開發(fā)8。職業(yè)專家分析說,由于目前Android技術(shù)較新,具有開拓空間,無論是相關(guān)書籍、培訓(xùn)還是大學(xué)教育,都處于初級(jí)階段,因此Android人才短期將供不應(yīng)求。從長期來看,隨著各種移動(dòng)應(yīng)用和手機(jī)游戲等容需求日益增加,也將激勵(lì)大中小型手機(jī)應(yīng)用開發(fā)商加大對(duì)Android應(yīng)用的開發(fā)力度,因此Android人才前景也被看好。生活在信息高速發(fā)展的今天,智能手機(jī)的普與己經(jīng)是不可改變的趨勢(shì)。而作為手機(jī)各個(gè)功能中最為基本的通訊錄也成為人們生活中必不可少的一部分了9。在這

18、個(gè)人與人關(guān)系愈加密切的時(shí)代,“通訊”成了生活中的必需品。通過手機(jī)通訊錄記錄下對(duì)方的聯(lián)系方式,既減輕了大腦的負(fù)擔(dān),又不在受各種條件的約束,做到便捷隨身管理相關(guān)的聯(lián)系信息,擺脫了傳統(tǒng)簿,名片的累贅。另外,不同于微博,社交,手機(jī)通訊錄是完全屬于用戶的,而不隸屬于某個(gè)特定公司或是服務(wù),只要獲得用戶的認(rèn)可,即使不是大公司也可以借此迅速建立起一個(gè)巨大的關(guān)系網(wǎng)絡(luò)10。Frost & Sullivan的王煜全也曾多次強(qiáng)調(diào)過手機(jī)通訊錄是一塊顛覆性創(chuàng)新的金礦,是創(chuàng)業(yè)者們創(chuàng)新的絕佳平臺(tái)。從長遠(yuǎn)利益來看,可是意義重大的環(huán)保便民之舉。根據(jù)市場(chǎng)需求,手機(jī)通訊錄管理系統(tǒng)所記錄的信息一般分為個(gè)人、商業(yè)、辦公三類。清晰

19、了機(jī)主的聯(lián)系方向。針對(duì)性的分門別類,使系統(tǒng)具有了方便了機(jī)主的存儲(chǔ)和快速查閱優(yōu)勢(shì)功能,大大減少了在簿,名片上機(jī)械翻閱查找過程的時(shí)間。于此同時(shí)又根據(jù)手機(jī)隨身攜帶的特殊性,在一定程度上比一般的制作文件方便親民。又其次,因?yàn)槭謾C(jī)是隨身攜帶的通訊工具,這與記事本相比將在一定程度上保障了聯(lián)系人信息的安全性,相對(duì)避免了個(gè)人隱私信息外泄從而帶來的損失11。 綜上所述,手機(jī)通訊錄管理系統(tǒng)是一個(gè)高效、實(shí)時(shí)、綠色環(huán)保的管理系統(tǒng)。然而現(xiàn)在很多通訊錄一味追求外觀花哨,功能繁雜,對(duì)于大多數(shù)用戶,許多功能用不上,形同虛設(shè)。針對(duì)以上各種弊端,開發(fā)了此種通訊錄,將各種性能優(yōu)化,繼承通訊錄的常用功能,滿足一般用戶存儲(chǔ),查找,刪除

20、,查看的需求,此外還支持發(fā)信息,打,發(fā),備份SD卡等功能12。1.3主要工作在此背景下,開發(fā)的基于Android手機(jī)通訊錄具有十分重要的意義??梢愿鶕?jù)客戶需求的實(shí)際情況,開發(fā)一款實(shí)用的手機(jī)通訊錄軟件。本設(shè)計(jì)主要是采用Android的View框架編寫,部分框架運(yùn)用Android中的其他組件。當(dāng)進(jìn)入通訊錄的增加界面時(shí),調(diào)用的是一個(gè)用相對(duì)布局RelativeLayout的XML布局文件。其中包括了2個(gè)Button,分別實(shí)現(xiàn)了不同的功能。第一個(gè)Button是保存容,當(dāng)輸入聯(lián)系人和是點(diǎn)擊保存實(shí)現(xiàn)此功能。說到保存,不得不說得是保存信息涉與添加新聯(lián)系人的頭像,手機(jī),辦公室,家庭,職務(wù)職稱,單位名稱,地址,郵

21、政編碼,Email,其他聯(lián)系方式,備注這些信息。第二個(gè)Button是返回,顧名思義就是從增加界面返回前一界面。響應(yīng)menu鍵的觸發(fā)事件,設(shè)置底部菜單是否可見,并通過對(duì)底部菜單選項(xiàng)的監(jiān)聽實(shí)現(xiàn)底部菜單中的增加、查找、刪除、菜單、退出等功能,其中菜單包括顯示所有、刪除所有、備份功能。在聯(lián)系人信息界面時(shí)通過點(diǎn)擊menu鍵,會(huì)彈出通信功能框,通過與發(fā)信息、打、發(fā)功能接口的套用來實(shí)現(xiàn)。1.4本文結(jié)構(gòu)本文首先給出了系統(tǒng)的研究背景,對(duì)當(dāng)前手機(jī)通訊錄的發(fā)展現(xiàn)狀做了簡(jiǎn)單的介紹。進(jìn)而詳細(xì)的分析了Android的特征、架構(gòu)以與Android應(yīng)用的構(gòu)成和工作機(jī)制。本文詳細(xì)的提出了軟件的架構(gòu),以與通訊錄的設(shè)計(jì)方案;采用J

22、ava開源的JAR包對(duì)HTML文件進(jìn)行分析和獲取圖片和文字信息;對(duì)各個(gè)界面的布局和實(shí)現(xiàn)方式進(jìn)行詳細(xì)說明;對(duì)數(shù)據(jù)庫設(shè)計(jì)模塊進(jìn)行了詳盡的需求分析,經(jīng)分析得到數(shù)據(jù)庫設(shè)計(jì)模塊,它主要完成用戶對(duì)已經(jīng)獲取的容的存儲(chǔ),刪除和查詢等操作;運(yùn)用Android提供的各種組件設(shè)計(jì)和實(shí)現(xiàn)很好的UI效果,實(shí)現(xiàn)很好的用戶體驗(yàn);詳細(xì)介紹了該軟件的性能優(yōu)化。2 Android技術(shù)與理論2.1 Android系統(tǒng)開發(fā)簡(jiǎn)介2.1.1 Android技術(shù)簡(jiǎn)介Android一詞的本義指“機(jī)器人”同時(shí)也是Google。于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組

23、成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。它采用軟件堆層(Software Stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層以Linux核工作為基礎(chǔ),由C語言開發(fā),只提供基本功能;中間層包括函數(shù)庫Library和虛擬機(jī)Virtual Machine,由C+開發(fā)。最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分,不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。Google通過與軟、硬件開發(fā)商、設(shè)備制造商、電信運(yùn)營商等其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的移動(dòng)軟件平臺(tái),在移動(dòng)產(chǎn)業(yè)形成一個(gè)開放式的生

24、態(tài)系統(tǒng)13。對(duì)于設(shè)備制造商來說,Android是一個(gè)免費(fèi)的平臺(tái)。對(duì)硬體開發(fā)廠商來說,Android是個(gè)開放的平臺(tái)。只要廠商有能力,可以在這個(gè)平臺(tái)上自由加入特有的裝置或功能,不受手機(jī)作業(yè)系統(tǒng)廠商的限制。對(duì)于手持裝置的開發(fā)者來說,Android是個(gè)先進(jìn)的平臺(tái)。平臺(tái)上的應(yīng)用程式可相容于各種型號(hào)的Android 手機(jī),免去為各種不同手機(jī)機(jī)型開發(fā)的困擾。Android平臺(tái)支援各種先進(jìn)的網(wǎng)絡(luò)、繪圖、3D 處理能力,可以用來提供更好的使用者體驗(yàn)。Android它的開放性就優(yōu)于其它封閉式的手機(jī)系統(tǒng),因此,任何人都可能根據(jù)自己的喜好將手機(jī)系統(tǒng)中的所有功能重新編寫。這使得越來越多的人關(guān)注這個(gè)操作系統(tǒng)14。Andr

25、oid軟件平臺(tái)主要由五部分構(gòu)成,它們分別是:關(guān)鍵應(yīng)用程序、應(yīng)用程序框架和組件、C /C +函數(shù)庫、Java程序運(yùn)行環(huán)境、優(yōu)化了的Linux核15。關(guān)鍵應(yīng)用程序:Android平臺(tá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)用程序時(shí)順帶開發(fā)新的組件,并將該組件放入應(yīng)用程序框架中,以供自己和其它應(yīng)用程序調(diào)用。C/C+函數(shù)庫:Android應(yīng)用程序框架之下是一套C

26、/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核:Android系統(tǒng)平臺(tái)基于優(yōu)化了的Linux核,它提供諸如存管理、進(jìn)程管理、設(shè)備驅(qū)動(dòng)等服務(wù),同時(shí)也是手機(jī)軟硬件的連接層17。 Android應(yīng)用程序以各種組件(API)為基礎(chǔ),API是Android軟件平臺(tái)的重要組成部分,也是開發(fā)Android應(yīng)用的關(guān)鍵所在。當(dāng)前活動(dòng)程序A

27、ctivity:作為最常用的應(yīng)用程序組件,幾乎所有Activity都會(huì)通過創(chuàng)建U I窗口與用戶進(jìn)行交流。Activity具有生命周期,它包含運(yùn)行、暫停、停止等幾個(gè)狀態(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,B

28、undle)聯(lián)合使用,以從一個(gè)activity獲取某結(jié)果并返回給打開它的activity18。圖像顯示View: View是最基本的UI構(gòu)件,它在屏幕中占據(jù)一個(gè)矩形區(qū)域可用來顯示文本、圖像等容,還可完成圖像事件處理。常用的View方法有:inflate()(由XML 文件生成View)、onDraw (Canvas)(對(duì)View進(jìn)行填充)、onMeasure (int, int)(測(cè)量View的高度和寬度)、onLayout()(完成View的布局)、onKeyDown(int, KeyEvent)(View中有按鍵操作時(shí)被調(diào)用)、onFocusChanged (boolean, int)(當(dāng)

29、View得到或失去關(guān)注時(shí)被調(diào)用)、setOnClilckListener()(設(shè)置View點(diǎn)擊事件監(jiān)聽器)。View也包含一些子類,如: TextView(布局文件中的文本顯示)、EditText(布局文件中的文本編輯)、Button(按鈕)、ListView(顯示列表) 19。事件Intent: Intent抽象描述了想要執(zhí)行的某種操作,它與startActivity一起使用可以開啟新的activity,與startService 一起使用可以開啟后臺(tái)服務(wù)。Intent最重要的作用還是加載activity,它是不同activity間的橋梁。Intent也可以被認(rèn)為是一種概括操作行為的數(shù)據(jù)結(jié)構(gòu)

30、,它主要包括action (動(dòng)作)和data(數(shù)據(jù))兩部分,此外它還具有一些附加屬性如category(intent種類)、type (數(shù)據(jù)類型)等。常用的Intent方法有intent() (構(gòu)造intent)、addcategory() (添加intent類型)、getAction()(獲取intent動(dòng)作)、getData()(獲取intent數(shù)據(jù))等。數(shù)據(jù)存取與共享機(jī)制ContentProvider: ContentProvider為應(yīng)用程序提供一些訪問方法,包括: Query(Uri, String , String,String , String, String, String)(

31、數(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存儲(chǔ)的數(shù)據(jù)類型,在執(zhí)行訪問方法時(shí)都需依據(jù)Uri作為路徑標(biāo)識(shí)來確定要訪問哪個(gè)ContentProvider20。后臺(tái)服務(wù)Service: Service是運(yùn)行在后臺(tái)的應(yīng)用程

32、序組件,不直接與用戶交互。當(dāng)前活動(dòng)程序可以使用Context. StartService()開啟一項(xiàng)后臺(tái)服務(wù),還可以通過Context. bindService()與后臺(tái)服務(wù)通信。Android的架構(gòu)是Linux核、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)行的。圖2-1Android架構(gòu)圖2.1.2 關(guān)鍵應(yīng)用程序Android平臺(tái)包含一些關(guān)鍵應(yīng)用程序,如收發(fā)客戶端程序、短信收發(fā)程序、日歷和網(wǎng)頁瀏覽器等,開發(fā)者可以在其平臺(tái)上開發(fā)更多有特色的應(yīng)用程序,所用開發(fā)語言是Java。

33、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虛

34、擬機(jī),它們有效地優(yōu)化了Java程序的運(yùn)行過程。所有的Android應(yīng)用都運(yùn)行在它自己的進(jìn)程里,該進(jìn)程是一個(gè)Dalvik虛擬機(jī)的實(shí)例,Dalvik被設(shè)計(jì)成能在一臺(tái)設(shè)備上高效的運(yùn)行多個(gè)虛擬機(jī)實(shí)例。Dalvik虛擬機(jī)的可執(zhí)行文件被封裝成Dalvik可執(zhí)行格式(.dex)。這是被優(yōu)化過的最小存依賴的格式。Java編譯器(dx工具)將注冊(cè)了的和運(yùn)行時(shí)用到的類編譯成.dex格式。Dalvik虛擬機(jī)依賴于底層Linux核提供的功能,如線程機(jī)制,和存管理機(jī)制等。2.1.5Linux核Android系統(tǒng)平臺(tái)是基于優(yōu)化了的Linux核,是其系統(tǒng)平臺(tái)的核心。它提供諸如存管理、進(jìn)程管理、設(shè)備驅(qū)動(dòng)等服務(wù),同時(shí)也是手機(jī)軟

35、硬件的連接層,提供了一個(gè)屏蔽層用于屏蔽硬件和上層軟件。2.2 Android應(yīng)用的構(gòu)成和工作機(jī)制對(duì)于一個(gè)Android應(yīng)用程序來說,是由Activity、 IntentReceiver 、Service、Content Provider四部分組成,但并不是每一個(gè)Android應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時(shí),需要在配置文件AndroidMainfestxml中進(jìn)行配置。這個(gè)配置文件是每個(gè)Android應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件、組件的功能以與必要條件等。2.2.1 ActivityActivity是構(gòu)成應(yīng)用程序中最重要的構(gòu)造塊,在Android應(yīng)用程序中,幾乎都是

36、通過Activity來與用戶進(jìn)行交互,所以Activity主要負(fù)責(zé)的就是創(chuàng)建與用戶進(jìn)行交互的顯示窗口,你可以在這些窗口里通過調(diào)用setContentView(View)方法來顯示你自己的用戶界面。活動(dòng)(Activity)在系統(tǒng)中以活動(dòng)棧的形式進(jìn)行管理。當(dāng)一個(gè)新的活動(dòng)啟動(dòng)后,被放到了棧頂,成為了運(yùn)行活動(dòng),而新活動(dòng)之前的活動(dòng)在活動(dòng)棧里總位于新活動(dòng)之下,直到新的活動(dòng)退出才重新回到前臺(tái)。從圖2-2可以看出,Activity有三個(gè)關(guān)鍵的循環(huán):(1)活動(dòng)的整個(gè)生命期:從首次調(diào)用onCreate(Bundle)開始,到最終調(diào)用onDestroyO結(jié)束。在onCreate()中進(jìn)行所有初始化,在onDestr

37、oyO時(shí)進(jìn)行清理工作,釋放資源。(2)活動(dòng)的可見生命期:從調(diào)用onStart()開始,到onStop()被調(diào)用為止。在這段時(shí)間,即使活動(dòng)不與用戶進(jìn)行交互,用戶也可以在屏幕上看到它。在這兩個(gè)方法調(diào)用之間,可以維護(hù)活動(dòng)顯示給用戶的資源。onStart()和onStop()方法可以多次調(diào)用,因?yàn)榛顒?dòng)隨時(shí)可以在可見和隱藏之間進(jìn)行轉(zhuǎn)換。(3)活動(dòng)的后臺(tái)生命期:從調(diào)用onResume()開始,到onPause()被調(diào)用為止。這段時(shí)間活動(dòng)處于其它所有活動(dòng)之前,并與用戶進(jìn)行交互。一個(gè)活動(dòng)可以不斷在resumed狀態(tài)和paused狀態(tài)之間變換。Android使用了Intent類來實(shí)現(xiàn)活動(dòng)之間的切換工作。Inte

38、nt負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉與的數(shù)據(jù)和附加數(shù)據(jù)進(jìn)行描述。根據(jù)Intent的描述,負(fù)責(zé)找到對(duì)應(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)用啟動(dòng)對(duì)應(yīng)的組件。間接Intent,沒有指定component屬性的Intent,則需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在所有的可用組件中,確定滿足此Intent的組件。圖2-2 Acti

39、vity狀態(tài)變換路徑圖2.2.2 Intent ReceiverIntent Receiver是用于對(duì)外部事件的響應(yīng),當(dāng)外部事件發(fā)生時(shí),會(huì)使用NotificationManager通知用戶。當(dāng)一個(gè)Intent Receiver被觸發(fā)時(shí),系統(tǒng)會(huì)在需要的時(shí)候啟動(dòng)對(duì)應(yīng)的應(yīng)用程序。如在本系統(tǒng)中,當(dāng)用戶正在其它界面進(jìn)行操作時(shí),有好友發(fā)送消息過來,就會(huì)以通知的形式發(fā)送到當(dāng)前界面的正上方來通知用戶。各種應(yīng)用還可以通過使用ContextBroadcastIntent()將它們的Intent Receiver廣播給其它的應(yīng)用程序,實(shí)現(xiàn)應(yīng)用之間的通訊。2.2.3 ServiceService是提供連續(xù)信息的應(yīng)用程

40、序。它是運(yùn)行于應(yīng)用程序后臺(tái)的服務(wù),在用戶進(jìn)行其它活動(dòng)的時(shí)候,這個(gè)服務(wù)將一直運(yùn)行在基于Android平臺(tái)的即時(shí)通訊系統(tǒng)的研究與實(shí)現(xiàn)后臺(tái),直到用戶停止該服務(wù)或服務(wù)運(yùn)行結(jié)束。本系統(tǒng)客戶端擴(kuò)展功能就是采用Service來進(jìn)行設(shè)計(jì)和開發(fā)的。2.2.4 Content ProviderContent Provider應(yīng)用程序能夠?qū)⑺鼈兊臄?shù)據(jù)保存到文件、SQL數(shù)據(jù)庫和其它的存儲(chǔ)設(shè)備中。當(dāng)應(yīng)用程序需要使用存儲(chǔ)設(shè)備中的數(shù)據(jù)時(shí),可以使用Content Provider來完成。使用Content Provider能夠靈活的替換底層使用的存儲(chǔ)設(shè)備,使開發(fā)者可以專著于應(yīng)用邏輯的開發(fā),不用考慮底層存儲(chǔ)設(shè)備的細(xì)節(jié),從而使應(yīng)

41、用系統(tǒng)具有良好的數(shù)據(jù)。3需求分析3.1功能需求分析根據(jù)用戶需求總結(jié)出來的反映了用戶需求的系統(tǒng)邏輯模型轉(zhuǎn)換成可以實(shí)施的物理模型,把整個(gè)設(shè)計(jì)劃分成單元,主要解決如何去做的問題,要想創(chuàng)建整個(gè)通訊錄首先要通過增加聯(lián)系人信息來創(chuàng)建通訊錄。整個(gè)應(yīng)用程序應(yīng)劃分為4個(gè)模塊,分別是程序啟動(dòng)、用戶界面、后臺(tái)服務(wù)和數(shù)據(jù)庫適配器,各模塊之間的關(guān)系如圖3-1所示:圖3-1 各模塊關(guān)系圖從上圖中不難看出,后臺(tái)服務(wù)是整個(gè)應(yīng)用程序的核心,主要是“數(shù)據(jù)獲取模塊”,負(fù)責(zé)周期性的從用戶輸入的容中獲取信息。后臺(tái)服務(wù)在程序啟動(dòng)時(shí)就由AppWidgetProvider啟動(dòng),也可由用戶界面通過startService()進(jìn)行啟動(dòng),啟動(dòng)后的

42、后臺(tái)服務(wù)將一直保持運(yùn)行狀態(tài)。同時(shí)用戶界面從數(shù)據(jù)庫中獲取文本信息。一方面可以避免因網(wǎng)絡(luò)通信不暢造成界面失去響應(yīng);另一方面,后臺(tái)服務(wù)可以與時(shí)更新數(shù)據(jù),以保證數(shù)據(jù)的準(zhǔn)確性。數(shù)據(jù)庫適配器封裝了所有對(duì)SQLite數(shù)據(jù)庫操作的方法,用戶界面和后臺(tái)服務(wù)會(huì)調(diào)用它來實(shí)現(xiàn)數(shù)據(jù)庫操作。在完成用戶界面設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)和模塊設(shè)計(jì)后,至此程序設(shè)計(jì)階段基本完成。文本編輯器中不同功能界面之間的切換,用戶可以通過點(diǎn)擊menu鍵來切換到不同的功能界面,不同功能界面的切換如圖3-2。圖3-2 不同功能界面切換3.2性能需求分析手機(jī)軟件要有良好的用戶體驗(yàn),良好的用戶體驗(yàn)體現(xiàn)在以下幾個(gè)方面:(1)界面友好用戶界面要簡(jiǎn)潔直觀,設(shè)計(jì)合理,

43、方便用戶操作,讓用戶操作起來比較舒服,并且UI視覺效應(yīng)好。(2)快速響應(yīng)快速處理用戶的輸入或請(qǐng)求,對(duì)于需要長時(shí)間處理的部分,在其處理時(shí)可以給用戶一個(gè)提示,告知用戶該軟件正在運(yùn)行。(3)無縫性一個(gè)常見的無縫問題就是一個(gè)應(yīng)用的后臺(tái)進(jìn)程(如service或broadcast receiver)對(duì)某事件作出響應(yīng)而彈出對(duì)話框,這看起來并無大礙,特別是當(dāng)我在模擬器上單獨(dú)地構(gòu)建和測(cè)試系統(tǒng)時(shí)。然而,當(dāng)我的應(yīng)用在真正的設(shè)備上運(yùn)行,后臺(tái)線程顯示對(duì)話框時(shí),我的應(yīng)用當(dāng)時(shí)可能沒有獲得用戶焦點(diǎn)。這就會(huì)出現(xiàn)我的應(yīng)用會(huì)在活動(dòng)的應(yīng)用后面顯示對(duì)話框,或者從當(dāng)前應(yīng)用中獲得焦點(diǎn)并顯示對(duì)話框的情況,而管論當(dāng)時(shí)用戶正在做什么(如正在打等

44、)。那樣的行為可能對(duì)我的應(yīng)用或用戶不起作用。為了避免這些問題,我的應(yīng)用應(yīng)該利用適當(dāng)?shù)南到y(tǒng)資源Notification類來通知用戶。利用通知,我的應(yīng)用可以通過在狀態(tài)條上顯示一個(gè)圖標(biāo)來通知用戶事件已經(jīng)發(fā)生,而非獲得焦點(diǎn)和打斷用戶。3.3數(shù)據(jù)庫需求分析數(shù)據(jù)結(jié)構(gòu)組織和數(shù)據(jù)庫文件設(shè)計(jì)要根據(jù)不同用途使用要求等,來決定數(shù)據(jù)的整體組織形式等。數(shù)據(jù)庫,顧名思義,是存放數(shù)據(jù)的倉庫。只不過這個(gè)倉庫是在計(jì)算機(jī)存儲(chǔ)設(shè)備上,而且數(shù)據(jù)是按一定的格式存放的。數(shù)據(jù)庫中的數(shù)據(jù)按一定數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的重復(fù)度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并且可以被在一定圍的各種用戶共享。在涉與數(shù)據(jù)庫的軟件開發(fā)中,需要根據(jù)有待解決的

45、問題性質(zhì)、規(guī)模,以與所采用的前端程序創(chuàng)建工具等,做出合適的數(shù)據(jù)庫類型選擇,用戶數(shù)據(jù)庫是基于SQLite建立。SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比如Tcl、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款世界著名開源的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。這也是android的性能優(yōu)勢(shì)。該系統(tǒng)數(shù)據(jù)庫

46、的建立是完全在Android平臺(tái)上執(zhí)行Java代碼,通過DVM編譯來建立的,沒有什么輔助工具,由于整個(gè)SQLite數(shù)據(jù)庫是非可視化操作,所有對(duì)數(shù)據(jù)庫的操作都是通過執(zhí)行Java代碼實(shí)現(xiàn),在完成其查詢功能的時(shí)候沒有使用數(shù)據(jù)庫高級(jí)編程,較為麻煩的關(guān)節(jié)是在如何有機(jī)的將客戶端數(shù)據(jù)庫整體結(jié)構(gòu)實(shí)現(xiàn)出來,實(shí)現(xiàn)過程是無可視界面,也沒有數(shù)據(jù)庫輔助工具情況下,整個(gè)過程很抽象。3.4安全需求Android安全中的一個(gè)重要的設(shè)計(jì)點(diǎn)是在默認(rèn)的情況下應(yīng)用沒有權(quán)限執(zhí)行對(duì)其他應(yīng)用程序,操作系統(tǒng)或用戶的有害操作。這些操作包括讀取用戶的隱私數(shù)據(jù),訪問網(wǎng)絡(luò),保持設(shè)備活動(dòng)等等,應(yīng)用程序的進(jìn)程是一個(gè)安全的黑盒子,在沒有給它權(quán)限的時(shí)候它不

47、能干擾其他應(yīng)用程序。4功能設(shè)計(jì)4.1總體設(shè)計(jì)一個(gè)好的系統(tǒng)設(shè)計(jì)的步驟決定了程序是否能按照設(shè)計(jì)者的目的按時(shí)完成,是否能在規(guī)定的時(shí)間按照設(shè)計(jì)者的要求高質(zhì)量的完成程序必要的功能。并且按照標(biāo)準(zhǔn)的設(shè)計(jì)步驟對(duì)程序進(jìn)行調(diào)試,測(cè)試,以與后期的優(yōu)化完善,使程序更加具有健壯性和可用性。通過對(duì)通訊錄功能、系統(tǒng)模塊、用戶需求方面進(jìn)行全方位的分析制定開發(fā)流程,開發(fā)流程如圖4-1所示。圖4-1開發(fā)流程圖采用標(biāo)準(zhǔn)的開發(fā)流程確定系統(tǒng)具有用戶管理功能,聯(lián)系人增刪改功能,通訊功能,查找功能,備份等功能。系統(tǒng)的功能圖如4-2所示。增加查找刪除菜單詳細(xì)信息修改聯(lián)系人列表退出刪除顯示所有刪除所有備份返回圖4-2 系統(tǒng)功能圖通過對(duì)系統(tǒng)的功

48、能結(jié)構(gòu)的分析,設(shè)計(jì)后系統(tǒng)運(yùn)行流程是系統(tǒng)運(yùn)行后用戶將進(jìn)入通訊錄主界面,可以看到聯(lián)系人列表。通過點(diǎn)擊MENU界面的增加功能選項(xiàng)可以新增聯(lián)系人,通過查找按鈕可以對(duì)聯(lián)系人進(jìn)行、的操作,通過選擇聯(lián)系人并點(diǎn)擊刪除鍵可以對(duì)聯(lián)系人進(jìn)行刪除操作,通過菜單功能可以顯示所有聯(lián)系人、刪除所有聯(lián)系人、并備份SD卡功能。在聯(lián)系人詳細(xì)信息界面點(diǎn)擊MENU鍵彈出通訊功能框選擇撥打按鈕或者發(fā)信息發(fā)按鍵,系統(tǒng)的運(yùn)行流程圖如4-3所示。圖4-3 系統(tǒng)運(yùn)行流程4.2系統(tǒng)功能設(shè)計(jì)根據(jù)手機(jī)功能調(diào)查顯示,近十成消費(fèi)者都會(huì)使用手機(jī)通訊錄功能,隨著手機(jī)通訊錄功能的不斷加強(qiáng)與完善,手機(jī)通訊錄的意義,已不僅僅像薄一樣顯示,而是向著個(gè)性化、人性化的

49、方向發(fā)展。通訊錄從無到有,從英文到中文,經(jīng)歷了十幾年的發(fā)展歷程,今后的發(fā)展趨勢(shì)就是從通訊錄發(fā)展為名片夾,也就是在一個(gè)聯(lián)系人之下有手機(jī)、固話、公司、住址、備注等容。手機(jī)通訊錄扮演著與用戶直接交互并且提供服務(wù)的重要角色,它需要提供良好的用戶體驗(yàn),方便用戶操作,接收用戶的操作并把這些操作轉(zhuǎn)換成相應(yīng)的命令,采用用戶活動(dòng)的方式完成各個(gè)服務(wù)的邏輯流程。其功能主要包括以下幾方面容。1、增加、刪除、編輯聯(lián)系人點(diǎn)擊通信錄界面中的增加按鈕,進(jìn)入增加聯(lián)系人界面。輸入聯(lián)系人的基本信息,并可根據(jù)用戶需求增加個(gè)性化信息如頭像、手機(jī)、辦公室、家庭、職務(wù)職稱、單位名稱、地址、郵政編碼、Email、其他聯(lián)系方式、備注這些信息,

50、單擊確認(rèn)返回主界面。點(diǎn)擊通信錄中一個(gè)已存在的聯(lián)系人,進(jìn)入聯(lián)系人編輯界面,可修改聯(lián)系人的資料或進(jìn)行刪除聯(lián)系人操作,完成后退回到主界面。對(duì)列表中聯(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)系人列表,用戶選擇一個(gè)聯(lián)系人進(jìn)入聯(lián)系人基本信息

51、頁面進(jìn)行其他操作;查詢完成,用戶按返回鍵返回主界面。3、通訊功能用戶在通訊錄選擇聯(lián)系人進(jìn)入聯(lián)系人詳細(xì)信息界面,這時(shí)點(diǎn)擊menu鍵打開通信功能框,選擇打、發(fā)信息還是發(fā)的功能進(jìn)行操作。4、菜單功能通過對(duì)menu按鍵的點(diǎn)擊,顯示底部菜單框,包含有增加、查找、刪除、菜單、返回功能,菜單按鍵則包含顯示所有、刪除所有、備份SD卡等實(shí)用功能。4.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)該程序數(shù)據(jù)庫是在Android平臺(tái)上執(zhí)行Java代碼,通過DVM編譯來建立的,由于整個(gè)SQLite數(shù)據(jù)庫是非可視化操作,因此所有對(duì)數(shù)據(jù)庫的操作都是通過執(zhí)行Java代碼實(shí)現(xiàn)。且表的設(shè)計(jì)也盡量?jī)?yōu)化,沒有錯(cuò)綜復(fù)雜的關(guān)系,每表都是獨(dú)立的,不存在任何約束,因此

52、數(shù)據(jù)庫也是獨(dú)立數(shù)據(jù)庫。本系統(tǒng)為了實(shí)現(xiàn)文本管理功能,需要建立文本信息表database,文本信息表database中需要包含的屬性有id,name,mobilephone,officephone,familyphone,address,emial,company,remark,imageid,文本信息表database如表4-1所示:表4-1 文本信息表database屬性數(shù)據(jù)類型說明_idInteger自動(dòng)增加的主鍵NameIntegerMobilephoneString 手機(jī)號(hào)OfficephoneString 辦公室號(hào)FamilyphoneString 家庭AddressString 地址

53、EmailStringCompanyString公司地址RemarkInteger標(biāo)記ImageidInteger圖片號(hào)5通訊錄實(shí)現(xiàn)5.1 Android開發(fā)平臺(tái)搭建Android的上層應(yīng)用程序是用Java語言開發(fā),同時(shí)還需要基于Dalvik虛擬機(jī),所以,Google公司推薦使用主流的Java繼承開發(fā)環(huán)境Eclipse。只有Eclipse還不夠,因?yàn)槭鞘褂肑ava語言進(jìn)行開發(fā),還應(yīng)該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的應(yīng)用程序開發(fā)和Java開發(fā)有較大區(qū)別的,所以還需要有Google提供的Android

54、SDK。同時(shí),還需要在Eclipse安裝ADT,為Android開發(fā)提供開發(fā)工具的升級(jí)或者變更,是Eclipse下開發(fā)工具的升級(jí)下載的工具。簡(jiǎn)言之,需要以下軟件,才能搭建Android開發(fā)環(huán)境,從而進(jìn)行Android應(yīng)用程序的開發(fā)。(1) Java SDK(2) Eclipse(3) Android SDK(4) ADTAndroid開發(fā)平臺(tái)搭建步驟:(1)首先到 /downloads/下載Eclipse集成開發(fā)環(huán)境并且解壓,這里推薦下載Java EE 集成版本。去java.sun./javase/downloads/index.jsp 站點(diǎn)下載SDK后安裝,下載dl.g

55、oogle./android/android-sdk-windows-1.5_r1.zip,Android SDK1.5后解壓。第一步下載工序就結(jié)束了。 (2)雙擊Eclipse解壓后目錄中的eclipse.exe然后啟動(dòng),選擇Eclipse菜單中的Help->Install New Software-> Available Software,點(diǎn)擊右側(cè)的“Add”輸入dl-ssl.google./android/eclipse/后確定,然后在“Work with”下拉菜單中選擇剛才輸入的網(wǎng)址。過一會(huì)就會(huì)出現(xiàn)一個(gè)Developer Tools選項(xiàng),勾上以后點(diǎn)擊Next以后Eclips

56、e會(huì)自動(dòng)網(wǎng)上查找Android 開發(fā)工具插件,然后要到Android DDMS和Android Development Tools,選中這兩個(gè)點(diǎn)擊Finish,Eclipse就會(huì)自動(dòng)下載并安裝Android插件了,最后會(huì)提示重啟Eclipse。(3)重啟后選擇Eclipse菜單中的Windows-> Preferences 在左側(cè)的Android項(xiàng)目中SDK Location中填入Android SDK解壓后的目錄,然后點(diǎn)擊Apply。(4)在Windows XP的系統(tǒng)變量中的path變量中添加一個(gè)值,該值指向解壓后的Android SDK目錄下的tools文件夾。5.2具體功能實(shí)現(xiàn)5.

57、2.1界面布局Android的資源文件保存在/res的子目錄中。其中/res/drawable/目錄中保存的是圖像文件,/res/values目錄中保存的是用來自定義字符串和顏色的文件,/res/xml目錄中保存的是XML格式的數(shù)據(jù)文件。所有在程序開發(fā)階段可以被調(diào)用的資源都保存在這些目錄中,在對(duì)界面進(jìn)行繪制時(shí)要考慮到不同手機(jī)屏幕大小可能不一樣,應(yīng)盡量兼容大多數(shù)手機(jī)屏幕尺寸,使之顯示無障礙。增加界面繪制代碼如下:<LinearLayoutxmlns:android="schemas.android./apk/res/android"android:layout_widt

58、h="fill_parent" /寬度為填充android:layout_height="fill_parent" /高度為填充android:orientation="vertical"> /方向?yàn)榇怪?lt;ScrollView android:layout_weight="4" /比重4:1android:id="+id/ScrollView1"android:layout_width="fill_parent" /寬度充滿父空間android:layout_height="wrap_content"/根據(jù)容決定高度android:scrollbars="vertical">/滾動(dòng)條方向?yàn)榇怪?lt;LinearLayout xmlns:android="schemas.android./apk/res/android"android:layout_width="fill_parent"android:layout_height=&qu

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論