軟件工程畢業(yè)設(shè)計(論文)基于Android手機輔助系統(tǒng)_第1頁
軟件工程畢業(yè)設(shè)計(論文)基于Android手機輔助系統(tǒng)_第2頁
軟件工程畢業(yè)設(shè)計(論文)基于Android手機輔助系統(tǒng)_第3頁
軟件工程畢業(yè)設(shè)計(論文)基于Android手機輔助系統(tǒng)_第4頁
軟件工程畢業(yè)設(shè)計(論文)基于Android手機輔助系統(tǒng)_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、青島大學(xué)本科生畢業(yè)論文(設(shè)計) 方萌本科畢業(yè)論文(設(shè)計) 題 目: 基于android手機輔助系統(tǒng) 學(xué) 院: 國際學(xué)院 專 業(yè): 軟件工程 姓 名: 指導(dǎo)教師: 2011年 5月23日 目 錄第一章 序言11.1 設(shè)計背景11.2 設(shè)計目標11.2.1短信群發(fā)11.2.2來電管家21.2.3多彩手電筒21.2.4電蚊香21.3 項目設(shè)計原則31.3.1實用性原則31.3.2可控性原則31.3.3占用資源少的原則31.3.4易擴展性原則31.4設(shè)計框架3第二章 系統(tǒng)分析42.1 需求分析42.2 技術(shù)可行性42.2.1面向?qū)ο缶幊碳夹g(shù)42.2.2程序語言的選擇52.2.3操作可行性62.3 環(huán)境

2、可行性分析62.3.1軟件環(huán)境62.3.2硬件環(huán)境62.4 系統(tǒng)結(jié)構(gòu)可行性分析6第三章 系統(tǒng)設(shè)計83.1 總體設(shè)計83.2 數(shù)據(jù)庫設(shè)計83.2.1數(shù)據(jù)庫的需求分析83.2.2數(shù)據(jù)庫表的具體設(shè)計93.3 詳細設(shè)計103.3.1目標實現(xiàn)103.3.2具體設(shè)計103.4 數(shù)據(jù)模塊架構(gòu)圖113.5 各數(shù)據(jù)模塊詳細架構(gòu)123.5.1短信群發(fā)模塊文件架構(gòu)123.5.2來電管家模塊文件架構(gòu)123.5.3電蚊香模塊文件架構(gòu)133.5.4手電筒架構(gòu)13第四章 系統(tǒng)實現(xiàn)144.1主界面的實現(xiàn)144.2短信群發(fā)模塊實現(xiàn)194.3來電管家模塊實現(xiàn)414.4手電筒模塊實現(xiàn)484.5電蚊香模塊實現(xiàn)504.6開機啟動程序的

3、實現(xiàn)514.7系統(tǒng)展望52第五章 系統(tǒng)測試535.1 測試的定義和目的535.2 測試的方法535.3測試發(fā)現(xiàn)的問題及解決辦法535.3.1短信群發(fā)測試535.3.2來電管家測試545.3.3其他模塊的測試54第六章 總結(jié)55謝 辭56參考文獻5759第一章 序言1.1 設(shè)計背景當今通訊領(lǐng)域中,手機成為日常生活必不可少的工具,隨著科學(xué)技術(shù)的發(fā)展,智能手機日趨發(fā)展成熟。2007年11月5日,android手機操作系統(tǒng)脫穎而出,僅推出兩年已超越稱霸十年的諾基亞塞班系統(tǒng),一躍成為全球最受歡迎的智能手機平臺之一。android系統(tǒng)不但應(yīng)用于智能手機,也在平板電腦市場急速擴張。該系統(tǒng)是基于linux內(nèi)核

4、的系統(tǒng),早期由google公司開發(fā),后由開放手持設(shè)備聯(lián)盟(open handset alliance)開發(fā)。它采用了軟件堆層(software stack,又名以軟件疊層)的架構(gòu),主要分為三部分。底層linux內(nèi)核只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),部分程序以java編寫。android為開源系統(tǒng),開發(fā)靈活性更強,各種軟件層出不窮,發(fā)展前景十分廣闊。智能手機改變?nèi)藗兪褂檬謾C的習(xí)慣,也放大人們對手機的想象。對目前形式的分析和對未來的展望,手機系統(tǒng)已經(jīng)不僅限于通話和短信等內(nèi)容,手機擴展功能日益發(fā)展壯大,利用手機里的各種基本功能,可以拓展更多更實用的軟件,這不僅使用戶更方便的利用手機,

5、而且也激發(fā)了很多編程人員的創(chuàng)新思維。本程序就是利用android手機系統(tǒng)的各種功能實現(xiàn)有創(chuàng)意且實用的手機輔助系統(tǒng)。1.2 設(shè)計目標眾所周知,手機的各項功能都是圍繞用戶的需求而開發(fā)的,以下功能設(shè)計的實現(xiàn)就是按照人們生活中經(jīng)常用到的但系統(tǒng)中沒有的功能,從而為android系統(tǒng)提供更好的用戶體驗。1.2.1短信群發(fā)1)此項功能不僅可以正常發(fā)送短信,而且可以發(fā)送對方的稱謂。我們國家人民熱情好客,逢年過節(jié)祝福不斷。近幾年隨著移動事業(yè)的發(fā)展,以短信傳遞祝福的方式廣為流傳。而編輯短信逐條發(fā)送很麻煩,短信群發(fā)又感覺沒有誠意,如果可以帶上對方的姓名或昵稱發(fā)送,會讓被祝福者倍感親切。發(fā)送的姓名可以隨意更改,默認為

