基于javame的短信智能分類管理器的設(shè)計與實現(xiàn)畢業(yè)論文_第1頁
已閱讀1頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p>  基于JavaMe的短信智能分類</p><p><b>  管理器的設(shè)計與實現(xiàn)</b></p><p>  論文題目 基于JavaMe的短信智能分類管理器的設(shè)計與實現(xiàn)</p><p>  系 部 機電與信息工程學(xué)部 </p&g

2、t;<p>  專 業(yè) 網(wǎng)絡(luò)工程 </p><p>  年級班別 </p><p>  學(xué) 號 </p><p>  學(xué)生姓名

3、</p><p>  指導(dǎo)教師 </p><p>  2013 年 3 月</p><p><b>  摘 要</b></p><p>  移動通信業(yè)不斷壯大,隨著科技的不斷發(fā)展,Android手機的不斷普及,時尚的智能手機已逐漸成為服務(wù)的主要對象之一。同時

4、,手機短信服務(wù)的即時性和多樣性,為我們的智能手機短信服務(wù)提供了可靠的保證。</p><p>  作為智能手機中移動通信的短信業(yè)務(wù)的管理與日俱增,個性化和高效率的短信服務(wù)管理日益成為一個需要重視的問題。本次論文設(shè)計的短信智能分類管理器包括六個功能,即會話列表、文件夾視圖、群組、新建信息、提供了短息搜索機制、創(chuàng)建應(yīng)用程序的快捷圖標(biāo)。結(jié)合如今科技時代信息化智能化的實際需求,通過對手機短信智能分類管理的設(shè)計、基于方便、快

5、捷、高效的設(shè)計等方面的仿真研究,詳細(xì)探討了一個通過JavaM開發(fā)的手機應(yīng)用軟件的關(guān)鍵性問題。用戶通過設(shè)置能夠智能分類手機短信的信息,服務(wù)器通過分析得出關(guān)鍵字并在數(shù)據(jù)庫中查詢出短信、電話號碼等內(nèi)容,把搜索結(jié)果通過即時反饋給用戶。本系統(tǒng)利用Eclipse平臺和Android模擬器設(shè)計編碼,為手機用戶的科技智能服務(wù)提供了一種方便快捷的設(shè)計方式,給出了服務(wù)于短信分類管理器的設(shè)計解決方案。</p><p>  關(guān)鍵詞: A

6、ndroid,JavaMe,Eclipse,智能分類技術(shù)</p><p><b>  Abstract</b></p><p>  Nowadays, Mobile telecommunication industry is going from strength to strength. The Android phone is growing so popular

7、ity that stylish Smartphone has gradually become one of the main objects of service, which thanks to the continuous development of science and technology. In the meanwhile, the real-time and diversity of mobile phone sho

8、rt message service provide a reliable guarantee for Smartphone messaging services.</p><p>  As short message service in the mobile communications management o-f Smartphone mobile increasing, personalized and

9、 efficient service management has been taken seriously. Short message intelligent classification management of this paper includes six functions, the session list, the folder view, groups, new information, to provide a t

10、ext search mechanism and to create the application shortcut icon.Combined with the actual demand of intelligentialize and information in technology era, and through </p><p>  Key words: Android, JavaMe, Ecli

11、pse, Intelligent Classification Technology</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  目 錄III</b>

12、</p><p><b>  1 緒 論1</b></p><p><b>  1.1概述1</b></p><p>  1.1.1手機功能智能化概述1</p><p>  1.1.2 Android操作系統(tǒng)概述1</p><p>  1.1.3 Android系統(tǒng)

13、與其他系統(tǒng)比較2</p><p>  1.2本課題研究的目的和意義3</p><p>  2 Android功能架構(gòu)與機制4</p><p>  2.1 Android系統(tǒng)架構(gòu)4</p><p>  2.2 Android架構(gòu)功能介紹4</p><p>  2.2.1 Linux內(nèi)核層4</p>

14、<p>  2.2.2 中間層4</p><p>  2.2.3 應(yīng)用程序框架層5</p><p>  2.2.4 應(yīng)用程序?qū)?</p><p>  2.3 Android應(yīng)用構(gòu)成和工作機制5</p><p>  3 短信管理器開發(fā)環(huán)境和總設(shè)計7</p><p>  3.1管理器總體設(shè)計說明7

15、</p><p>  3.1.1總體結(jié)構(gòu)圖7</p><p>  3.1.2短信管理器作用說明8</p><p>  3.1.3管理器運行8</p><p>  3.2短信管理器開發(fā)環(huán)境9</p><p>  3.3開發(fā)軟件環(huán)境準(zhǔn)備10</p><p>  3.3.1設(shè)計需要準(zhǔn)備10

16、</p><p>  3.3.2使用Ec1ipse開發(fā)Android應(yīng)用10</p><p>  4 短信管理器詳細(xì)設(shè)計11</p><p>  4.1布局main.xml設(shè)計實現(xiàn)12</p><p>  4.2主界面設(shè)計實現(xiàn)14</p><p>  4.3會話列表模塊設(shè)計實現(xiàn)16</p>&l

