版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、蘭 州 商 學 院本科生畢業(yè)論文(設計)論文(設計)題目: 基于Android系統(tǒng)的來 電防火墻設計與實現(xiàn) 學 院、 系: 信息工程學院 計算機科學與技術系 專 業(yè) (方 向): 電子信息工程 年 級、 班: 2007級電子信息工程 學 生 姓 名: 劉興永 指 導 教 師: 李海燕 2011 年 05 月 20 日聲 明 本人鄭重聲明:所呈交的畢業(yè)論文(設計)是本人在導師的指導下取得的成果。對本論文(設計)的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。因本畢業(yè)論文(設計)引起的法律結果完全由本人承擔。本畢業(yè)論文(設計)成果歸蘭州商學院所有。 特此聲明
2、0; 畢業(yè)論文(設計)作者簽名: 年 月 日 基于Android系統(tǒng)的來電防火墻設計與實現(xiàn)摘 要本設計是基于Android系統(tǒng)的智能手機來電防火墻,主要功能是過濾來電號碼。該系統(tǒng)包括來電攔截、攔截 的添加和修改、攔截 來電時的提示方式、攔截 的回撥。本系統(tǒng)作為手機來電處理的主要功能之一,它的設計直接影響到手機的性能和友好性,另外,Android是一個開放的操作系統(tǒng),它已被眾多的手機廠商采用,因此此系統(tǒng)可以應用于所有以Android為操作系統(tǒng)的智能手機上。此系統(tǒng)已經(jīng)過嚴格測試,運行穩(wěn)定、快捷,即將應用到本公司的產品上。關鍵詞Android Activ
3、ity Intent phoneManagerABSTRACTThe design is based on the Android Smart Phones that calls mobilephone firewall .The main function is to filter incoming phone number. The system includes call blocking, intercepting calls to add and modify, indicate ways to phone calls, and the phone back. The phone c
4、all processing system is designed to affect the performance and amity directly as one of the main functions, and the other way, Android is an free operating system, it has been used by a large number of mobile phone manufacturers , so it can be applied all the Android operating system for the Smart
5、Phone. This system has been rigorously tested, stable, fast and will be applied to product promotion very soon. Key Words Android,Activity,Intent,Phonemanager目 錄一、緒論1(一)研究背景及意義1(二)相關智能手機平臺的現(xiàn)狀分析11、Symbian 平臺22、Windows Mobile平臺23、PALM平臺34、Mac OS x平臺35、RIM 平臺46、OMS平臺57、J2ME平臺5(三)ANDROID的系統(tǒng)介紹6(四)ANDROID
6、平臺與其它平臺的比較8(五)本文的主要內容10二、需求分析10(一)功能分析11(二)性能需求12(三)數(shù)據(jù)需求12(四)安全需求12三、系統(tǒng)設計13(一)功能框架13(二)布局規(guī)劃及互動流程13(三)系統(tǒng)實現(xiàn)流程圖14(四)數(shù)據(jù)存儲實現(xiàn)151、設計數(shù)據(jù)庫及表結構162、設計SharePreference存儲16(五)安全需求設計16(六)ANDROID類庫171、 管理類 Telephonymanager172、 監(jiān)聽類 PhoneStateListener183、 服務類 ServiceState184、短信管理類 SmsManager185、INTENT19四、系統(tǒng)實現(xiàn)20(一)主界面及
7、菜單功能的實現(xiàn)20(二)黑名單列表TAB22(三)添加拒接來電23(四)設置TAB23(五) 狀態(tài)監(jiān)聽24五、結論25參 考 文 獻26致 謝27附 錄28基于Android系統(tǒng)的來電防火墻設計與實現(xiàn)一、緒論(一)研究背景及意義第三代數(shù)字通信(3G)技術的廣泛應用,為智能手機用戶帶來了更快的數(shù)據(jù)傳輸速率,智能手機不再僅僅是語音通訊的網(wǎng)絡終端,還將成為互聯(lián)網(wǎng)的通信終端。另外,智能手機正一步一步走進普通人的生活,這意味著很多的人將參與到互聯(lián)網(wǎng)中。然而,智能手機的普及也給人們的生活帶來了一些令人煩惱的事情,例如:匿名的短信和 及騷擾短信和騷擾 ,還有近幾年來比比皆是的 詐騙事件。基于以上的分析,設計
8、來電防火墻是非常具有實用價值的?,F(xiàn)在的手機生產商眾多,而操作系統(tǒng)不開源,對各種應用的支持不是很好。對運營商來講,往往需要對某類手機進行單獨開發(fā),成本無形增加很多。實現(xiàn)開源后,與運營商結成聯(lián)盟,將導致成本降低。目前,操作系統(tǒng)的成本占15%20%,這對消費者是一個很大的壓力,把成本降到零,這對消費者和運營商都有好處。為此,Google于2007年11月推出了一個專門為移動設備設計的軟件平臺Android。它的出現(xiàn)打破了這些格局,還提供給普通開發(fā)者非常靈活的設計平臺。本公司采用的開發(fā)平臺是Andriod平臺,本設計作為公司項目的一部分,因此也是基于此平臺。(二)相關智能手機平臺的現(xiàn)狀分析智能手機平臺
9、之爭已進入群雄爭霸的時代,新勢力的不斷崛起,使其不斷進步。因此,對智能手機平臺的研究及其發(fā)展是當前移動計算機技術發(fā)展中最為活躍的領域?,F(xiàn)在對相關智能手機平臺的現(xiàn)狀做了如下分析。1、Symbian 平臺Symbian OS1(中文譯音“塞班系統(tǒng)”)由諾基亞、索尼愛立信、摩托羅拉、西門子等幾家大型移動通訊設備商共同出資組建的一個合資公司,專門研究手機平臺。Symbian平臺在智能移動終端上擁有強大的應用程序以及通信能力,這都要歸功于它有一個非常健全的核心強大的對象導向系統(tǒng)、企業(yè)通用標準通信傳輸協(xié)議以及完美的Sun Java語言。Symbian機型所采用的硬件配置較低,且各類機型采用的處理器主頻較低
10、,雖然平臺可以使其獲得較高的處理效能,但是在多媒體等方面的表現(xiàn)依然不如人意。在多媒體方面,Symbian OS對主流的媒體格式的支持性較差。Symbian OS帶來了一種限制性的發(fā)展屏障。各個平臺之間第三方軟件不兼容,給用戶帶來了一定的不便。版本之間兼容性差也是Symbian OS需要改進的一個地方,每當新版本Symbian OS發(fā)布并有產品面世時,系統(tǒng)的兼容性便成了其發(fā)展的一個大敵。2、Windows Mobile平臺Windows Mobile1 系列平臺是在微軟計算機的Windows 平臺上變化而來的,因此,它們的操作界面非常相似。Windows Mobile 系列平臺功能更強大,大多具
11、備了音頻、視頻文件播放、上網(wǎng)沖浪、MSN聊天、電子郵件收發(fā)等功能。而且,支持該平臺的智能手機多數(shù)都采用了英特爾嵌入式處理器,主頻比較高。另外,采用該平臺的智能手機對硬件配置(如內存、存儲卡容量)上的要求比采用其它平臺的智能手機要高出許多,因此性能比較強勁,操作起來速度比較快。但是,此系列手機也有一定的缺點,如因配置較高、功能多而產生耗電量大、電池續(xù)航時間短、硬件成本高等缺點。3、PALM平臺PALM1 是3Com公司的Palm Computing部門開發(fā)的一種32位的嵌入式平臺,它的操作界面采用觸控式,差不多所有的控制選項都排列在屏幕上,使用觸控筆便可進行所有操作。作為一套極具開放性的平臺,開
12、發(fā)商向用戶免費提供PALM平臺的開發(fā)工具,允許用戶利用該工具在PALM平臺的基礎上編寫、修改相關軟件,使支持Palm的應用程序豐富多彩、應有盡有。由于Palm一直遵循Less More(少就是多)這一理念去設計,所以,與微軟推出的平臺要占有大量系統(tǒng)資源和存儲容量不同的是,它本身所占的內存極小,基于PALM平臺編寫的應用程序所占的空間也很小,通常只有幾十KB,所以基于PALM平臺的掌上電腦雖然只有幾兆的內存卻可以運行眾多的應用程序。但是,這么一來,它的功能就沒有那么多,例如不具有錄音功能、MP3播放功能等,如果你需要使用這些功能,就需要另外加入第三方軟件或硬件設備方可實現(xiàn)。另外,對于中國用戶而言
13、,它有一個不足之處是,它的操作平臺起初在中國銷售的產品仍然要使用中文外掛平臺,有相當部分依然是以英文界面為主,在一定程度上影響了基于PALM平臺的產品在中國市場的大面積進入。還有就是娛樂性比較差,操作比較困難,新手難于上手。4、Mac OS x平臺蘋果手機的平臺(Mac OS X)近幾年也是智能手機的一個新亮點,它已超過微軟躍居手機行業(yè)第二。Mac OS X 使用基于BSD Unix的內核,并帶有Unix風格的內存管理和搶占式多任務處理,大大改進內存管理,允許同時運行多款軟件,這實質上消除了一個程序崩潰導致其它程序崩潰的可能性。它還具有極度華麗的圖形用戶界面、極高的運行效率和穩(wěn)定安全性。但是,
14、這些新特征需要更多的系統(tǒng)資源,按官方的說法Mac OS X只能支持G3以上的新處理器(它在早期的G3處理器上執(zhí)行起來比較慢)。其中最具代表的平臺是iPhone,它是Mac OS 10.5的精簡版。iPhone使用基于ARM架構的中央處理器,而不是蘋果的麥金塔計算機使用的x86處理器(就像以前的PowerPC或MC680x0),它使用由PowerVR視屏卡渲染的OpenGLES1.1。因此,Mac OS X上的應用程序不能直接復制到iPhone OS上運行。它們需要針對iPhone OS的ARM重新編寫。還有就是蘋果至今仍沒有任何讓 iPhone運行Java的計劃。5、RIM 平臺黑莓(Blac
15、kberry)是智能手機,它是加拿大RIM公司推出的一種移動電子郵件系統(tǒng)終端,其特色是支持推動式電子郵件、手提 、文字短信、互聯(lián)網(wǎng) 、網(wǎng)頁瀏覽及其它無線咨詢服務。它采用RIM平臺,而RIM平臺基于Java平臺,運行極為穩(wěn)定流暢,對Java軟件兼容能力強,也有不錯的軟件資源。采用了標志性的滾輪設計,操作時非常方便。技術上來說,BlackBerry是一種采用雙向尋呼模式的移動郵件系統(tǒng),兼容現(xiàn)有的無線數(shù)據(jù)鏈路。BlackBerry.nterpriseSolution是一種領先的無線解決方案,可供移動專業(yè)人員用來實現(xiàn)與客戶、同事和業(yè)務運作所需的信息鏈接。這是一種經(jīng)證明為有效的優(yōu)秀平臺,它為世界各地的移
16、動用戶提供了與大量業(yè)務信息和通信的安全的無線連接。BlackBerry安全無線延伸到移動商業(yè)用戶的企業(yè)電子郵件賬戶,既使它們在辦公室外,也可輕松處理郵件,就像從沒有離開辦公桌。用戶可以在旅途中發(fā)送、接收、歸檔和刪除郵件、并閱讀電子郵件附件、支持格式有Microsoft Word、Microsoft Excel、Microsoft PowerPoint、AdobePDF、Corel WordPerfeet、HTML、ASCLL等等。BlackBerry解決方案的“始終在線”推入技術可以自動傳遞郵件,用戶不需要執(zhí)行任何操作就可接收通信,所以BlackBerry是移動電子郵件的巨無霸,比較適用于商務
17、人士,但在多媒體播放方面的功能非常弱。6、OMS平臺為了推動移動互聯(lián)網(wǎng)產業(yè)的發(fā)展,并保持中國移動對產業(yè)鏈的控制,在蘋果iPhone 以及谷歌Android平臺的啟發(fā)下,中國移動攜聯(lián)想推出自己的手機平臺OMS(Open Mobile System)。OMS同樣是基于Linux內核,采用Android源代碼,但在業(yè)務層和此前的谷歌手機完全不一樣,OMS將集成大量中國移動的業(yè)務。顯然中國移動并不愿意把采用該平臺的手機叫Gphone或谷歌手機,而是使用了新代號Ophone。7、J2ME平臺J2ME(Java Platform micro Edition)是Java語言專門針對嵌入式電子產品的版本,應用
18、在移動 、PDA、電視機頂盒以及其它資源受限的設備上,J2ME是目前移動設備上使用最廣泛的開發(fā)平臺。J2ME平臺由多種配置、簡表和可選包組成??梢园l(fā)現(xiàn)J2ME的應用是建立在JVM(或KVM)之上,而主機操作系統(tǒng)是位于J2ME平臺之外。這樣的設計一方面提供了跨操作系統(tǒng)的特性,主機操作系統(tǒng)可以是Symbian、Windows Mobile、和Linux,目前還不支持iPhone Mac OS 。另一方面J2ME雖然提供了統(tǒng)一的開發(fā)平臺,但是JVM的安全機制讓J2ME的應用程序不能調用本地系統(tǒng)資源。(三)ANDROID的系統(tǒng)介紹Android系統(tǒng)是Google公司推出的一款開放平臺,Android以
19、linux2.6為內核,系統(tǒng)穩(wěn)定安全,應用程序使用Java語言來開發(fā),縮短了軟件開發(fā)周期,現(xiàn)在已經(jīng)被許多的手機廠商采用。Android是一個真正意義上的開放性移動設備綜合平臺,它包括操作系統(tǒng)、用戶界面、中間件和一些關鍵的平臺應用,擁有移動 工作所需的全部軟件。Android最大特點在于它是一個開放的體系結構,具有非常好的開發(fā)和調試環(huán)境,而且還支持各種可擴展的用戶體驗,Android里面具有非常豐富的圖形系統(tǒng),提供對多媒體功能的支持和非常強大的瀏覽器。Android的主要特點體現(xiàn)在以下幾點2:(1)應用程序架構:在應用程序架構內已經(jīng)具備多種不同的基礎組件,在開發(fā)應用程序時,就可以直接調用這些組件
20、來使用,可以節(jié)省開發(fā)應用程序的心力及時間。(2)Dalvik虛擬機器:在Android平臺上所使用的Java虛擬機,不是Sun公司的標準Java虛擬機,而是使用Google自主開發(fā)的代號為Dalvik的虛擬機,它在保證API方面的兼容性的同時,針對移動手機進行了大幅度優(yōu)化,占用資源更小,運行效率更高。(3)集成的瀏覽器:集成的瀏覽器是Android內建的瀏覽器,是以WebKit的瀏覽引擎為基礎所開發(fā)的。WebKit是一個開源瀏覽器網(wǎng)頁排版引擎。配合Android手機的功能,可以在瀏覽網(wǎng)頁時,達到更好的效果。(4)優(yōu)化的繪圖能力:在程序里可以用到的繪圖功能分為2D和3D兩個方面。在2D方面,An
21、droid提供了一套特有的類庫(SGL);而在3D方面則是使用OpenGLES1.0(OpenGL for Embedded Systems)規(guī)范的類庫。它們是一種非??斓膱D形引擎,并且支持硬件加速。(5)SQLite數(shù)據(jù)庫:SQLite提供結構化的數(shù)據(jù)存取。SQLite是一款輕型的數(shù)據(jù)庫,它的實際目標是嵌入式,目前已經(jīng)在很多嵌入式產品中使用了它,它占用的資源很低。它能夠支持Windows、linux、Unix等主流的操作系統(tǒng),同時能夠跟很多程序語言相結合,比如PHP,Java等,還有ODBC接口,同樣比起Mysql,PostgreSQL來講,它的處理速度比它們都快。它無需安裝和管理配置,它是
22、一個存儲在單一磁盤文件中的完整數(shù)據(jù)庫,占有空間只有250KB,但支持數(shù)據(jù)大小最高達2TB。雖然很小巧,但是支持的SQL語句毫不遜色于其它開源數(shù)據(jù)庫。同時它還支持事務功能和并發(fā)處理等等。SQLite也是一套開放性的關聯(lián)式資料庫。其特點在于輕量性方面的設計結構,更適合在手機上使用。(6)多媒體的支持能力:主要用于播放媒體文件。這同時包括對音頻和視頻的支持,并支持“播放URI地址(即統(tǒng)一資源識別地址)”模式在網(wǎng)絡上直接播放的流媒體。另外支持各種通用的靜態(tài)圖像格式,例如:JPG、PNG、GIF等格式。(7)GSM技術:Global System for Mobile Communication,即全球
23、移動通信系統(tǒng),是第二代移動通信技術,其開發(fā)目的是讓全球各地可以使用一個移動 網(wǎng)標準,讓用戶使用一部手機就能行遍全球。GSM技術是屬于手機硬件方面的發(fā)展,也是在開發(fā)Android應用程序時可以突出的特點之一。(8)藍牙、EDGE、3G和Wi-Fi:藍牙是一種新型、開放、低成本、短距離的無線連接技術,可取代短距離的電纜,實現(xiàn)話音和數(shù)據(jù)的無線傳輸。EDGE是一種從GSM到3G附近的頻段,該頻段目前尚屬無須許可的無線頻段。其目前可使用的標準有兩個,分別是IEEE和IEEE802.nb。這些通訊能力也是屬于手機硬件方面的發(fā)展,也是在開發(fā)Android應用程序時可以突出的特點之一。(9)豐富的開發(fā)環(huán)境:A
24、ndroid SDK提供了相當完善的程序開發(fā)環(huán)境,其開發(fā)環(huán)境包括設備模擬器、調試工具、內存和性能檢測等方面的評估功能,另外也提供可用于Eclipse IDE的開發(fā)插件界面。(四)ANDROID平臺與其它平臺的比較首先看一下Symbian,它存在著以下的致命不足:Symbian的主導者為諾基亞、索尼愛立信等傳統(tǒng)的手機廠商,因此雖然Symbian非常成熟,但是基本上還帶有濃厚的保守色彩,應用軟件與我們日常的PC軟件有較大的理念差異。再者Symbian與互聯(lián)網(wǎng)的結合給人感覺仍不夠緊密,互聯(lián)網(wǎng)應用更多只是作為陪襯存在。Android平臺與此相反,移動互聯(lián)網(wǎng)是它最重要的應用,無論系統(tǒng)內核、應用軟件還是硬
25、件設計,幾乎都是圍繞著快捷的移動互聯(lián)網(wǎng)應用所展開的,同時Android與PC平臺存在先天的基因聯(lián)系,可以很好的實現(xiàn)與PC設備的信息互享,更容易獲得用戶的廣泛認可。與Android擁有相同屬性的還有微軟的Windows Mobile,然而臃腫的Windows平臺飽受垢病,真正喜歡它的用戶并不多。至于iPhone,它只是蘋果公司的封閉平臺,用戶無法在iPhone中自行安裝應用程序。所有的東西都應該蘋果自己設計制造,從而確保利潤不被第三方分享。蘋果自己為iPhone開發(fā)了嵌入式系統(tǒng)以及完整的應用,但它干脆都不宣揚iPhone的軟件設計,而是將iPhone作為一個包含軟硬件賣點的手機產品出售。同樣,蘋
26、果式的奢華與時尚讓iPhone大獲成功,以至于成為手機市場的風向標。與蘋果相反,Android則是走完全開放的道路,這種模式的巨大優(yōu)點在PC軟件領域已為業(yè)界所公認。自由軟件高度活躍,錯誤可以被快速修改,新的應用和新的創(chuàng)意可以不斷出現(xiàn)。自由的屬性讓Android的錯誤可以快速的修正,從而提高系統(tǒng)的可靠性與安全性。Android平臺的另外一個優(yōu)勢是標準化和跨平臺。作為開發(fā)平臺,可以為任何手機廠商自由選擇一廠商對代碼做出修改,那么修改的結果必須迅速返回,確保系統(tǒng)的統(tǒng)一性。其次,Android的應用都基于Java開發(fā),Java具有一次編寫、到處運行的跨平臺屬性,換句話說,開發(fā)者只要編寫一遍程序,就能夠
27、實現(xiàn)在所有Android設備中運行,真正做到了硬件無關性,這顯然大幅度降低了開發(fā)者的負擔。再者,Android提供標準化的API和SDK開發(fā)包,手機廠商可以根據(jù)需要自行開發(fā)或收納已有的程序,從而打造出富有特色的Android平臺。這對手機廠商來說,它可以完全不管軟件技術之內的問題,快速整合出適合自己的一套平臺,然后將精力集中在硬件設計上面,可以在短時間內快速推出新品,對開發(fā)者來說,標準化的Android絕對是令人愉快的選擇。Android和操作系統(tǒng)進行了緊密地整合,從而可以方便地使用操作系統(tǒng)的功能。并且從圖形應用界面的開發(fā)上來看,Android可以使用配置文件來描述圖形控件的布局,用Java代
28、碼編寫實際響應代碼,比用AWT/Swing編寫圖形應用程序要方便得多。當然由于Android已經(jīng)提供了大量現(xiàn)成的應用API和應用工具,使得常規(guī)智能手機功能的開發(fā)變得非常容易和簡單。(五)本文的主要內容本文首先對目前的一些智能手機操作系統(tǒng)進行了介紹,并闡述了它們之間的差異。其次對系統(tǒng)的需求做了分析,包括功能分析、性能分析、數(shù)據(jù)分析、安全分析。隨后論述了系統(tǒng)的主要功能,采用流程圖的方式來表達使用者與Android應用程序的互動過程,并從互動過程中,引導出應用程序的畫面布局和Activity類的規(guī)劃。然后規(guī)劃出幕前布局和幕后Activity,以此作為程序撰寫的藍圖。最后設計了系統(tǒng)Activity之間
29、跳轉算法和系統(tǒng)數(shù)據(jù)庫,并論述了各功能模塊的主要實現(xiàn)過程。二、需求分析本系統(tǒng)設計采用的開發(fā)環(huán)境為Windows下Google Android開發(fā)平臺,所需軟件有3:(1)(2) Eclipse (3) Google Android SDK(4) ADT (一)功能分析語音通信是手機一直不變的功能 ,然而來電防火墻就是專門針對那些騷擾 和用戶不想接聽的來電而設計的,它需要提供友好的界面、方便的用戶操作界面,接收用戶的各項操作并將這些操作轉化成與之對應的命令,采用用戶活動的方式完成各個服務邏輯流程,其功能需求主要包含以下內容:(1)來電攔截系統(tǒng)能夠監(jiān)聽 狀態(tài)的改變,判斷是否有 呼入,然后判斷此來電是
30、不是需要屏蔽的來電。(2)拒接來電的添加用戶可以添加自己不想接聽的 ,當此 呼入時,系統(tǒng)將進行相應的處理。(3)拒接來電的回撥當用戶要呼叫存在拒接列表中的聯(lián)系人時,可以運用此功能,而不需用戶再次輸入呼叫人的 號碼。(4)編輯拒接聯(lián)系人當拒接列表中的聯(lián)系人的信息改變了,可以重新編輯拒接聯(lián)系人的信息。(5)刪除聯(lián)系人當不想再將此聯(lián)系人作為拒接的對象,就可以運用此功能將它刪除。(二)性能需求手機應用程序需要提供良好的用戶體驗。良好的用戶體驗體現(xiàn)在以下幾點:(1)界面友好用戶界面簡單直觀,并且易于操作。(2)快速響應快速處理用戶的輸入或請求,對于有些需要較多時間的應用程序,可以在它處理時 ,給用戶一個
31、提示,讓用戶知道程序還在運行中。(3)無縫性Android應用程序模型的構建是能夠允許用戶在不同的應用程序之間進行流暢的切換。所以當用戶正在做一些其它的事情,如在接 或查看地圖時,SMS服務每次都在短信收到時彈出一個對話框,這很快就會使用戶崩潰,需要引入通知機制,來使用戶能夠自己控制。(三)數(shù)據(jù)需求(1)添加界面需輸入需要拒接的來電號碼。(2)開啟應用程序時需要輸入用戶名和密碼。(四)安全需求Android安全中的一個重要的設計是在默認情況下應用程序沒有權限執(zhí)行其它應用程序、操作系統(tǒng)或用戶的有害操作。這些操作包括讀/寫用戶的隱私數(shù)據(jù)。應用程序的進程是一個安全的黑盒子,它不能干擾其它應用程序,除
32、非給它聲明權限。三、系統(tǒng)設計(一)功能框架在設計系統(tǒng)的功能框架時,主要分為顯示需要攔截的號碼、添加新的攔截號碼、系統(tǒng)設置。系統(tǒng)功能模塊如圖3-1所示。圖 3-1 系統(tǒng)功能模塊(1)黑名單列表模塊功能:顯示存在于黑名單數(shù)據(jù)庫中的聯(lián)系人和聯(lián)系人的 。(2)添加聯(lián)系人功能:向黑名單數(shù)據(jù)庫中添加新的聯(lián)系人,同時在 本數(shù)據(jù)庫中將對應的聯(lián)系人刪除。(3)設置模塊功能:設置當黑名單數(shù)據(jù)庫中的聯(lián)系人來電時提示用戶的方式,以及開啟來電防火墻應用程序時用戶密碼的修改。(二)布局規(guī)劃及互動流程一個系統(tǒng)通常會用多個畫面來與使用者進行溝通。用Used Case 圖來表達使用者與Android應用程序的互動過程,從互動過
33、程中,已導出應用程序的畫面布局和Activity類的規(guī)劃,互動過程如圖 3-2所示。圖3-2 用例圖現(xiàn)在對系統(tǒng)中的未接列表、黑名單列表、添加、設置功能進行畫面布局和規(guī)劃。(三)系統(tǒng)實現(xiàn)流程圖啟動模擬器后,模擬器會自動加載指定的圖片,然后進入主界面,并在主界面中把圖顯示出來,而且會根據(jù)屏幕的大小自動調整顯示出的圖片。然后在菜單欄中可以選擇相應的標簽,并進入相應的界面,如果想退出相應的界面,可以按菜單鍵的返回鍵回到主界面?,F(xiàn)針對系統(tǒng)布局規(guī)劃和互動,設計出相應的流程圖如圖3-3所示。 圖 3-3 程序流程圖(四)數(shù)據(jù)存儲實現(xiàn)Android 提供了一些方式來存取數(shù)據(jù)2,4。一是文件方式:Android
34、可以將文件存儲在設備或其它移動媒介上。二是數(shù)據(jù)庫方式:Android有SQLite數(shù)據(jù)庫的API。應用程序可以創(chuàng)建和使用SQLite數(shù)據(jù)庫。三是網(wǎng)絡方式:Android還支持使用網(wǎng)絡存取數(shù)據(jù)的方式。除此之外,Android還可以向其它應用程序請求并獲得數(shù)據(jù)。本系統(tǒng)采用SQLite數(shù)據(jù)庫的方式來存取數(shù)據(jù),它只有表格一種數(shù)據(jù)結構。在這里只需創(chuàng)建一張能保存需要攔截的聯(lián)系人表,當然以后可以根據(jù)需求與功能的完善和增加,可以對數(shù)據(jù)庫進行升級。1、設計數(shù)據(jù)庫及表結構按照需求分析,設計數(shù)據(jù)庫和表的結構如表3-1所示。表 3-1 blackcontact表的結構描述屬性類型含義備注idINTEGER主鍵IDna
35、metext拒接聯(lián)系人姓名numbertext拒接聯(lián)系人號碼備注text拒接聯(lián)系人備注描述文字2、設計SharePreference存儲SharePreference是Android提供用來存儲一些簡單配置信息的一種機制。針對此程序需要存儲對應用程序的設置信息,其它類似的數(shù)據(jù)等需要的時候再添加。(五)安全需求設計(1)權限命名一個基本的Android應用程序沒有與其相關聯(lián)的權限,意味著它不能做任何影響用戶體驗或設備中數(shù)據(jù)的有害操作。在應用程序需要時,可在Androidmanifest.xml文件中列舉一個或更多的<uses-permission>標簽來聲明此權限。通過Android
36、mainfest.xml文件可以設置高級權限,用來限制訪問組件或應用程序。所以如果需要訪問某組件,需要在這里聲明一個權限,現(xiàn)對跟本系統(tǒng)有關的組件權限作以下說明。 ()()期間要經(jīng)過檢查;如果調用者沒有請求權限,那么會為調用拋出一個安全異常。 BroadcastReceiver權限(使用<receiver>標簽)()返回后此權限將被檢查,同時系統(tǒng)設法將廣播遞送至相關接收器。因此,權限失敗者將會導致拋回給調用者一個異常,它()支持一個權限,使其控制能夠遞送廣播至已登記節(jié)目接收器的組件或應用程序。(六)ANDROID類庫Android平臺提供了一個專門的 功能類庫android.tele
37、phony來支持 服務的應用程序的開發(fā),Android.telephony包含了一套與 相關的類,它們分別是 管理類Telephonymanager、 狀態(tài)監(jiān)聽類PhoneStateListener、 位置類CellLocation、信號強度類SignalStrength、 服務類ServiceState 、短信管理類SmsManager。1、 管理類 Telephonymanager 管理類Telephonymanager用來訪問 服務設備的一些信 息。Telephonymanager可使用的方法有: int getCallState() 獲得 狀態(tài)的常數(shù)。 CellLocation get
38、CellLocation() 獲得當前設備所在的地點。 Int getSimState() 獲得SIM卡的狀態(tài)常數(shù)。2、 監(jiān)聽類 PhoneStateListenerPhoneStateListener 是一個監(jiān)聽設備 狀態(tài)的類,包括服務狀態(tài)、信號強度、短信等待指示和其它的一些狀態(tài)。但是在訪問一些狀態(tài)時是需要有相應的訪問權限,這些權限是需要在mainfest 文件中聲明。 void onCallStateChanged(int state,string incomingNumber)當 狀態(tài)改變時此方法會回環(huán)調用。 Void onServiceStateChanged(ServiceState
39、 serviceState) 當設備的服務狀態(tài)改變時會調用此方法。 void onSignalStrengthChanged(int asu)當信號強度改變時就調用此方法。3、 服務類 ServiceState ServiceState(Parcel in) 通過parcel構造了一個ServiceState實例。 int getState() 獲取當前 服務的狀態(tài)。 Boolean getlsManualSelection()獲得當前網(wǎng)絡選擇模式是手動選擇還是自動選擇。4、短信管理類 SmsManager public ArrayList<String> divideMessag
40、e(String text)將短消息結成幾個分段,每個分段都不能大于網(wǎng)絡支持的最大消息的字節(jié)。public void sendMultipartTextMessage (String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent>sentIntents, ArrayList<PendingIntent> deliveryIntents) 將divideMessage(String test) 分割好的消息片段發(fā)送到指定的地點。 pu
41、blic void sendTextMessage (String destinationAddress, String scAddress,String text,PendingIntent sentIntent, PendingIntent deliveryIntent) 向指定的 號碼發(fā)送消息,destinationAddress為接收方號碼,scAddress為發(fā)送方 號碼,sentIntent 發(fā)送是否成功回執(zhí),deliveryintent為接收是否成功的回執(zhí)。5、INTENT Intent3,8,11 是一個將要執(zhí)行的動作進行抽象的描述,一般是作為參數(shù)來使用,由Intent來協(xié)助完
42、成android各個組件之間的通訊。比如說調用startActivity()來啟動一個activity,或者由broadcaseIntent()來傳遞給所有感興趣的BroadcaseReceiver, 再由startService()或者bindservice()來啟動一個后臺的service。所以可以看出來,intent主要是用來啟動其它的activity 或者service,所以可以將intent理解成activity之間的粘合劑。要在不同的activity之間傳遞數(shù)據(jù),就要在intent中包含相應的東西,一般來說數(shù)據(jù)中最基本的應該包括: Action :Action用來指明要實施的動作是
43、什么,如ACTION_VIEW, ACTION_EDIT等。 Data :Data是要事實的具體的數(shù)據(jù),一般由一個Uri變量來表示。 Category(類別): 這個選項指定了將要執(zhí)行的這個action的其它一些額外的信息,例如 LAUNCHER_CATEGORY 表示Intent 的接受者應該在Launcher中作為頂級應用出現(xiàn);而ALTERNATIVE_CATEGORY表示當前的Intent是一系列的可選動作中的一個,這些動作可以在同一塊數(shù)據(jù)上執(zhí)行。 Type(數(shù)據(jù)類型): 顯式指定Intent的數(shù)據(jù)類型(MIME)。一般Intent的數(shù)據(jù)類型能夠根據(jù)數(shù)據(jù)本身進行判定,但是通過設置這個屬性
44、,可以強制采用顯式指定的類型而不再進行推導。 component(組件): 指定Intent的目標組件的類名稱。通常 Android會根據(jù)Intent 中包含的其它屬性的信息,比如action、data、type、category進行查找,最終找到一個與之匹配的目標組件。但是,如果 component這個屬性被指定的話,將直接使用它指定的組件,而不再執(zhí)行上述查找過程。指定了這個屬性以后,Intent的其它所有屬性都是可選的。 extras(附加信息):是其它所有附加信息的集合。使用extras可以為組件提供擴展信息,比如,如果要執(zhí)行“發(fā)送電子郵件”這個動作,可以將電子郵件的標題、正文等保存在e
45、xtras里,傳給電子郵件發(fā)送組件。 四、系統(tǒng)實現(xiàn)(一)主界面及菜單功能的實現(xiàn)主界面使用FrameLayout布局,放置四個Tab組件,四個 Tab組件分別是:未接來電Tab、黑名單列表Tab、添加黑名單Tab、設置Tab。其Tab中顯示的標題采用“string/TabName”的形式顯示,這些TabName都定義在st文件中,主界面如圖4-1所示。圖 4-1 主界面在程序一開始時5,7,主框架就反向調用onCreate方法,調用onCreate()方法時,此函數(shù)首先正向調用父類Activity的onCreate()方法,先執(zhí)行父類的預設行為,然后才執(zhí)行自己的onCreate()方法的附加行為
46、。繼續(xù)執(zhí)行到showdialog(int DialogId),彈出一個Dialog對話框,當?shù)谝淮芜\行該程序時,要求用戶建立新的用戶名和用戶密碼,然后直接進入主界面。當再次運行時要求用戶輸入已建立的用戶名和密碼,如果用戶合法就進入主界面。開啟彈出的Dialog對話框采用將Activity的主題屬性theme設置為Translucent(透明),此設置在AndroidMainfest.xml文件中設置:<activity android:name=".Activitymain"android:theme="android:style/Theme.Translu
47、cent">當用戶是合法的就進入主界面,主界面的進入用Intent跳轉來實現(xiàn):Intent intent = new Intent(Activitymain.this,BlackActivity.class);startActivity(intent);主界面的四個Tab標簽是用TabHost類來創(chuàng)建和管理的:TabHost mTabHost = this.getTabHost();LayoutInflater.from(this).inflate(R.layout.main(),true); Intent mCalllogActivity = new Intent();(Bl
48、ackActivity.this, calllogContactsActivity.class);(identifier).setIndicator(getResources().getString(R.string.TabtitleId),getResources().getDrawable(R.drawable.TabIConId) ).setContent(Intent );Tab的標識字符串用newTabSpec來設置,setIndicator()設置Tab標題和Tab圖標。當我們點擊相應的Tab時就會執(zhí)行該Tab對應的Activity,即用setContent(Intent inte
49、nt)設置的Activity。(二)黑名單列表TAB主界面默認顯示的是黑名單列表,此列表是一個ListView形式的布局,列表里面的每一個元素的布局都是LinearLayout布局,LinearLayout布局中有兩個TextView組件,分別顯示聯(lián)系人姓名和聯(lián)系人的 號碼。在此界面中點擊相應的聯(lián)系人,可以對此聯(lián)系人進行回撥、編輯、刪除等操作。(三)添加拒接來電點擊添加拒接來電Tab,顯示添加拒接來電界面,此界面的布局采用線性布局LinearLayout來實現(xiàn)。此界面是由三組TextView和EditView組成,分別用于提示編輯框內輸入的信息和對應的信息編輯,以及兩個Button分別是“確定
50、”和“取消”,當點擊“確定”Button時將添加的聯(lián)系人存儲到拒接聯(lián)系人數(shù)據(jù)庫中,“取消”將填入的數(shù)據(jù)清空,且不存儲到數(shù)據(jù)庫中。(四)設置TAB點擊“設置”Tab進入設置界面,此界面是一個LinearLayout布局,此布局里邊包含了兩個RadioGroup分別用于拒接選擇和提示方式單一選擇,以及一個RadioButton來修改用戶登錄的密碼。此界面的顯示結果如圖4-2所示。圖 4-2 設置界面(五) 狀態(tài)監(jiān)聽由于要時刻監(jiān)聽 的當前狀態(tài),本系統(tǒng)利用廣播監(jiān)聽6來接收 狀態(tài)的改變。Public class PhoneBroadcastReceive extends BroadcastReceivP
51、ublic void Receive(Context context ,Intent intent) / TODO Auto-generated method stubpublic class CustomBroadListener extends PhoneStateListenerOverridepublic void onCallStateChanged(int state, String incomingNumber) / TODO Auto-generated method stub為了使不用開啟來電防火墻就可以監(jiān)聽 狀態(tài),將PhoneBroadcastReceive服務設置為開機自
52、動開啟11。<receiver android:name =".PhoneBroadCastRecive"><intent-filter ><action android:name=""></action><actionandroid:name="ent.action.BOOT_COMPLETED"></action></intent-filter></receiver>五、結論本文首先對目前智能手機的發(fā)展狀況作了分析
53、,并對目前應用的Symbian、windows mobile、Mac OS x和RIM等平臺的現(xiàn)狀進行了分析與比較,進而分析了Android平臺的系統(tǒng)建構和組件模型。最后通過在該平臺上設計和開發(fā)了一個來電防火墻服務,以此來驗證了該平臺的可用性。系統(tǒng)包括添加、未接記錄、黑名單記錄、設置等模塊。添加模塊可以加入新的拒接來電,未接記錄可以記錄未接聽的拒接來電,黑名單記錄記錄了所有的拒接來電,在此列表中可以對拒接聯(lián)系人進行編輯、刪除、回撥、全部刪除等操作。設置模塊可以對整個系統(tǒng)進行設置。本系統(tǒng)界面友好、操作簡單、快捷;系統(tǒng)經(jīng)過測試,可以穩(wěn)定地運行;系統(tǒng)基本實現(xiàn)了上述功能,可以滿足用戶的基本需要。但是本
54、系統(tǒng)在界面設計方面還不是很完美,以及在個別功能上還有不完善的地方,比如在來電時,由于Android 2.2 沒有直接供調用的掛機方法,所以不能直接實現(xiàn)直接掛機的功版本及之前的版本實現(xiàn)。除本文所列出的不足之處以外,應該還有不夠人性化的地方,懇請各位老師批評指正。參 考 文 獻1李惠,丁革建.智能手機操作系統(tǒng)概述J .電腦與電信,2009.(03):76-86.2靳巖.Android開發(fā)入門與實踐M.北京:人民郵電出版社,2009.3Reto Meier .Android高級編程M.北京:清華大學出版社,2010.4韓超.Android系統(tǒng)級深入開發(fā)移植與調試M.北京:電子工業(yè)出版社,2011.5
55、姚尚朗.Android開發(fā)入門與實踐M.北京:人民郵電出版社,2009.6楊豐盛.Android應用開發(fā)揭秘M.北京:機械工業(yè)出版社,2010.7張海藩.軟件工程導論M.北京:機械工業(yè)出版社,2010.8張波,高朝勤,楊越.Android基礎教程M.北京:人民郵電出版社,2009.9Bruce Eckel .Thinking in JavaM.北京:機械工業(yè)出版社,2010.10Android 開發(fā)網(wǎng)原創(chuàng),EditText 中顯示影藏Android輸入法窗口DB/EL11 Android API幫助文檔Z.致 謝在論文完成之際,我要特別感謝我的指導老師李海燕老師的熱情關懷和悉心指導。在我撰寫論文的過程中,李老師傾注了大量的心血和汗水,無論是在論文的選題、構思和資料的收集方面,還是在論文的研究方法以及成文定稿方面,我都得到了李老師悉心細致的幫助,在此表示真誠的感謝。在論文的寫作過程中,我還得到了公司許多同事的支持和幫助,他們給我提出了很多寶貴的建議,也給了我莫大的鼓勵,在此致以誠摯的謝意。最后,向百忙之中抽出時間對本文進行評審并提出寶貴意見的各位專家、老師表示衷心的感謝! 附 錄/*開啟時彈出dialog實現(xiàn)*/package com.ghong.black;import android.app.Activity;import android.app.Alert
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度新型鋁材特種定制購銷合同范本3篇
- 二零二五年度車輛抵押借款合同(含車輛保險理賠)4篇
- 二零二五版城市景觀照明工程設計施工合同范本4篇
- 專項服務協(xié)議知識產權維護說明一
- 二零二五年度家電租賃服務合同與2025年度維修維護保障合同4篇
- 2024年企業(yè)主要負責人安全培訓考試題(培優(yōu)A卷)
- 二零二五年度環(huán)保型變壓器研發(fā)、生產及安裝合作合同3篇
- 23年-24年項目管理人員安全培訓考試題【完整版】
- 2023年-2024年項目安全培訓考試題附完整答案【歷年真題】
- 二零二五版房地產租賃合同擔保及售后服務保障范本4篇
- 初級中學語文教師資格考試學科知識與教學能力試題及解答參考(2024年)
- 《帶一本書去讀研:研究生關鍵學術技能快速入門》筆記
- 人教版八年級數(shù)學下冊舉一反三專題17.6勾股定理章末八大題型總結(培優(yōu)篇)(學生版+解析)
- 2024屆上海高考語文課內古詩文背誦默寫篇目(精校版)
- DL-T5024-2020電力工程地基處理技術規(guī)程
- 2024年度-美團新騎手入門培訓
- 初中數(shù)學要背誦記憶知識點(概念+公式)
- 駕照體檢表完整版本
- 農產品農藥殘留檢測及風險評估
- 農村高中思想政治課時政教育研究的中期報告
- 20100927-宣化上人《愣嚴咒句偈疏解》(簡體全)
評論
0/150
提交評論