6、聯(lián)系薄里的姓名,選擇后可以改為其他昵稱。2)定時發(fā)送的功能。在緊張忙碌的工作學(xué)習(xí)生活中,難免會遇到待發(fā)送的重要信息被遺忘,或者同一時間有其他的事情要做而耽誤了短信的待發(fā)送。為了避免這些現(xiàn)象的發(fā)生,可以預(yù)先定時進行發(fā)送,而且不會影響非定時短信的發(fā)送。若定時信息未到時間,信息內(nèi)容、發(fā)送時間及聯(lián)系人可以增刪改查,以防止發(fā)送失誤帶來的尷尬。1.2.2來電管家1)自動回復(fù)功能。當用戶有急事來不及或者不方便接聽電話和短信,此功能可以幫用戶及時回復(fù)對方,以便讓對方知道本人的當前狀態(tài)或其他內(nèi)容。此功能可以選擇回復(fù)對象、回復(fù)內(nèi)容,也可以選擇對短信回復(fù)、對來電回復(fù)、對短信和來電都回復(fù)。當然,為了防止惡意來電,每次

7、啟用該功能后,無論短信還是來電,每人只限一次回復(fù)。2)翻轉(zhuǎn)靜音功能。這是模仿諾基亞手機的一項功能,對于如此暢銷的android系統(tǒng)而言,若沒有此功能確實是個遺憾。用過的人都很清楚此功能的趣味性和實用性,比如在會議室或者其他不方便使用鈴聲的場合,而忘了調(diào)成靜音模式,只要開啟該功能,當來電鈴聲響起時,就可以翻轉(zhuǎn)手機快速變?yōu)殪o音模式,從而有效防止打擾他人和避免自己的尷尬。1.2.3多彩手電筒此功能的實現(xiàn)也為該系統(tǒng)增添了趣味性和實用性。一般人們都不會隨身攜帶手電筒,除非必要的時候。但是如果沒有防備時,手頭沒有一個照明的東西,確實帶來危險和不便。而手機是人們生活中都會隨身攜帶的物品之一,如果安裝了該軟件

8、,只要打開屏幕,亮度會自動調(diào)到最大,這會有很好的照明效果。而且內(nèi)設(shè)了多種顏色供用戶選擇,其中有一種為紫色,可以用來模擬紫外線燈進行驗鈔等,雖然不能與真的紫外線燈媲美,但仍有其功效。1.2.4電蚊香炎熱的夏季,蚊蟲滋生快,被蚊子叮咬確實奇癢難忍,啟動該功能后,手機的音頻外設(shè)會放出讓蚊蟲難以忍受的頻率波段,從而達到驅(qū)蚊的效果;而人耳對此頻率的感應(yīng)能力不是很強。1.3 項目設(shè)計原則1.3.1實用性原則設(shè)計此軟件的初衷是方便用戶使用,本程序的各項功能都是圍繞用戶需求設(shè)計,實用性是此軟件的最基礎(chǔ)原則,圍繞這個基礎(chǔ)進行創(chuàng)新型擴展。1.3.2可控性原則為了方便用戶的使用,每個功能都可由用戶自主控制,參數(shù)也可

9、由用戶自定義,這就迎合了大部分人的使用習(xí)慣,充分體現(xiàn)以人為本。該原則的目的就是軟件適應(yīng)用戶,而不是用戶適應(yīng)軟件。1.3.3占用資源少的原則此軟件是安裝在手機操作系統(tǒng)上使用,因為目前的大部分手機cpu和內(nèi)存都比不上電腦的配置,如何節(jié)省資源開銷已經(jīng)成為手機編程中必不可少的環(huán)節(jié)。1.3.4易擴展性原則此軟件的架構(gòu)是按照可擴展性設(shè)計的,這樣做是為了方便以后升級和擴展更多更實用的功能,易于軟件優(yōu)化,從而使該軟件的靈活性增強,功能更加完善,運行更加穩(wěn)定。1.4設(shè)計框架此手機輔助系統(tǒng)采用java語言設(shè)計,在功能上分為四個模塊:短信群發(fā)模塊,來電管家模塊,手電筒模塊,電蚊香模塊。而每個模塊多由界面部分和功能部