17、t;p>  4.4文件夾視圖模塊設(shè)計實現(xiàn)18</p><p>  4.5組群模塊設(shè)計實現(xiàn)21</p><p>  4.6新建模塊設(shè)計實現(xiàn)22</p><p>  4.7短信搜索模塊設(shè)計實現(xiàn)24</p><p>  4.8創(chuàng)建快捷圖標(biāo)模塊設(shè)計實現(xiàn)25</p><p>  5 短信管理器測試27</

18、p><p>  5.1 Package Explorer組件27</p><p>  5.2 eclipse連接測試方法27</p><p>  5.2.1 Eclipse調(diào)試器28</p><p>  5.2.2 Android特有工具28</p><p>  5.2.3連接真機調(diào)試29</p>

19、<p>  5.3短信管理界面使用模擬29</p><p><b>  總 結(jié)36</b></p><p>  參 考 文 獻(xiàn)37</p><p><b>  附錄A38</b></p><p><b>  1 緒 論</b></p>

20、<p><b>  1.1概述</b></p><p>  1.1.1手機功能智能化概述</p><p>  智能中心是目前手機移動設(shè)備最有趣的部分,在當(dāng)今競爭激烈的移動市場,智能化也是創(chuàng)新發(fā)生幾率最高的地方。智能化技術(shù)市場的發(fā)展日新月異,應(yīng)用于多種方面,其中手機功能智能尤為突出。智能手機(Smartphone)像個人電腦一樣,具有獨立的操作系統(tǒng),可以由用戶

21、自行安裝軟件、游戲等第三方服務(wù)商提供的程序,通過此類程序來不斷對手機的功能進(jìn)行擴充,并可以通過移動通訊網(wǎng)絡(luò)來實現(xiàn)無線網(wǎng)絡(luò)接入。</p><p>  移動設(shè)備的普及化促使了當(dāng)今移動應(yīng)用營銷模式的推廣。目前中國智能手機發(fā)展態(tài)勢良好,但增長速度較為緩慢。各大操作系統(tǒng)之間的爭奪將更加突出,并逐漸以聯(lián)盟陣營的方式來推動智能手機的普及。它已經(jīng)逐漸深入到人們的生活并廣泛應(yīng)用于生活中,同時人們對智能手機的要求越來越高。智能化軟件

22、的廣泛使用,使得智能手機的精度越來越高,智能手機給用戶帶來了很多的方便,充足了用戶的生活,相信在不久的將來,因為智能設(shè)計技術(shù)的提高,智能手機的功能也會越來越高,用戶的滿意程度也會逐漸增加。</p><p>  國內(nèi)外智能手機信息目前功能還包括:短信分類管理,通常是為商務(wù)人士而設(shè)計,而全球商務(wù)最主要的聯(lián)絡(luò)方式不是電話而是短信消息,尤其是在貿(mào)易公司或全球性公司中信息消息是一個商務(wù)人士一天主要處理的工作內(nèi)容,而智能手機

23、第一需要支持的就是智能管理。</p><p>  1.1.2 Android操作系統(tǒng)概述</p><p>  安卓手機指的是有Android這個操作系統(tǒng)的手機,安卓一詞的本來是指“機器人”,同時也是Google安卓手機宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是首個為移動終端打造的真正開放和完整的移動軟件。安卓是一個基于Linux內(nèi)

24、核的操作系統(tǒng),它是一款手機系統(tǒng),現(xiàn)在流行的主流的手機系統(tǒng)之一。 </p><p>  Android以Java為編程語言,使接口到功能,都有層出不窮的變化,其安卓手機中Activity等同于J2ME的MIDlet,一個 Activity 類(class)負(fù)責(zé)創(chuàng)建視窗(window),一個活動中的Activity就是在前景模式,背景運行的程序叫做Service。兩者之間通過由ServiceConnection和AI

25、DL連結(jié),達(dá)到復(fù)數(shù)程序同時運行的效果。如果運行中的Activity全部畫面被其他Activity取代時,該Activity便被停止,甚至被系統(tǒng)清除。</p><p>  安卓手機平臺特色具有:開放性,掙脫運營商的束縛,豐富的硬件選擇,不受任何限制的開發(fā)商等特點。并且最大特點在于它是一個開放的體系架構(gòu),具有非常好的開發(fā)和調(diào)試環(huán)境,而且還支持各種可擴展的用戶體驗, Android里面具有非常豐富的圖形系統(tǒng), 對多媒體

26、的支持功能和非常強大的瀏覽器。</p><p>  1.1.3 Android系統(tǒng)與其他系統(tǒng)比較</p><p>  作為手機上面用的智能系統(tǒng),安卓的系統(tǒng)是新生系統(tǒng),界面比塞班更為華麗,比塞班的開源性更強,而相較于WM和黑莓系統(tǒng),則在第三方軟件方面更加豐富。目前安卓已經(jīng)成為唯一能和蘋果iOS系統(tǒng)分庭抗禮的系統(tǒng)了,憑借其流暢華麗的操作體驗和海量的應(yīng)用程序,成為成長最快的智能手機操作系統(tǒng)。&l