10、分組成,除手電筒模塊外,其余模塊均有服務(wù)功能,即后臺運行機制。此系統(tǒng)主要由服務(wù)、廣播和多線程機制有機的統(tǒng)一于一個整體。短信群發(fā)模塊分為界面部分,聯(lián)系人讀取部分,修改列表部分,手機發(fā)送短信機制,定時機制等方面進行設(shè)計與實現(xiàn);來電管家模塊分自動回復(fù)和翻轉(zhuǎn)靜音兩大部分,自動回復(fù)從界面設(shè)計和廣播監(jiān)聽與后臺服務(wù)的結(jié)合進行闡述,翻轉(zhuǎn)靜音從手機擺放角度監(jiān)聽和廣播監(jiān)聽的結(jié)合進行闡述;手電筒模塊主要在屏幕亮度方面著手;電蚊香則從系統(tǒng)后臺播放音樂方面著手。在論文設(shè)計方面,采用從整體到細節(jié),從重點到難點的寫作思路對該系統(tǒng)的設(shè)計實現(xiàn)進行描述。首先分析了當今智能機產(chǎn)業(yè)的發(fā)展背景和前景,介紹了手機輔助系統(tǒng)對用戶工作和生活

11、的影響和用戶對該系統(tǒng)的需求,分析了實現(xiàn)本系統(tǒng)的可行性,而本文章重點內(nèi)容是手機輔助系統(tǒng)的設(shè)計和實現(xiàn)方法,最后對該系統(tǒng)各個功能模塊進行測試評價,論述該系統(tǒng)的優(yōu)缺點和對本軟件的前景展望。在本文中,短信群發(fā)和來電管家模塊將是主要的論述部分。第二章 系統(tǒng)分析2.1 需求分析在智能手機日益發(fā)展壯大的今天,手機輔助系統(tǒng)使智能手機功能的多樣化和人性化成為可能。通過手機輔助系統(tǒng),我們可以更方便的應(yīng)用和整合手機的各種軟硬件,拓展出更多更實用的功能。通過手機輔助系統(tǒng)中的短信群發(fā),我們可以更方便的發(fā)送帶有稱謂的短信,從而提升在人際關(guān)系中的友好程度和在好友圈中的受歡迎程度;通過手機輔助系統(tǒng)中的來電助手,我們可以隨心所欲

12、的定制自動回復(fù)功能,避免無人接聽給對方帶來的擔憂,使智能手機更加人性化;通過手機輔助系統(tǒng)中的手電筒,可以為我們照亮光線不好的環(huán)境,如無電燈的樓梯,這樣可以有效的避免黑暗為我們帶來的不便,而且又不必隨身攜帶手電,實現(xiàn)一機多用;通過手機輔助系統(tǒng)中的電蚊香,我們可以在多蚊蟲的環(huán)境中避免被蚊蟲叮咬而帶來的痛苦,從而使我們不必分散精力,提高工作和學(xué)習(xí)效率。2.2 技術(shù)可行性2.2.1面向?qū)ο缶幊碳夹g(shù)面向?qū)ο蟪绦蛟O(shè)計(object-oriented programming)是一種起源于六十年代,發(fā)展已經(jīng)將近三十年的程序設(shè)計思想。其自身理論已十分完善,并被多種面向?qū)ο蟪绦蛟O(shè)計語言(object-orient

13、ed programming language)實現(xiàn)。對象是對現(xiàn)實世界實體的模擬,由現(xiàn)實實體的過程或信息特性來定義。一個對象可被認為是一個把數(shù)據(jù)(屬性)和程序(方法)封裝在一起的實體,這個程序產(chǎn)生該對象的動作或?qū)λ邮艿降耐饨缧盘柕姆磻?yīng)。這些對象操作有時稱為方法。區(qū)別面向?qū)ο蟮拈_發(fā)和傳統(tǒng)過程的開發(fā)的要素有:對象識別和抽象、封裝、多態(tài)性和繼承。面向?qū)ο蟮暮诵氖菍︻惖膽?yīng)用。在本程序中大量用到面向?qū)ο蠹夹g(shù),每個功能的實現(xiàn)都離不開對以下類的繼承:activity(動作類)、services(服務(wù)類)和broadcast(廣播類)。這些類均在android sdk中提供接口。1) activity:an

14、droid系統(tǒng)與用戶進行交互的接口,用戶對android系統(tǒng)進行操作都是通過activity類來完成。此類要依附于界面,對用戶是可見的。2) services:與activity類似,區(qū)別在于不用依附于見面,可以后臺運行動作指令。3) broadcast:系統(tǒng)每運行一個事件都會觸發(fā)一個廣播,通過廣播監(jiān)聽器可以對相應(yīng)事件做出反應(yīng)。2.2.2程序語言的選擇n java mejava me(java platform,micro edition),這個版本以前稱之為 j2me。j2me 為在移動設(shè)備和嵌入式設(shè)備(比如手機、pda、電視機頂盒等)上運行的應(yīng)用程序提供一個健壯且靈活的環(huán)境。java me

15、 在用戶界面、網(wǎng)絡(luò)協(xié)議、安全模型等方面具有很強的靈活性和穩(wěn)定性?;?java me 規(guī)范的應(yīng)用程序只需編寫一次,就能夠用于許多設(shè)備,而且可以利用每個設(shè)備的本機功能。java語言提供類的繼承,android系統(tǒng)的編程就很好的利用了這一性質(zhì)??傊?,java語言是一個面向?qū)ο蟮某绦蛟O(shè)計語言。這種優(yōu)良的特性使java應(yīng)用程序具有無比的健壯性和靈活性,而且通過內(nèi)置的api(應(yīng)用程序接口)可大大節(jié)省資源開銷,提高編程效率。本系統(tǒng)是基于android開發(fā)平臺的軟件,因為android頂層的應(yīng)用軟件大部分都是用java語言開發(fā),而要與系統(tǒng)進行關(guān)聯(lián),不可避免的用到了android sdk提供的api,通過此a