27、t;/p><p>  對比iPhone。運用iOS操作系統(tǒng),主要是給iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系統(tǒng)一樣,它也是以Darwin為基礎(chǔ)的。原本這個系統(tǒng)名為iPhoneOS,iOS的系統(tǒng)架構(gòu)分為四個層次:核心操作系統(tǒng)層,核心服務(wù)層,媒體層,可輕觸層。但它是蘋果的封閉平臺,用戶無法在iPhone中自行安裝應(yīng)用并且所有的東西都應(yīng)該由其設(shè)計人員設(shè)計而成,從而確保權(quán)益和技術(shù)

28、核心不外流。蘋果自己為iPhone開發(fā)了嵌入系統(tǒng)以及完整的應(yīng)用,但它不宣揚iPhone的軟件設(shè)計,而將iPhone作為包含軟硬件賣點的手機產(chǎn)品而銷售。與iPhone相反,Android則是走完全開放的道路,這種模式的巨大優(yōu)點在PC軟件領(lǐng)域已為業(yè)界所公認(rèn):自由軟件高度活躍,錯誤可以被快速修正,新的應(yīng)用、新的創(chuàng)意可以不斷出現(xiàn)。Android平臺的另外一個優(yōu)勢是標(biāo)準(zhǔn)化和跨平臺。</p><p>  對比Symbian。

29、它存在著以下的致命不足:Symbian的主導(dǎo)者為Nokia、Sony Ericsson等傳統(tǒng)的手機廠商,因此雖然Symbian非常成熟,多年來 Symbian 系統(tǒng)一直占據(jù)智能系統(tǒng)的市場霸主地位,系統(tǒng)能力和易用性等各方面很強。但它基本上固步自封依舊保守,應(yīng)用軟件與日常的PC應(yīng)用有較大的理念差異。另外Symbian與互聯(lián)網(wǎng)的結(jié)合給人感覺仍不夠緊密,互聯(lián)網(wǎng)應(yīng)用更多只是作為陪襯存在。Android平臺相反,移動互聯(lián)網(wǎng)是它最重要的應(yīng)用,無論系統(tǒng)

30、內(nèi)核、應(yīng)用軟件還是硬件設(shè)計,幾乎都是圍繞著快捷的移動互聯(lián)網(wǎng)應(yīng)用所展開,同時Android與PC平臺存在先天的基因聯(lián)系,可以很好的實現(xiàn)與PC設(shè)備的信息互享,更容易獲得用戶的廣泛認(rèn)可。與Android擁有相同屬性的還有微軟的Windows mobile。</p><p>  安卓和操作系統(tǒng)進(jìn)行了緊密的整合,平臺的開放性造就了其開發(fā)的無盡潛力,具備觸摸屏、高級圖形顯示和上網(wǎng)功能,應(yīng)用廣泛,界面強大,是一種融入全部Web

31、應(yīng)用的單一平臺??梢苑奖愕厥褂貌僮飨到y(tǒng)的功能,這與難于使用操作系統(tǒng)功能的J2ME相比,無疑對開發(fā)者有很大的吸引力。并且從圖形應(yīng)用界面的開發(fā)上面來看,Android可以使用配置文件來描述圖形控件的布局,用Java代碼編寫實際響應(yīng)代碼,這樣方便得多。當(dāng)然由于Android己經(jīng)提供了大量現(xiàn)成的應(yīng)用API和應(yīng)用工具,使得常規(guī)智能手機功能的開發(fā)變得非常容易和簡單。</p><p>  所以,對于目前的智能手機,最理智的選擇

32、應(yīng)該是安卓,最豪華的選擇應(yīng)該是蘋果,最滯后的選擇應(yīng)該是塞班。</p><p>  1.2本課題研究的目的和意義</p><p>  本課題的目的在于掌握J(rèn)ava手機應(yīng)用開發(fā)技術(shù)和移動軟件平臺開發(fā)技術(shù)。在以Java語言為基礎(chǔ),結(jié)合eclipse模擬開發(fā)平臺,采用Android模擬器平臺,利用Android官網(wǎng)提供的SDK程序,完成在Android平臺上運行的短信智能分類管理器,使其成為一款具

33、有一定實用性,多功能,易操作的手機應(yīng)用。Android是基于Linux+Java的手機操作系統(tǒng)平臺,XMPP是基于XML的開源的即時通訊協(xié)議,課題從實際應(yīng)用為目的出發(fā),提出了開發(fā)基于Android系統(tǒng)平臺的手機智能短信分類管理軟件。</p><p>  本課題的意義在于通過開發(fā)短信智能分類管理的手機應(yīng)用,實現(xiàn)于Android平臺系統(tǒng)的使用軟件,可以熟練應(yīng)用Android平臺提供的應(yīng)用程序接口,可以開發(fā)和制作相應(yīng)功

34、能的編譯操作,熟悉Android平臺上的各種應(yīng)用。</p><p>  2 Android功能架構(gòu)與機制</p><p>  2.1 Android系統(tǒng)架構(gòu)</p><p>  看待操作系統(tǒng)時的劃分時,可以先分為底層的LINUX KERNEL包含系統(tǒng)運行庫和內(nèi)核層,而上層的Android包含應(yīng)用層和應(yīng)用框架層。圖2.1顯示的是Android架構(gòu)的四個主要層架構(gòu)。&l

35、t;/p><p>  圖2.1 Android架構(gòu)</p><p>  2.2 Android架構(gòu)功能介紹</p><p>  2.2.1 Linux內(nèi)核層</p><p>  Android運行在linux kernel 2.6之上,但是把linux內(nèi)受GNU協(xié)議約束的部分做了取代,這樣在Android的程序可以用于商業(yè)目的。Linux 內(nèi)核是

36、硬件和軟件層之間的抽象層。 </p><p><b>  2.2.2 中間層</b></p><p>  中間件包括兩部分:核心庫和運行時。</p><p>  Android runtime運行環(huán)境下包含,Core Libraries 核心的開發(fā)源和Dalvik Virtual Machine虛擬機。核心庫包括,SurfaceManager顯

37、示系統(tǒng)管理庫,負(fù)責(zé)把2D或3D內(nèi)容顯示到屏幕;Media Framework媒體庫,負(fù)責(zé)支持圖像,支持多種視頻和音頻的錄制和回放;SQlite 數(shù)據(jù)庫,一個功能強大的輕量級嵌入式關(guān)系數(shù)據(jù)庫;WebKit瀏覽器引擎等。Dalvik虛擬機:區(qū)別于Java虛擬機的是,每一個Android 應(yīng)用程序都在它自己的進(jìn)程中運行,都有一個屬于自己的Dalvik 虛擬機,這一點可以讓系統(tǒng)在運行時可以達(dá)到優(yōu)化,程序間的影響大大降低。Dalvik虛擬機并非運

38、行Java字節(jié)碼,而是運行自己的字節(jié)碼。</p><p>  2.2.3 應(yīng)用程序框架層</p><p>  豐富而又可擴展性的視圖(Views),可以用來構(gòu)建應(yīng)用程序, 它包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons), 可嵌入的web 瀏覽器。</p><p>  內(nèi)容提供者(Content Providers

39、)使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫), 或者共享它們自己的數(shù)據(jù)。資源管理器(Resource Manager)提供非代碼資源的訪問,如本地字符串,圖形,和布局文件(layoutfiles)。通知管理器(Notification Manager)使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。活動管理器(Activity Manager)用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。</p>&l

40、t;p>  2.2.4 應(yīng)用程序?qū)?lt;/p><p>  Android 系統(tǒng)會內(nèi)置一些應(yīng)用程序包包括email 客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。</p><p>  2.3 Android應(yīng)用構(gòu)成和工作機制</p><p>  對于一個Android應(yīng)用程序來說,是由Activity、I

41、ntentReceiver、Service、Content Provider四部分組成,但并不是每一個Android應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時,需要在配置文件AndroidManifest.xml中進(jìn)行配置。這個配置文件是每個Android應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件、組件的功能以及必要條件等。Android應(yīng)用的構(gòu)成和工作流程如圖2.2。</p><p>  圖2.2 Andr

42、oid的構(gòu)成和工作流程</p><p>  3 短信管理器開發(fā)環(huán)境和總設(shè)計</p><p>  3.1管理器總體設(shè)計說明</p><p>  3.1.1總體結(jié)構(gòu)圖</p><p>  Android的界面是有布局和組件協(xié)同完成的,布局好比是建筑里的框架,而組件則相當(dāng)于建筑里的磚瓦。組件按照布局的要求依次排列,就組成了用戶所看見的界面。Andr

43、oid的五大布局分別是LinearLayout(線性布局)、FrameLayout(單幀布局)、RelativeLayout(相對布局)、AbsoluteLayout(絕對布局)和TableLayout(表格布局)。</p><p>  在短信管理器界面中,對外顯示的TabHost(外圍布局)內(nèi)含兩個垂直的標(biāo)簽(Tabweight和FrameLayout),因此需要設(shè)置一個LinearLayout(線性布局)如圖

44、3.1布局結(jié)構(gòu)。</p><p><b>  圖3.1 布局結(jié)構(gòu)</b></p><p>  外圍布局(TabHost)主要用來確定短信智能分類管理器布局界面。使用TabHost 可以在一個屏幕間進(jìn)行不同版面的切換。</p><p>  構(gòu)建tab的實現(xiàn),繼承TabActivity 類,可以使用android內(nèi)部定義好的.xml資源文件作容器文

45、件。也就是在代碼中使用getTabHost(), 有了容器,然后就需要為每個tab分配內(nèi)容。</p><p>  首先構(gòu)建一.xml文件LinearLayout(線性布局)。LinearLayout按照垂直或者水平的順序依次排列子元素,每一個子元素都位于前一個元素之后。LinearLayout中的子元素屬性android:layout_weight生效,它用于描述該子元素在剩余空間中占有的大小比例。</p&

46、gt;<p>  設(shè)計一下標(biāo)簽頁對應(yīng)的布局,采用FrameLayout作為根布局,每個標(biāo)簽頁面對應(yīng)一個子節(jié)點。一個LinearLayout布局垂直的標(biāo)簽,里面可以包含Tabweight和FrameLayou。當(dāng)當(dāng)前的Intent的tab獲得焦點的時候,TabHost會調(diào)用IntentContentStrategy的getContentView()方法,將要顯示的activit轉(zhuǎn)化為view顯示在Tabweight的下面。F