16、pi可將該軟件與android系統(tǒng)有機的融合為一個整體。n xmlxml即可擴展標記語言,是一種簡單數(shù)據(jù)存儲語言,類似于html,都是標準通用標記語言。xml是在internet環(huán)境中跨平臺的,依賴于內(nèi)容的技術(shù),是當前處理結(jié)構(gòu)化文檔信息的有力工具。xml與html的不同點是:xml的主要作用是存儲數(shù)據(jù),而html是用來定義數(shù)據(jù)的。擴展標記語言xml使用一系列簡單的標記描述數(shù)據(jù),建立和保存數(shù)據(jù)比較方便。雖然xml占用的空間相對于二進制數(shù)據(jù)存儲占用的空間更多,但xml極其簡單易于掌握和使用。在android編程中,要用xml文件進行界面布局設(shè)置。本程序不僅用xml文件設(shè)置界面,也用它作為數(shù)據(jù)庫存儲

17、數(shù)據(jù)(preference存儲模式)。2.2.3操作可行性本系統(tǒng)只要求具有一定的手機操作經(jīng)驗,因為android系統(tǒng)本身操作就很簡單,本程序中全部的控件均繼承自android,所以用戶對控件本身的操作不會陌生。在本程序中,每進行一步操作都會有相應(yīng)的提示,而且每個功能界面都會提供幫助信息,只要有一點手機操作經(jīng)驗,看過提示后,對本軟件的操作就會非常清楚。2.3 環(huán)境可行性分析2.3.1軟件環(huán)境軟件運行環(huán)境:android操作系統(tǒng) 2.1 update1版本語言環(huán)境:簡體中文編譯環(huán)境:windows7 32bit操作系統(tǒng)編譯工具:eclipse 3.6+android sdk2.3.2硬件環(huán)境軟件測

18、試機型:三星gt-i5508編譯環(huán)境:聯(lián)想天逸 f41a, cpu intelcore2 1.67ghz,ram 2g2.4 系統(tǒng)結(jié)構(gòu)可行性分析android sdk 提供了一個視圖控件gridview,用于以網(wǎng)格的形式陳列內(nèi)容。本軟件利用此結(jié)構(gòu),以功能為單位將各圖標和名稱陳列于此視圖中,這種結(jié)構(gòu)的優(yōu)點是使軟件界面簡潔大方,對各功能一目了然,易于用戶操作,是一種人性化的界面設(shè)計格式;另一方面,這種結(jié)構(gòu)形式有利于軟件開發(fā)過程中進行軟件管理,增加新功能,刪除無用功能。第三章 系統(tǒng)設(shè)計3.1 總體設(shè)計本系統(tǒng)的主要任務(wù)是輔助手機用戶更方便的管理和使用手機的各項基本功能,主要分為一下幾個功能模塊:主界面

19、模塊,短信群發(fā)模塊,手機照明模塊,來電管理模塊,電蚊香模塊。模型結(jié)構(gòu)如圖3.1所示:手機輔助系統(tǒng)短信群發(fā)電蚊香主界面選擇聯(lián)系人修改稱謂短信發(fā)送定時系統(tǒng)刪除所選插入稱謂播放聲波手機照明選擇顏色來電管理自動回復(fù)翻轉(zhuǎn)靜音回復(fù)對象回復(fù)內(nèi)容來電動作翻轉(zhuǎn)后動作圖3.1 手機輔助系統(tǒng)結(jié)構(gòu)圖3.2 數(shù)據(jù)庫設(shè)計3.2.1數(shù)據(jù)庫的需求分析根據(jù)項目的需要,本系統(tǒng)將建立如下數(shù)據(jù)庫表單:來電管家界面表單(fm.app.aa_preferences.xml):用于存儲來電管家的設(shè)置參數(shù);電蚊香狀態(tài)表單(mospre.xml):用于存儲電蚊香功能的開啟狀態(tài);短信群發(fā)狀態(tài)表單(smsspre.xml):主要用于存儲定時發(fā)短信

20、的參數(shù);本程序狀態(tài)表單(aapre.xml):主要存儲本程序中各個功能的開啟狀態(tài),可使手機重啟后能繼續(xù)運行相應(yīng)程序。3.2.2數(shù)據(jù)庫表的具體設(shè)計表3.1來電管家界面表單(fm.app.aa_preferences.xml)鍵類型默認值描述key_manager_leave_checkbooleanfalse是否開啟自動回復(fù)key_manager_leave_edit_messagestringi am not here,please wait a moment回復(fù)內(nèi)容key_manager_leave_list_actionstringphone回復(fù)來電動作key_manager_leave_

21、list_humenstringfriends回復(fù)對象key_manager_overturn_checkbooleanfalse是否打開翻轉(zhuǎn)靜音key_manager_overturn_list_actionbooleanfalse翻轉(zhuǎn)后動作表3.2電蚊香狀態(tài)表單(mospre.xml)鍵類型默認值描述mos_statusint0是否開啟避蚊功能表3.3短信群發(fā)狀態(tài)表單(smsspre.xml)鍵類型默認值描述isinsertbooleanfalse是否插入稱謂istimerbooleanfalse是否定時發(fā)送message_beforestringnull稱謂前字符串message_aft

22、erstringnull稱謂后字符串yearint1900定時年monthint1定時月dayint1定時日hourint0定時小時minuteint0定時分鐘countint0選擇的聯(lián)系人數(shù)namestringnull選擇聯(lián)系人姓名phonestringnull選擇聯(lián)系人電話表3.4本程序狀態(tài)表單(aapre.xml)鍵類型默認值描述smss_timerbooleanfalse是否有定時發(fā)短信任務(wù)manager_leavebooleanfalse是否開啟自動回復(fù)manager_overturnbooleanfalse是否開啟翻轉(zhuǎn)靜音3.3 詳細設(shè)計 3.3.1目標實現(xiàn)本系統(tǒng)主要目的是輔助用戶

23、更方便地使用手機,突出實用功能。具體地講,本系統(tǒng)通過手機固有的接口,從短信功能、來電管理功能,照明功能、避蚊功能(播放功能)出發(fā),實現(xiàn)輔助作用,充分發(fā)揮智能機的優(yōu)點,將實用性盡可能擴展到最大。具體實現(xiàn)如下目標:l 短信群發(fā)功能l 手機照明功能l 自動回復(fù)功能l 翻轉(zhuǎn)靜音功能l 電蚊香功能l 可后臺運行,建立服務(wù)架構(gòu)l 重啟后仍然有效,實現(xiàn)開機啟動l 運行安全可靠穩(wěn)定l 占用盡可能少的資源l 適合各種手機屏幕分辨率l 對aandroid各種版本兼容性強3.3.2具體設(shè)計手機輔助系統(tǒng)是基于android 系統(tǒng)平臺下的應(yīng)用軟件,針對android手機用戶開發(fā)。主要的功能模塊有:短信群發(fā),來電管家,多

24、彩手電筒,電蚊香。以下是對各個功能模塊的具體設(shè)計:短信群發(fā):主要包括群發(fā)短信,定時群發(fā),可插入稱謂,對所選聯(lián)系人的刪除和修改操作。來電管家:對來電和短信自動回復(fù),可以自定義回復(fù)事件是來電還是短信,可以自定義回復(fù)內(nèi)容,可以自定義回復(fù)對象是好友還是全部回復(fù),重啟仍然可以正常運行。多彩手電筒:屏幕亮度為最大,避免手機進入待機狀態(tài),顏色可由用戶選擇,增加紫色驗鈔光。電蚊香:播放驅(qū)蚊聲波,可后臺運行,若功能打開,重啟后仍然有效。3.4 數(shù)據(jù)模塊架構(gòu)圖此圖為本軟件的總架構(gòu)圖,顯示了各個功能模塊之間的關(guān)系和后臺服務(wù)和前臺操作的關(guān)系, 簡單闡明了系統(tǒng)運行的機制,具體結(jié)構(gòu)如圖3.2所示:aa.java 主界面s

25、mss.java短信群發(fā)mos.java電蚊香manager.java來電管家light.java手電筒aabroadcast.java用于處理開機事件smsscontact.java選擇聯(lián)系人smssservice.java發(fā)送短信服務(wù)mosservice.java電蚊香服務(wù)managerservice.java自動回復(fù)服務(wù)manageroverturnservice.java翻轉(zhuǎn)靜音服務(wù)開機aapre.xml記錄狀態(tài)信息根據(jù)狀態(tài)信息啟動服務(wù)開機讀取狀態(tài)信息圖3.2 系統(tǒng)數(shù)據(jù)模塊架構(gòu)圖3.5 各數(shù)據(jù)模塊詳細架構(gòu)3.5.1短信群發(fā)模塊文件架構(gòu)短信群發(fā)模塊通過smsscontact.java調(diào)用

26、系統(tǒng)中的聯(lián)系人列表;當啟動定時服務(wù)時,通過alarmmanager觸發(fā)smssservice后臺服務(wù)發(fā)送短信,當觸發(fā)服務(wù)的同時,將開機項目表單中的短信定時服務(wù)狀態(tài)改為活動狀態(tài),如下圖3.3所示:直接發(fā)送定時發(fā)送smss.java短信群發(fā)smsscontact.java讀取聯(lián)系人列表aapre.xml開機啟動項表單smssservice.java后臺發(fā)短信服務(wù)alarmmanager定時返回聯(lián)系人數(shù)據(jù)發(fā)送短信給所選的聯(lián)系人圖3.3短信群發(fā)模塊運行架構(gòu)示意圖3.5.2來電管家模塊文件架構(gòu)來電管家模塊分為自動回復(fù)和翻轉(zhuǎn)靜音兩個功能,通過設(shè)置界面(preferencescreen)可由用戶直接啟動兩個