47、rameLayout整個界面被當(dāng)成一塊空白備用區(qū)域,所有的子元素都不能被指定放置的位置,它們統(tǒng)統(tǒng)放于這塊區(qū)域的左上角,并且后面的子元素直接覆蓋在前面的子元素之上,將前面的子元素部分和全部遮擋。顯示效果如第一個TextView被第二個TextView完全遮擋,第三個TextView遮擋了第二個TextView的部分位置??梢栽贔rameLayout里面添加view來作為tab的內(nèi)容只需要在create tabspce時候添加就可以了。&l

48、t;/p><p>  另外設(shè)計中,短信管理器使用本地的數(shù)據(jù)庫,需要通過模擬兩臺或以上的Android手機進(jìn)行試驗通信。</p><p>  3.1.2短信管理器作用說明</p><p>  短信智能分類管理器包括六個功能:</p><p>  1、會話列表模塊:通過異步查詢獲取會話數(shù)據(jù),不會導(dǎo)致anr異常,對于會話可以進(jìn)行單條和多條的刪除,查看會

49、話詳情。</p><p>  2、文件夾試圖模塊:對信息進(jìn)行了分類管理:收件箱 發(fā)件箱 已發(fā)送 草稿箱這四類,并且我們對信息進(jìn)行了日期分隔顯示。</p><p>  3、組群模塊:創(chuàng)建了群組數(shù)據(jù)庫,里面有兩張表:groups和thread_groups,groups是用來存放群組的。</p><p>  4、新建模塊:號碼輸入控件采用的是AutoCompelteTe

50、xtView透析filter的過濾機制。</p><p>  5、短信搜索模塊:應(yīng)用能在應(yīng)用的內(nèi)部任何一個activity進(jìn)行搜索,并且支持全局搜索。</p><p>  6、創(chuàng)建快捷圖標(biāo)模塊:創(chuàng)建圖標(biāo)的產(chǎn)生是采用了廣播機制,在launcher應(yīng)用里面存在創(chuàng)建快捷圖標(biāo)的廣播接受者,并且快捷圖標(biāo)的數(shù)據(jù)是以provider對外暴露的,該provider也是內(nèi)置在launcher應(yīng)用。</

51、p><p>  3.1.3 管理器運行</p><p>  短信管理器開始執(zhí)行后,直接進(jìn)入了系統(tǒng)的主界面,為了系統(tǒng)以后能擴展其他服務(wù),將主界面設(shè)置成一般界面,如圖3.2。</p><p>  圖3.2 管理器示意圖</p><p>  3.2短信管理器開發(fā)環(huán)境</p><p>  本次課題的短信管理軟件開發(fā)在Eclipse

52、上配置安卓應(yīng)用,Android系統(tǒng)是用Java語言來開發(fā)、撰寫應(yīng)用程序,但不使用Java運行時組件來執(zhí)行Java程序,而使用由Google自行研發(fā)的Android運行時組件來執(zhí)行程序。Android運行時組件包括兩個重要的部分,一個是核心類庫,另一個是Dalvik虛擬機。因此,開發(fā) Android 應(yīng)用程序的前提準(zhǔn)備配置Android SDK和安裝使用Eclipse IDE。使用Eclipse IDE和用于Eclipse的Android

53、 Developer Tools插件。</p><p>  Android應(yīng)用程序在Dalvik VM(非 Java 虛擬機)中編譯和執(zhí)行的。在Eclipse中用Java語言編程非常簡單;Eclipse提供一個豐富的Java環(huán)境,包括上下文敏感幫助和代碼提示。Java代碼通過編譯后,Android Developer Tools 可確保適當(dāng)?shù)貙⑺虬?,包?AndroidManifest.xml文件。</p

54、><p>  Eclipse的設(shè)計思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本內(nèi)核包括:圖形API (SWT/Jface), Java開發(fā)環(huán)境插件(JDT ),插件開發(fā)環(huán)境(PDE)等。在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實現(xiàn)它們。</p><p>  3.3開發(fā)軟件環(huán)境準(zhǔn)備</p>

55、<p>  3.3.1設(shè)計需要準(zhǔn)備</p><p>  Eclipse平臺:可以下載安裝 Eclipse Classic 的最新版本。</p><p>  Android Developer Tools:按照安裝說明安裝 Android Developer Tools(Eclipse 插件)。</p><p>  源代碼:本設(shè)計中的源代碼片段包括,Andr

56、oidManifest.xml(片段)。 這個文件是 Android 應(yīng)用程序的應(yīng)用程序部署描述符;IntentReceiver,演示IntentReceiver的實現(xiàn),這個類處理AndroidManifest.xml文件中IntentFilter標(biāo)記所公布的intent;Main.xml,這個文件包含Android活動所用的視覺元素或資源;R.java,這個文件是由Android Developer Tools自動生成的,它把視覺資源