27、功能,對設(shè)置的更改觸發(fā)事件,運行相應(yīng)的服務(wù),并且更新開機啟動項表單的信息,以便開機后仍然可以正常運行。啟動自動回復(fù)功能后,服務(wù)中會建立用來監(jiān)聽來電或短信的廣播監(jiān)聽器,當來電或來短信時,程序讀取電話號碼,根據(jù)用戶的自定義設(shè)置進行相應(yīng)的回復(fù)動作;啟動翻轉(zhuǎn)靜音功能后,即啟動了含有監(jiān)聽來電廣播監(jiān)聽器的服務(wù),原理同上,當來電時,觸發(fā)來電廣播監(jiān)聽器,而其中又注冊了一個監(jiān)聽手機角度的類模塊,若此時手機角度小于-120°,即手機翻轉(zhuǎn)過來,就進行相應(yīng)的靜音操作。運行機制可用圖3.4表示:aapre.xml更新狀態(tài)列表manager.java來電管家manageroverturnservice.java

28、翻轉(zhuǎn)靜音服務(wù)managerservice.java自動回復(fù)服務(wù)來電話callreceiver來電廣播監(jiān)聽器smsreceiver短信廣播監(jiān)聽器來短信callreceiver來電廣播監(jiān)聽器msensorlistener手機角度監(jiān)聽器用戶將手機翻轉(zhuǎn)讀取電話號碼并回復(fù)短信手機靜音圖3.4來電管家模塊運行架構(gòu)示意圖3.5.3電蚊香模塊文件架構(gòu)電蚊香模塊的原理是通過系統(tǒng)從后臺循環(huán)播放一段音頻波段,此模塊設(shè)計比較簡單,運行架構(gòu)如下圖3.5所示:mos.java電蚊香模塊mosservice.java電蚊香服務(wù)aapre.xml服務(wù)狀態(tài)表單更新狀態(tài)表單驅(qū)趕蚊蟲圖3.5電蚊香模塊運行架構(gòu)示意圖3.5.4手電筒

29、架構(gòu)手電筒的實現(xiàn)較為簡單,啟用該功能后,程序首先保存當前的亮度,然后將亮度調(diào)到最大,并全屏顯示,背景顏色默認為白色。退出該功能后將屏幕亮度參數(shù)恢復(fù)到之前的值。運行機制如圖3.6所示:light.java手電筒模塊保存屏幕亮度值將屏幕亮度調(diào)為最大背景默認為白色開啟退出背景顏色可調(diào)根據(jù)之前保存的亮度因數(shù)恢復(fù)屏幕亮度手機照明圖3.6手電筒運行示意圖第四章 系統(tǒng)實現(xiàn)此系統(tǒng)分為四個模塊分別進行實現(xiàn),這些模塊既相互獨立,又相互聯(lián)系。所謂相互獨立,是指各功能之間是平行關(guān)系,功能之間沒有必然的聯(lián)系;所謂相互聯(lián)系,是指通屬于一個主界面控制,使整個系統(tǒng)成為一個有機的整體。下面分別介紹各模塊的實現(xiàn)代碼及效果圖。4.

30、1主界面的實現(xiàn)此部分的代碼在aa.java中,用來顯示所有功能模塊,以便進入相應(yīng)模塊進行操作。此界面采用gridview布局,使界面簡潔大方,一目了然,充分體現(xiàn)人性化設(shè)計理念。首先要建立一個gridview的適配器布局,用來定義gridview的格式,本程序中用上圖標下文字的顯示方式,此代碼在layout/grid.xml文件中,實現(xiàn)代碼如下:<linearlayout android:orientation="vertical" > <imageview android:id="+id/icon" /> <textview

31、 android:id="+id/text" /></linearlayout>建立gridview適配器文件(aagridviewadapter.java)/*創(chuàng)建gridview方法*/public view getview(int position, view convertview, viewgroup parent) layoutinflater factory=layoutinflater.from(_con);/*使用grid.xml定義每個item的layout*/view v=(view)factory.inflate(r.layout.

32、grid, null);/*取得view*/imageview iv=(imageview)v.findviewbyid(r.id.icon);textview tv=(textview)v.findviewbyid(r.id.text);/*設(shè)置顯示的image與文字*/iv.setimageresource(_iconsposition);tv.settext(_itemsposition);return v;建立主界面的布局,采用相對布局(relativelayout),在其中包含一個gridview,設(shè)置每行顯示的數(shù)量為3:<?xml version="1.0"

33、; encoding="utf-8"?><relativelayout xmlns: android:background="drawable/aabackground0"> <gridviewandroid:id="+id/gridview_aa" android:numcolumns="3"<!-顯示3列-> /></relativelayout>將做好的圖標存到工程文件夾下的res/drowable中,聲明圖標數(shù)組和相對應(yīng)的字符數(shù)組:/定義gridview

34、的圖標private int icons=r.drawable.message,r.drawable.light,r.drawable.manager,r.drawable.mos;/定義gridview的顯示文字private int items=r.string.aa_smss,r.string.aa_light,r.string.aa_manager,r.string.aa_mos;將適配器與圖標和文字進行連接gv=(gridview)findviewbyid(r.id.gridview_aa);/定義一個gridview對象 /*使用自定義的aagridviewadapter設(shè)置gri

35、dview里面的item內(nèi)容*/ aagridviewadapter gv_adapter=new aagridviewadapter(this,items,icons); gv.setadapter(gv_adapter);聲明一個click點擊事件,用于用戶點擊相應(yīng)圖標進入對應(yīng)的功能模塊,因為每個gridview都有一個position,我們可以用這個變量辨別用戶單擊的是哪個圖標:public void onitemclick(adapterview<?> parent, view v, int position,long arg3) intent intent=new int

36、ent();switch(position)case 0:/進入短信群發(fā)intent.setclass(aa.this,smss.class);startactivity(intent);break;case 1:/進入手電筒intent.setclass(aa.this,light.class);startactivity(intent);break;case 2:/進入通信管家intent.setclass(aa.this,manager.class);startactivity(intent);break;case 3:/進入電蚊香intent.setclass(aa.this,mos.

37、class);startactivity(intent);break;default:break;主界面的顯示部分到此結(jié)束,效果如圖4.1:圖4.1主界面的效果圖在主界面內(nèi)建立一個“關(guān)于”對話窗口,按menu鍵打開,里面存放軟件的信息。先聲明一個menu菜單:public boolean oncreateoptionsmenu(menu menu) / todo 等待其他選項加入menu.add(0, 0, 0, r.string.str_about);return super.oncreateoptionsmenu(menu);建立點擊事件,每個點擊對象都有一個id,在此只建立一個menu對