57、 “連接” 到 Java 源代碼;AndroidManifest.xml(完整),這是完整的AndroidManifest.xml文件,包含每個重要元素的描述。</p><p>  3.3.2使用Ec1ipse開發(fā)Android應(yīng)用</p><p>  使用Eclipse IDE開發(fā)一個Android應(yīng)用。首先是創(chuàng)建一個Android工程,然后設(shè)置應(yīng)用啟動配置。然后可以編輯代碼,啟動,調(diào)試

58、應(yīng)用。</p><p>  1、創(chuàng)建一個Android工程。ADT插件提供了一個新的工程向?qū)椭焖俚慕ndroid工程和編輯現(xiàn)存的Android項目的代碼。按照下面的步驟建立Android工程:</p><p> ?。?)選擇File>New>project。</p><p> ?。?)選擇Android>Android project,點擊

59、Next。</p><p> ?。?)設(shè)置工程的用途:</p><p>  選擇create new project in workspace可以建立一個新的Android工程,輸入工程的名字,代碼的開發(fā)包的名字,應(yīng)用界面的類名字,應(yīng)用程序的標(biāo)題的名字。選擇create project from existing source可以根據(jù)現(xiàn)存的代碼建立一個工程.通過這個選項可以建立并運行現(xiàn)存的

60、Google提供的Example Application(在AndroidSDK的目錄中可以找到)。</p><p>  (4)點擊Finish。</p><p>  ADT插件將會為工程建立src/代碼文件存放的目錄、res/資源文件目錄和AndroidManifest.xml應(yīng)用工程的主配置文件。</p><p>  2、創(chuàng)建Android虛擬機</p&g

61、t;<p>  點擊windows>android SDK and AVD Manager,選中Virtual Devices,選擇new按鈕,填寫需要創(chuàng)建的name,并且選擇Target,從Android1.5-2.2版本。填寫虛擬機的sd卡內(nèi)存(如設(shè)置size為256MB),然后點擊Create AVD。就完成對應(yīng)版本的android虛擬機創(chuàng)建,如圖3.3。</p><p>  圖3.3創(chuàng)

62、建android虛擬機</p><p><b>  3、調(diào)試應(yīng)用程序。</b></p><p>  一旦建立了工程啟動配置就可以按照如下的步驟調(diào)試程序:從Eclipse的主菜單中選擇Run>Run或Run>Debug或者點擊工程文件右鍵選擇run as>Android Application。如果需要還可以重新配置啟動參數(shù),比如選擇其他的程序界面作為

63、啟動的主界面。</p><p>  4 短信管理器詳細(xì)設(shè)計</p><p>  短信管理器的軟件由多個功能部分組成,整體框架在總體結(jié)構(gòu)設(shè)計中說明,而在這章對該安卓應(yīng)用軟件對個別功能做細(xì)致的一些描述。各功能在總體框架中的TabHost(外圍布局)、垂直的標(biāo)簽(Tabweight和FrameLayout),線性布局LinearLayout部分體現(xiàn)和代碼體現(xiàn),但涉及到較多的重復(fù)使用,在編寫中對設(shè)

64、計要注意的代碼和數(shù)據(jù)傳輸機制,不進(jìn)行贅述。</p><p>  Android 中的資源放在項目的 res 子目錄中。資源分為三類:1、Drawables:這個文件夾包含圖形文件,比如圖標(biāo)和位圖。2、Layouts:這個文件夾包含表示應(yīng)用程序布局和視圖的 XML 文件。后面會詳細(xì)研究這些文件。3、Values:這個文件夾包含strings.xml 文件。這是為應(yīng)用程序?qū)崿F(xiàn)字符串本地化的主要方法。</p>

65、;<p>  4.1布局main.xml設(shè)計實現(xiàn)</p><p>  1、布局文件main.xml的詳細(xì)設(shè)計實現(xiàn):</p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  <TabHost xmlns:android="ht

66、tp://schemas.android.com/apk/res/android"</p><p>  android:id="@android:id/tabhost"</p><p>  android:layout_width="fill_parent"</p><p>  android:layout_heig

67、ht="fill_parent"</p><p>  android:background="@android:color/white"></p><p>  <LinearLayout</p><p>  android:layout_width="fill_parent"</p>

68、<p>  android:layout_height="fill_parent"</p><p>  android:orientation="vertical"></p><p>  <TabWidget android:id="@android:id/tabs"</p><p&g

69、t;  android:layout_width="fill_parent"</p><p>  android:layout_height="wrap_content"/></p><p>  <FrameLayout android:id="@android:id/tabcontent"</p>&l

70、t;p>  android:layout_width="fill_parent"</p><p>  android:layout_height="0dip"</p><p>  android:layout_weight="1"/></p><p>  </LinearLayout>

71、;</p><p>  </TabHost></p><p>  2、AndroidManifest.xml部署描述的設(shè)計實現(xiàn):</p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  <manifest xml

72、ns:android="http://schemas.android.com/apk/res/android"</p><p>  package="cn.itcast.smsmanager"</p><p>  android:versionCode="1"</p><p>  android:versi

73、onName="1.0" ></p><p>  <uses-sdk android:minSdkVersion="8" /></p><p>  <uses-permission android:name="android.permission.READ_SMS"/></p><

74、p>  <uses-permission android:name="android.permission.READ_CONTACTS"/></p><p>  <uses-permission android:name="android.permission.WRITE_SMS"/></p><p>  <use

75、s-permission android:name="android.permission.SEND_SMS"/></p><p>  <!-- 創(chuàng)建快捷圖標(biāo)的權(quán)限 --></p><p>  <uses-permission android:name="com.android.launcher.permission.INSTALL_S

76、HORTCUT"/></p><p>  <!-- 讀取快捷圖標(biāo)provider --></p><p>  <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/></p><p>  <appli

77、cation</p><p>  android:icon="@drawable/ic_launcher"</p><p>  android:label="@string/app_name" ></p><p>  <activity android:label="@string/app_name&qu

78、ot;</p><p>  android:name=".MainActivity" ></p><p>  <intent-filter ></p><p>  <action android:name="android.intent.action.MAIN" /></p><

79、;p>  <category android:name="android.intent.category.LAUNCHER" /></p><p>  </intent-filter></p><p>  </activity></p><p>  <activity android:name=&q

80、uot;.ConversationActivity"></activity></p><p>  <activity android:name=".FolderActivity"></activity></p><p>  <activity android:name=".GroupActivity&q

81、uot;></activity></p><p>  <activityandroid:name=".ConversastionListActivity" android:label="@string/conversation_detail"></activity><activity </p><p>

82、  android:name=".NewMessageActivity" android:label="@string/new_msg"></p><p>  </activity></p><p>  <activity android:name=".FolderListActivity"><

83、/activity></p><p>  <activity </p><p>  android:name=".SmsDetailActivity" android:label="@string/sms_detail"></activity></p><p>  <activity and

84、roid:name=".NewGroupActivity" </p><p>  android:label="@string/new_group" android:theme="@android:style/Theme.Dialog"></activity></p><p>  <activity an

85、droid:name=".SearchableActivity"><intent-filter></p><p>  <action android:name="android.intent.action.SEARCH" /></p><p>  </intent-filter></p><

86、;p>  <meta-data android:name="android.app.searchable"</p><p>  android:resource="@xml/searchable"/></activity></p><p>  <!-- 指定我們要激活的是哪個SearchableActivity -

87、-></p><p>  <meta-data android:name="android.app.default_searchable"</p><p>  android:value=".SearchableActivity" /></p><p>  <provider android:name=

88、".MySuggestionProvider" </p><p>  android:authorities="cn.itcast.smsmanager.MySuggestionProvider"></provider></p><p>  <provider android:name=".SmsManagerPro

89、vider" </p><p>  android:authorities="cn.itcast.smsmanager.SmsManagerProvider"></provider></p><p>  </application></p><p>  </manifest></p>

90、<p>  AndroidManifest.xml文件是 Android 應(yīng)用程序的部署描述符。這個文件列出應(yīng)用程序中包含的所有活動、服務(wù)、內(nèi)容提供器和接收器,以及應(yīng)用程序支持的IntentFilter。</p><p>  4.2主界面設(shè)計實現(xiàn)</p><p>  短信智能分類管理應(yīng)用軟件的主界面,它是TabActivity這個項目采用的風(fēng)格是黑白主題,屬于手機的定制項目。

91、設(shè)置了相應(yīng)的寬度、高度、背景色等參數(shù),布局文件main.xml。應(yīng)用界面如圖4.1。</p><p><b>  圖4.1 信息界面</b></p><p>  1、外圍布局(TabHost)詳細(xì)設(shè)計代碼如下:</p><p>  <LinearLayout</p><p>  android:layout_wid

92、th="fill_parent"</p><p>  android:layout_height="fill_parent"</p><p>  android:orientation="vertical"</p><p><b>  ></b></p><p

93、>  /*在LinearLayout(線性布局)中的代碼 */</p><p>  <TabWidget android:id="@android:id/tabs" </p><p>  /*設(shè)置ID=tabs標(biāo)識*/</p><p>  android:layout_width="fill_parent"<

94、/p><p>  android:layout_height="wrap_content"/></p><p>  /*Tabweight(控件)代碼 */</p><p>  <FrameLayout android:id="@android:id/tabcontent" </p><p> 

95、 /*設(shè)置ID=tabcontent標(biāo)識*/</p><p>  android:layout_width="fill_parent"</p><p>  android:layout_height="0dip"</p><p>  android:layout_weight="1"/> </p

96、><p>  /*FrameLayout(框布局)代碼 */</p><p>  </LinearLayout></p><p>  </TabHost></p><p>  2、在Res中創(chuàng)建drawable放置主界面標(biāo)簽圖片,創(chuàng)建values添加string.xml設(shè)置標(biāo)簽名稱。</p><p>

97、;  <string name="conversation">會話</string></p><p>  <string name="folder">文件夾</string></p><p>  <string name="group">群組</string>