38、象,當點擊后打開關(guān)于對話窗口:public boolean onoptionsitemselected(menuitem item) / todo 等待其他選項動作加入super.onoptionsitemselected(item);switch(item.getitemid()case 0:helpdialog();/在此調(diào)用“關(guān)于”對話窗口break;return true;對話窗口的實現(xiàn)很簡單,實例化一個alertdialog對象即可:private void helpdialog()new alertdialog.builder(this).settitle(r.string.str

39、_about).setmessage(r.string.app_about).setpositivebutton(r.string.str_ok,new dialoginterface.onclicklistener()public void onclick(dialoginterface arg0, int arg1) ).show();顯示效果如圖4.2所示:圖4.2關(guān)于對話框的顯示需要注意的是,本程序的文本顯示內(nèi)容,如以上代碼中的“r.string.str_about”均存放在res/values/strings.xml文件里,這樣做的好處是便于更改文字內(nèi)容,可方便實現(xiàn)語言的轉(zhuǎn)換。當然,

40、目前只有中文,可根據(jù)需要,只要將該文件里的中文翻譯為其他語言即可更改為另一個語言版本的軟件。4.2短信群發(fā)模塊實現(xiàn)短信群發(fā)功能分一下幾個部分實現(xiàn):主界面部分,添加聯(lián)系人,聯(lián)系人稱謂的刪除和修改,短信群發(fā)系統(tǒng),插入聯(lián)系人稱謂,定時服務(wù)系統(tǒng)。此部分的主要功能是群發(fā)短信并可由用戶自定義是否發(fā)送稱謂,也可選擇定時發(fā)送,可實現(xiàn)定時發(fā)送與即時發(fā)送互不影響。·短信群發(fā)的主界面此功能模塊界面實現(xiàn)的主要難點在于listview的重寫方法,listview是以可滾動列表的形式顯示固定格式的內(nèi)容,在此模塊中,用以顯示已選好的聯(lián)系人姓名。首先是界面布局,是以相對布局(relativelayout)實現(xiàn)的。之

41、所以采用這種布局,是為了符合各個屏幕的分辨率,不會因為屏幕的大小而使其內(nèi)容的位置改變,符合大眾化的需求。代碼在smss.xml中:<relativelayout ><!- 采用相對關(guān)系布局 -><togglebutton<!-此控件的上邊緣和左邊緣與系統(tǒng)的上邊緣和左邊緣內(nèi)對齊->android:layout_alignparentright="true"android:layout_alignparenttop="true"/><button<!-此控件的上邊緣和左邊緣與系統(tǒng)的上邊緣和左邊緣內(nèi)對

42、齊->android:layout_alignparenttop="true"android:layout_alignparentleft="true"/>listview 所在的部分在“選擇聯(lián)系人”與“信息發(fā)送文本框”之間,scrollbar=“vertical”表示以垂直方式陳列: <linearlayout android:layout_below="id/btn_smss_select"android:layout_above="id/etxt_smss_messageback">&

43、lt;listview android:id="+id/smslv"android:drawselectorontop="false"android:scrollbars="vertical"> </listview></linearlayout></relativelayout>幾乎所有的自定義listview都要使用適配器定義格式,在此也不例外,文件為smssadapter.java。與之前的適配器建立步驟一樣,首先建立適配器布局文件,名為smslv.xml,同樣采用相對布局,格式為并列的

44、兩個textview:<relativelayout > <textview android:id="+id/txt_smss_name" android:layout_alignparentleft="true" /> <textview android:id="+id/txt_smss_report" android:layout_alignparentright="true" /></relativelayout>下面就要定義適配器,繼承系統(tǒng)的simpleada

45、pter類,引用上面提到的布局格式,代碼寫在smssadapter.java文件中:public view getview(int position, view convertview, viewgroup parent) if (convertview = null) convertview = minflater.inflate(r.layout.smslv, null);textview tn = (textview) convertview.findviewbyid(r.id.txt_smss_name);tn.settext(string) mlist.get(position).g

46、et(selected_name);textview tr = (textview) convertview.findviewbyid(r.id.txt_smss_report);tr.settext(string) mlist.get(position).get(send_report);return convertview;此時短信群發(fā)界面的已選擇聯(lián)系人列表建立完成了,這個listview中的內(nèi)容就是從選擇聯(lián)系人界面選擇的聯(lián)系人姓名。因為先要進入子頁面選擇聯(lián)系人,而后返回父窗體時顯示內(nèi)容,所以用startactivityforresult拋出,用此方法返回父窗體就會執(zhí)行onactivity

47、result()方法:startactivityforresult(intent,0);protected void onactivityresult(int requestcode, int resultcode, intent data) super.onactivityresult(requestcode, resultcode, data);listview = (listview)findviewbyid(r.id.smslv);switch(resultcode)case result_ok:default:break;此模式的原理是子頁面將選擇的內(nèi)容存入arraylistextr

48、a空間的變量中,然后用getstringarraylistextra將內(nèi)容取出,子頁面存入方法在接下來的部分中介紹,以下為父頁面取出記錄的內(nèi)容,記錄為所選的用戶名和相應(yīng)的電話號碼,取出后將內(nèi)容分別存放在arraylist變量name和phone中:name=data.getstringarraylistextra("str_name");phone=data.getstringarraylistextra("str_phone");name.trimtosize();/節(jié)省資源開銷phone.trimtosize();將用來顯示的arraylist(這里

49、實例化為al1)變量清空,以防重復(fù)顯示:al1.clear();定義哈希map,此格式變量以鍵值對的形式存儲內(nèi)容,下面用循環(huán)的方式分別將選出的聯(lián)系人姓名添加到al1中:for(int i=0;i<name.size();i+)/顯示選擇的聯(lián)系人姓名于列表listview中map<string, string> map = new hashmap<string, string>();map.put(selected_name, name.get(i);al1.add(map);將listview與它的適配器進行關(guān)聯(lián):string from = selected_na

50、me, send_report ; int to = r.id.txt_smss_name, r.id.txt_smss_report ; msmssadapter=new smssadapter(this, al1, r.layout.smslv, from, to); listview.setadapter(msmssadapter);break;這樣就把所選的內(nèi)容逐條顯示在listview中了。主界面效果及選擇聯(lián)系人后的效果如圖4.3所示: 圖4.3短信群發(fā)主界面。左圖為未選擇聯(lián)系人界面,右圖為選擇聯(lián)系人返回后的界面·選擇聯(lián)系人當在短信群發(fā)主頁面點擊“選擇聯(lián)系人”按鈕時,就會進

51、入選擇聯(lián)系人的界面,啟動此頁面繼承的activitysmsscontact,此activity在smsscontact.java中實現(xiàn)。首先實現(xiàn)進入選擇聯(lián)系人頁面,在androidsdk中要使一個activity啟動另一個activity的就是利用intent方法,格式如下:intent intent=new intent();intent.setclass(父類activity,子類activity);startactivityforresult(intent,0); 在smss(聯(lián)系人主界面)的activity中,用如下方法將活動拋給smsscontact類,此方法寫在“選擇聯(lián)系人”的點擊

52、事件中。當點擊“選擇聯(lián)系人”后,系統(tǒng)就會讀取聯(lián)系人數(shù)據(jù),然后將聯(lián)系人顯示與listview中,在這個過程中,系統(tǒng)會出現(xiàn)“假死”狀態(tài),所以,應(yīng)在這期間設(shè)置一個dialog窗口,用來提示用戶正在讀取數(shù)據(jù),而不是死機現(xiàn)象,這樣更體現(xiàn)出人性化的設(shè)計思想理念。首先定義dialog的標題和內(nèi)容:final charsequence strdialogtitle=getstring(r.string.dialog_smss_readcontacttitle);final charsequence strdialogbody=getstring(r.string.dialog_smss_readcontact

53、body);然后顯示dialog:/顯示dialogsendmsg_dialog=progressdialog.show(smss.this,strdialogtitle,strdialogbody,true);在顯示dialog后,啟動一個線程來調(diào)用選擇聯(lián)系人的activity,當完成對選擇聯(lián)系人窗口的啟動后,dialog銷毀,代碼如下: new thread(new runnable()public void run() /new一個intent對象,并制定classintent intent=new intent();intent.setclass(smss.this,smsscontact.class);startactivityforresult(intent,0);/此函數(shù)可以返回被叫acti

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論