98、</p><p>  3、創(chuàng)建類ConversationActivity、GroupActivity、FolderActivity相關(guān)標(biāo)簽的封裝和方法,后綴為.java,寫入代碼運行。</p><p>  4.3會話列表模塊設(shè)計實現(xiàn)</p><p>  會話列表模塊功能主要為通過異步查詢獲取會話數(shù)據(jù),不會導(dǎo)致anr異常,對于會話可以進(jìn)行單條和多條的刪除,查看會話詳情

99、。</p><p>  會話列表的編輯狀態(tài)的實現(xiàn)與設(shè)計參數(shù),實現(xiàn)如圖4.2。</p><p><b>  圖4.2 參數(shù)說明</b></p><p>  會話列表下的線性布局,如圖4.3。</p><p><b>  圖4.3 線性布局</b></p><p>  在smsm

100、anager\res\Layout\new_msg_button.xml文件夾中LinearLayout創(chuàng)建,設(shè)置相應(yīng)代碼:</p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  <LinearLayout xmlns:android="http://sche

101、mas.android.com/apk/res/android"</p><p>  android:layout_width="match_parent"</p><p>  android:layout_height="match_parent"</p><p>  android:orientation=&qu

102、ot;vertical" </p><p>  android:background="@android:color/white"></p><p>  <TextView android:layout_width="fill_parent"</p><p>  android:layout_height

103、="wrap_content"</p><p>  android:text="@string/receiver"</p><p>  android:textSize="16sp"/></p><p>  <AutoCompleteTextView android:id="@+id/

104、et_number"</p><p>  android:layout_width="fill_parent"</p><p>  android:layout_height="wrap_content"</p><p>  android:completionThreshold="1"</

105、p><p>  android:hint="@string/please_enter_number"</p><p>  android:textSize="18sp"</p><p>  android:inputType="phone"/></p><p><b> 

106、 ……</b></p><p>  </LinearLayout></p><p>  1、先要添加一個“新建信息”按鈕代碼.:</p><p>  <Button android:id="@+id/bt_new_msg"</p><p>  android:layout_width=&quo

107、t;240px"</p><p>  android:layout_height="match_parent"</p><p>  android:layout_gravity="center"</p><p>  android:layout_marginTop="6px"</p>

108、<p>  android:text="@string/new_msg" /></p><p>  2、“全選”、“取消選擇”、ListView、TexttView、“刪除”所在的線性布局(LinearLayout)同理設(shè)置代碼。最后在相應(yīng)的strings.xml中創(chuàng)建字符串名字標(biāo)識,如下:</p><p>  <string name=&quo

109、t;new_msg">新建信息</string></p><p>  <string name="all_select">全選</string></p><p>  <string name="cancel_selected">取消選擇</string></p>

110、<p>  <string name="conversation_empty">會話為空</string></p><p>  <string name="delete">刪除</string></p><p>  4.4文件夾視圖模塊設(shè)計實現(xiàn)</p><p>  文

111、件夾視圖模塊主要對信息進(jìn)行了分類管理:收件箱、發(fā)件箱、已發(fā)送、草稿箱這四類,并且我們對信息進(jìn)行了日期分隔顯示,以達(dá)到方便管理的目的。文件夾視圖的實現(xiàn)如圖4.4。</p><p>  圖4.4 文件夾視圖</p><p>  1、在src\cn.itcast.smsmanager中創(chuàng)建類FolderActivity,用來布局文件夾視圖列表的模塊。在strings.xml中創(chuàng)建字符串名字標(biāo)識,

112、如下:</p><p>  <string name="inbox">收件箱</string></p><p>  <string name="outbox">發(fā)送箱</string></p><p>  <string name="sent">已

113、發(fā)送</string></p><p>  <string name="draft">草稿箱</string></p><p>  2、繼而在sms.java中做數(shù)據(jù)封裝。然后查詢數(shù)據(jù)時,定義類QueryHandler,用條件語句實現(xiàn)。</p><p>  private final class QueryHa

114、ndler extends AsyncQueryHandler{}</p><p>  3、查詢方法為startQuery(),執(zhí)行查詢,分四次進(jìn)行。執(zhí)行操作mQueryHandler.startQuery(i, null, uri, null, null, null, null);初始化size集合的大小。</p><p>  private void initSizeMap() {&l

115、t;/p><p>  // TODO Auto-generated method stub</p><p>  for(int i = 0;i< images.length;i++){</p><p>  sizeMap.put(i, 0);}</p><p>  4、注冊短信的內(nèi)容觀察者:</p><p>  //

116、content://sms </p><p>  Uri uri = Uri.parse("content://mms-sms/conversations/");</p><p>  getContentResolver().registerContentObserver(uri, false, observer);</p><p><

117、;b>  5、綁定數(shù)據(jù):</b></p><p>  views.header.setImageResource(images[position]);</p><p>  views.tv_name.setText(names[position]);</p><p><b>  6、初始化控件:</b></p>

118、<p>  View view = null;</p><p>  FolderViews views = null;</p><p>  if(convertView != null){</p><p>  view = convertView;</p><p>  views = (FolderViews) view.getTa

119、g();}else{</p><p>  view = getLayoutInflater().inflate(R.layout.folder_item, parent, false);</p><p>  views = new FolderViews();</p><p>  views.header = (ImageView) view.findViewByI

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論