




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 移動(dòng)平臺(tái)開發(fā)(論文)題目名稱:基于Android系統(tǒng)的情景模式的設(shè)計(jì)與實(shí)現(xiàn)院系名稱:計(jì)算機(jī)學(xué)院班 級(jí):網(wǎng)絡(luò)123班學(xué) 號(hào):201200824314學(xué)生姓名:趙恒指導(dǎo)教師:趙慧杰 2014年12月20日24摘要近年來,隨著現(xiàn)代工業(yè)及科學(xué)技術(shù)的迅速發(fā)展,人們對(duì)于信息的獲取有著強(qiáng)烈的需求,智能手機(jī)作為一種非常重要的通訊工具,功能越來越強(qiáng)大,智能手機(jī)行業(yè)的發(fā)展也越來越受到各大制造廠商的關(guān)注??紤]到Android廣闊的市場,各大手機(jī)廠商都爭相參與該系統(tǒng)的開發(fā),并希望能將該系統(tǒng)應(yīng)用到自己的手機(jī)產(chǎn)品上。移動(dòng)平臺(tái)開發(fā)課程給了我們一個(gè)開發(fā)Android項(xiàng)目的機(jī)會(huì),因此我選擇開發(fā)一款A(yù)ndroid手機(jī)軟件,即基
2、于Android系統(tǒng)的手機(jī)情景模式。本文首先對(duì)比分析了市場上多個(gè)智能手機(jī)平臺(tái),研究了智能手機(jī)的發(fā)展現(xiàn)狀,接著分析了Android系統(tǒng)的平臺(tái)架構(gòu),剖析了Android應(yīng)用組件和Activity生命周期,對(duì)Android平臺(tái)底層組件軟件開發(fā)和應(yīng)用層軟件開發(fā)方法進(jìn)行了深入研究,其中深入分析了Intent,對(duì)Intent進(jìn)行了詳細(xì)的講解。在此基礎(chǔ)上,開發(fā)設(shè)計(jì)實(shí)現(xiàn)了基于Android系統(tǒng)的手機(jī)情景模式。關(guān)鍵字:Android、智能手機(jī)、情景模式、Activity、Intent目 錄摘要2目 錄3第一章 緒論41.1手機(jī)操作系統(tǒng)簡介41.2手機(jī)操作系統(tǒng)目前現(xiàn)狀41.3手機(jī)操作系統(tǒng)發(fā)展趨勢61.4Andro
3、id簡介6第二章 Android 的架構(gòu)72.1Android 架構(gòu)72.2Android 中的 Intent92.1.1Intent抽象描述的內(nèi)容92.2.2Android 解析 Intent 的過程102.3Eclipse介紹11第三章 需求分析133.1可行性分析133.2系統(tǒng)總體需求分析133.3開發(fā)運(yùn)行環(huán)境13第四章 情景模式的設(shè)計(jì)思想144.1情景模式的設(shè)計(jì)特點(diǎn)144.2情景模式的設(shè)計(jì)144.3程序的流程14第五章 情景模式的具體實(shí)現(xiàn)165.1情景模式界面類165.2情景模式類185.3情景模式測試19第六章 總結(jié)21【參考文獻(xiàn)與附錄】22第一章 緒論1.1手機(jī)操作系統(tǒng)簡介 手機(jī)的
4、用戶群日益龐大,在人民生活中手機(jī)起到愈加重要的作用。在2010年1月由一個(gè)網(wǎng)站所做的調(diào)查表明,中國手機(jī)用戶數(shù)量將達(dá)到七點(diǎn)四億多。全國的手機(jī)及其它具有手機(jī)功能的設(shè)備的用戶群體,這個(gè)數(shù)量還在繼續(xù)增長。這樣一來,就有更多的手機(jī)廠商也都想抓住商機(jī)贏得更多用戶,.所以也就涌現(xiàn)出許許多多的手機(jī)品牌和手機(jī)操作系統(tǒng),我們大家所知道的有如:Symbian, PalmOS,Windows Mobile, Smartphone等等,這里對(duì)手機(jī)品牌不作介紹,對(duì)于手機(jī)的操作系統(tǒng),這些系統(tǒng)中,每個(gè)系統(tǒng)也有許多版本,有的版本是智能的,有的版本非智能的,各有各的特色和優(yōu)缺點(diǎn),這里不對(duì)各個(gè)系統(tǒng)進(jìn)行詳細(xì)的評(píng)論。Google公司推
5、出了一套手機(jī)操作系統(tǒng)Android,并宣布Google要進(jìn)軍手機(jī)領(lǐng)域,宣稱其手機(jī)系統(tǒng)是一個(gè)開放平臺(tái),所以就引來了許多的手機(jī)廠商的關(guān)注和極大的興趣。由于Android系統(tǒng)是基于標(biāo)準(zhǔn)的Linux內(nèi)核開發(fā)的一套嵌入式系統(tǒng),也可以說Android系統(tǒng)的核心部分(不包括上層應(yīng)用程序部分)是Linux系統(tǒng),所以該論文在介紹Android系統(tǒng)移植開發(fā)之前,也就會(huì)描述和介紹通用嵌入式Linux系統(tǒng)移植的有關(guān)軟件內(nèi)容,對(duì)于涉及硬件方面不作過多的描述。1.2手機(jī)操作系統(tǒng)目前現(xiàn)狀近來微電子技術(shù)的迅猛發(fā)展,處理器升級(jí)增長的速度也隨之加快,嵌入式系統(tǒng)領(lǐng)域發(fā)生了翻天覆地的變化,特別是現(xiàn)在網(wǎng)絡(luò)的普及,可以使嵌入式系統(tǒng)具備網(wǎng)
6、絡(luò)的功能,嵌入式與網(wǎng)絡(luò)也就成為當(dāng)今最熱門的技術(shù),從而使得嵌入式系統(tǒng)得以更廣泛的應(yīng)用,應(yīng)用到了各個(gè)領(lǐng)域,但是在這眾多的應(yīng)用中,我們最有切身體會(huì)的就是手機(jī)的使用。接下來就針對(duì)常見的幾款智能手機(jī)系統(tǒng)簡單介紹一下:(1) Windows Mobile系列操作系統(tǒng)是微軟在計(jì)算機(jī)的Windows操作系統(tǒng)上變化而來的,因此,它們的操作界面與PC的操作系統(tǒng)非常相似,因此性能比較好,操作起來速度會(huì)比較快。但是,此系列手機(jī)也有一定的缺點(diǎn),如因配置高、功能多而產(chǎn)生耗電量大、電池續(xù)航時(shí)間短、硬件采用成本高等缺點(diǎn)。(2) Symbian操作系統(tǒng)提供了靈活的應(yīng)用操作界面框架,不但使開發(fā)者得以快速掌握必要的技術(shù),同時(shí)還使手
7、機(jī)制造商能夠推出不同界面的產(chǎn)品,但是這種系統(tǒng)類型的手機(jī),它的輸入方式包括鍵盤輸入和手寫筆輸入,不同的輸入方式和外觀設(shè)計(jì)會(huì)對(duì)各款手機(jī)的主要用途產(chǎn)生很大的影響,每種輸入方法對(duì)消費(fèi)者也有一些要求,如要求熟悉拼音,寫字等。(3) PalmOS是3Com公司開發(fā)的一種32位的嵌入式操作系統(tǒng),原本是一家生產(chǎn)掌上電腦及掌上電腦操作系統(tǒng)為主的公司,Palm智能手機(jī)所用的Palm操作系統(tǒng)又與Palm掌上電腦所用的操作系統(tǒng)非常相似,與微軟所推出操作系統(tǒng)要占有大量的系統(tǒng)資源和儲(chǔ)存容量不同的是,它本身所占的內(nèi)存極小,基于Palm操作系統(tǒng)編寫的應(yīng)用程序所占的空間也很小,對(duì)于中國用戶而言,它有一個(gè)不足之處是,它的操作系統(tǒng)
8、起初在中國銷售的產(chǎn)品仍然要使用中文外掛平臺(tái),有相當(dāng)部分依然是以英文界面為主,在一定程度上影響了基于Palm操作系統(tǒng)的產(chǎn)品大面積進(jìn)入中國市場。(4) Linux是一套免費(fèi)使用和自由傳播的操作系統(tǒng)。Linux具有穩(wěn)定、可靠、安全等優(yōu)點(diǎn),有強(qiáng)大的網(wǎng)絡(luò)功能。由于Linux具有源代碼開放,這一特點(diǎn)非常重要。從應(yīng)用開發(fā)的角度看,由于Linux的源代碼是開放的,有利于獨(dú)立軟件開發(fā)商(ISV )開發(fā)出硬件利用效率高、功能更強(qiáng)大的應(yīng)用軟件,也方便行業(yè)用戶開發(fā)自己的安全、可控認(rèn)證系統(tǒng),因?yàn)樨S富的應(yīng)用是智能手機(jī)的優(yōu)越性體現(xiàn)和關(guān)鍵賣點(diǎn)所在。特別是當(dāng)智能手機(jī)大量用作行業(yè)應(yīng)用的移動(dòng)終端時(shí),Linux在手機(jī)操作系統(tǒng)市場中也
9、異軍突起,成為一股不容忽視的力量。(5) iPhone,相比于前面幾個(gè)系統(tǒng),Apple的iPhone系統(tǒng)的性能可能算是比較優(yōu)越的,但是它在價(jià)格和語言本地化方面有一定的局限性,但是Android也吸納了它的一些優(yōu)點(diǎn),而且在此基礎(chǔ)上還做了優(yōu)化,這就是Google的聰明和可以制勝之處。目前,琳瑯滿目的手機(jī)系統(tǒng),有時(shí)也讓消費(fèi)者在選擇手機(jī)時(shí)頭痛,比如:有的手機(jī)外觀還蠻賞心悅目的,但是使用時(shí)感覺手機(jī)系統(tǒng)和應(yīng)用不是很理想;有的手機(jī)系統(tǒng)和應(yīng)用系統(tǒng)很稱心,但是外觀傻傻的;有一些手機(jī)系統(tǒng)操作起來很復(fù)雜,好像是為一些專業(yè)人士設(shè)計(jì)似的等等;還有的是所謂的高端手機(jī)其實(shí)就是增加了幾個(gè)吸引消費(fèi)者眼球的賣點(diǎn)就把手機(jī)價(jià)格拉得很
10、高;總的來說目前的手機(jī)市場不是很令人滿意,所以希望能有某個(gè)手機(jī)軟件能夠一統(tǒng)手機(jī)的操作系統(tǒng)。1.3手機(jī)操作系統(tǒng)發(fā)展趨勢據(jù)不完全統(tǒng)計(jì),目前全球手機(jī)用戶有30億,2006年統(tǒng)計(jì)的中國手機(jī)用戶有2.61億;去年全球手機(jī)出貨量約11億部,其中中國約5.5億部141。美國最著名的未來學(xué)家尼葛洛龐帝在1999年訪華時(shí)曾經(jīng)預(yù)言,在4至5年后嵌入式系統(tǒng)和互聯(lián)網(wǎng)將是既PC之后的最偉大的發(fā)明。如今10年將要過去了,現(xiàn)實(shí)的發(fā)展驗(yàn)證了他的語言的正確性。現(xiàn)在嵌入式系統(tǒng)正處于高速的發(fā)展階段,未來的幾年,這種發(fā)展和競爭將是愈演愈烈。由于嵌入式系統(tǒng)己經(jīng)滲透到許多領(lǐng)域,如工業(yè)控制、移動(dòng)通信、GPS、娛樂等,將來它會(huì)發(fā)揮更大的優(yōu)勢
11、。 Symbian, Linux, Windows Mobile, Palm是目前主要的手機(jī)嵌入式操作系統(tǒng),而Linux手機(jī)市場份額的上升,更多的源于Linux開放平臺(tái)的支持,也隨著嵌入式系統(tǒng)時(shí)代的發(fā)展而發(fā)展,近期,隨著3G時(shí)代的到來,也可能是由于底層的Linux核心是一個(gè)開源平臺(tái),中國幾大手機(jī)運(yùn)營商如移動(dòng)、電信、聯(lián)通也在緊鑼密鼓的籌備并與Google公司合作而開發(fā)Android系統(tǒng),由于Android的內(nèi)核Linux部分是開源的,所以在價(jià)格方面占據(jù)了很大的優(yōu)勢??磥硎褂肁ndroid系統(tǒng)是將來手機(jī)系統(tǒng)的很大的趨勢。1.4Android簡介Android是一個(gè)開源的智能手機(jī)操作系統(tǒng),Andro
12、id翻譯成中文是機(jī)器人,機(jī)器人這個(gè)名詞通常是指硬件部分,而Android是操作系統(tǒng),是軟件部分。這個(gè)目前正熱門的手機(jī)系統(tǒng)跟以往各大手機(jī)廠商閉門自修所研發(fā)的系統(tǒng)最大的區(qū)別在于它開放原始代碼,讓一些手機(jī)廠商或一般的開發(fā)愛好者也可以輕易的利用Google公司所提供的SDK開發(fā)各式各樣的應(yīng)用軟件。Android是基于Linux內(nèi)核,由Linux內(nèi)核、Linux運(yùn)行庫、用來運(yùn)行代碼的類似Java虛擬機(jī)以及全套的移動(dòng)電話應(yīng)用程序組成的,和標(biāo)準(zhǔn)的Linux開發(fā)流程一樣,Android系統(tǒng)平臺(tái)開發(fā)的一個(gè)很重要的基礎(chǔ)工作就是對(duì)其內(nèi)核的編譯和移植其中Applications是Android的應(yīng)用軟件部分,Appl
13、ication Framework是Android的應(yīng)用軟件框架模型,Android Runtime是Android系統(tǒng)的運(yùn)行庫,Libraries是Linux系統(tǒng)的標(biāo)準(zhǔn)庫,Linux Kernel是Linux系統(tǒng)的內(nèi)核,也是Android系統(tǒng)的內(nèi)核。第二章 Android 的架構(gòu)Android 是一個(gè)移動(dòng)設(shè)備的軟件框架。它包括一個(gè)操作系統(tǒng),中間件和一些關(guān)鍵應(yīng)用。Android 是由 Linux+Java 構(gòu)成的開源軟件。2.1Android 架構(gòu)圖2-1給出了 Android 操作系統(tǒng)的大部分組件。圖 2-1Android 架構(gòu)應(yīng)用程序Android 的配置搭載它的核心應(yīng)用,包括 email
14、 客戶端,SMS 程序,日歷,地圖,瀏覽器,contacts 以及其它一些應(yīng)用。所有的應(yīng)用都是用 java 語言編寫的。應(yīng)用程序框架開發(fā)人員具有和核心應(yīng)用相同的框架 API 訪問權(quán)限。應(yīng)用程序的構(gòu)建模式被設(shè)計(jì)成簡單的可重用的組件。所有應(yīng)用能夠分享他的能力,所有應(yīng)用都是如此(這是被框架強(qiáng)迫的安全約束)。這樣允許用戶在相同的機(jī)器上替換組件。一套用于支撐應(yīng)用的服務(wù)和系統(tǒng),包括:一套強(qiáng)大和可擴(kuò)展的視圖,用于構(gòu)建應(yīng)用,甚至內(nèi)嵌的 Web 瀏覽器。內(nèi)容提供,用于應(yīng)用間的數(shù)據(jù)提供和數(shù)據(jù)共享 。一個(gè)資源管理器, 提供非代碼的資源支持,包括本地字符串,圖像文件,和布局文件 。一個(gè) Notification 管理
15、器, 用于應(yīng)用程序在狀態(tài)欄顯示告警信息 。一個(gè)Activity管理器,用于管理應(yīng)用的生命周期,以及提供通用的導(dǎo)航輔助 。庫Android 包含一整套 C/C+ 庫,用于構(gòu)建 Android 系統(tǒng)的大量不同的組件。這些能力通過 Android 應(yīng)用程序框架暴露給開發(fā)人員。部分核心庫如下:系統(tǒng) C 庫,一個(gè)由 BSD 發(fā)起的標(biāo)準(zhǔn) C 庫實(shí)現(xiàn),專門為基于 Linux 的嵌入式設(shè)備作了調(diào)整。媒體庫,基于 PacketVideo's OpenCORE;該庫支持回放和錄制大量流行的音視頻格式和靜態(tài)圖片,包括 MPEG4, H.264, MP3,AAC,AMR, JPG, 和 PNG。Surface
16、 管理,用于管理顯示子系統(tǒng)和無縫合成不同應(yīng)用的 2D 和 3D 圖形層。LibWebCore,先進(jìn)的 web 瀏覽器引擎。被用來構(gòu)建 Android 瀏覽器和內(nèi)嵌的 web 視圖。SGL,底層的 2D 圖形引擎。3D 庫,一套 OpenGL ES 1.0 APIs 的實(shí)現(xiàn);該庫使用硬件加速(當(dāng)硬件可用時(shí))或者高度優(yōu)化的 3D 軟件光柵。FreeType,用于點(diǎn)陣和矢量字體渲染。SQLite,能夠被所有應(yīng)用使用的強(qiáng)大的輕量級(jí)的關(guān)系數(shù)據(jù)庫引擎。SSL,(Secure Sockets Layer),中文名為 “ 安全套接層協(xié)議層 ” ,它是網(wǎng)景( Netscape )公司提出的基于 WEB 應(yīng)用的安
17、全協(xié)議,當(dāng)前版本為 3.0。SSL協(xié)議指定了一種在應(yīng)用程序協(xié)議(如 HTTP 、 Telenet 、 NMTP 和 FTP 等)和 TCP/IP 協(xié)議之間提供數(shù)據(jù)安全性分層的機(jī)制,它為 TCP/IP 連接提供數(shù)據(jù)加密、服務(wù)器認(rèn)證、消息完整性以及可選的客戶機(jī)認(rèn)證。它已被廣泛地用于 Web瀏覽器與服務(wù)器之間的身份認(rèn)證和加密數(shù)據(jù)傳輸。SSL 協(xié)議位于 TCP/IP 協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL 協(xié)議可分為兩層: SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如 TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。SSL握手
18、協(xié)議(SSL HandshakeProtocol):它建立在 SSL 記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。SSL 協(xié)議提供的服務(wù)主要有:一、認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器;二、加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊取;三、維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變。2.2Android 中的 Intent在一個(gè) Android 應(yīng)用中,主要是由四種組件組成的,這四種組件是獨(dú)立的,它們之間可以互相調(diào)用,協(xié)調(diào)工作,最終組成一個(gè)真正的 Android 應(yīng)用。在這些組件之間的通訊中,主要是由 Intent 協(xié)助完成的。Intent
19、 負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android 則根據(jù)此 Intent 的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 Intent 傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,Intent 在這里起著一個(gè)媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào) 用者之間的解耦。2.1.1Intent抽象描述的內(nèi)容在 Android 參考文檔中,對(duì) Intent 的定義是執(zhí)行某操作的一個(gè)抽象描述。首先,是要執(zhí)行的動(dòng)作(action)的一個(gè)簡要描述。其次,是執(zhí)行動(dòng)作要操作的數(shù)據(jù)(data),Android 中 采用指向數(shù)據(jù)的一個(gè)URI 來表示。另外,除了 action 和 d
20、ata 這兩個(gè)重要屬性外,還有一些附加屬性:category(類別),被執(zhí)行動(dòng)作的附加信息。type(數(shù)據(jù)類型),顯式指定 Intent 的數(shù)據(jù)類型(MIME)。一般 Intent 的數(shù)據(jù)類型能夠根據(jù)數(shù)據(jù)本身進(jìn)行判定,但是通過設(shè)置這個(gè)屬性,可以強(qiáng)制采用顯式指定的類型而不再進(jìn)行推導(dǎo)。component(組件),指定 Intent 的的目標(biāo)組件的類名稱。通常 Android 會(huì)根據(jù) Intent 中包含的其它屬性的信息,比如 action、data/type、category 進(jìn)行查找,最終找到一個(gè)與之匹配的目標(biāo)組件。但是,如果 component 這個(gè)屬性有指定的話,將直接使用它指定的組件,而不
21、再執(zhí)行上述查找過程。指定了這個(gè)屬性以后,Intent 的其它所有屬性都是可選的。extras(附加信息),是其它所有附加信息的集合。使用 extras 可以為組件提供擴(kuò)展信息,比如,如果要執(zhí)行“發(fā)送電子郵件”這個(gè)動(dòng)作,可以將電子郵件的標(biāo)題、正文等保存在 extras 里,傳給電子郵件發(fā)送組件??傊琣ction、data/type、category 和 extras 一起形成了一種語言。這種語言使系統(tǒng)能夠理解諸如“查看某聯(lián)系人的詳細(xì)信息”之類的短語。隨著應(yīng)用不斷的加入到系統(tǒng)中,它們可以添加新的 action、 data/type、category 來擴(kuò)展這種語言。應(yīng)用也可以提供自己的 Acti
22、vity 來處理已經(jīng)存在的這樣的“短語”,從而改變這些“短語”的行為。2.2.2Android 解析 Intent 的過程在應(yīng)用中,我們可以以兩種形式來使用 Intent:A、直接 Intent:指定了 component 屬性的 Intent(調(diào)用 setComponent(ComponentName)或者setClass(Context, Class)來指定)。通過指定具體的組件類,通知應(yīng)用啟動(dòng)對(duì)應(yīng)的組件。B、間接 Intent:沒有指定 comonent 屬性的 Intent。這些 Intent 需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在在所有的可用組件中,確定滿足此 Intent
23、 的組件。對(duì)于直接 Intent,Android 不需要去做解析,因?yàn)槟繕?biāo)組件已經(jīng)很明確,Android 需要解析的是那些間接 Intent,通過解析,將 Intent 映射給可以處理此Intent 的 Activity、IntentReceiver 或 Service。Intent 解析機(jī)制主要是通過查找已注冊在 AndroidManifest.xml 中的所有 IntentFilter 及其中定義的 Intent,最終找 到匹配的 Intent。在這個(gè)解析過程中,Android 是通過 Intent 的 action、type、category這三個(gè)屬性來進(jìn)行判斷的,判斷方 法如下:如果
24、Intent 指明定了 action,則目標(biāo)組件的 IntentFilter 的 action 列表中就必須包含有這個(gè) action,否則不能匹配;如果 Intent 沒有提供 type,系統(tǒng)將從 data 中得到數(shù)據(jù)類型。和 action 一樣,目標(biāo)組件的數(shù)據(jù)類型列表中必須包含 Intent 的數(shù)據(jù)類型,否則不能匹配。如果 Intent 中的數(shù)據(jù)不是 content: 類型的 URI,而且 Intent 也沒有明確指定它的 type,將根據(jù) Intent 中數(shù)據(jù)的 scheme (比如 http: 或者 mailto: ) 進(jìn)行匹配。同上,Intent 的 scheme 必須出現(xiàn)在目標(biāo)組件的
25、 scheme 列表中。如果 Intent 指定了一個(gè)或多個(gè) category,這些類別必須全部出現(xiàn)在組建的類別列表中。比如 Intent 中包含了兩個(gè)類別:LAUNCHER_CATEGORY 和ALTERNATIVE_CATEGORY,解析得到的目標(biāo)組件必須至少包含這兩個(gè)類別。2.3Eclipse介紹Eclipse 是一個(gè)集成開發(fā)環(huán)境(Integrated Development Environment)。其前身是 IBM 的 Visual Age for Java(VA4J)。Eclipse 是可擴(kuò)展的體系結(jié)構(gòu),可以集成不同軟件開發(fā)供應(yīng)商開發(fā)的產(chǎn)品,將他們開發(fā)的工具和組件加入到 Eclip
26、se 平臺(tái)中。隨 Java 應(yīng)用的廣泛,各大主要軟件供應(yīng)商都參與到 Eclipse 架構(gòu)開發(fā)中,使得Eclipse 插件數(shù)量與日增加。Eclipse 平臺(tái)的免費(fèi),架構(gòu)的成熟,行業(yè)協(xié)會(huì) Eclipse基金會(huì)的支持,使得很多的 Java 開發(fā)采用了 Eclipse 架構(gòu)。插件(plug-in)是遵循一定規(guī)范的應(yīng)用程序結(jié)構(gòu)編寫出來的程序,也成為擴(kuò)展,不同于組件。Eclipse 正是一個(gè)精心設(shè)計(jì)的、可擴(kuò)展的核心結(jié)構(gòu)。通過插件的形式,將根據(jù)自己需要選擇的擴(kuò)展開發(fā)工具集成到 Eclipse 平臺(tái)核心。因此使得可以避免因過去不兼容工具帶來的麻煩,降低開發(fā)出成本,大幅度提高工作效率。Eclipse 本身作為一
27、個(gè)開放源碼的軟件項(xiàng)目,它主要包含 3 個(gè)子項(xiàng)目:平臺(tái)子項(xiàng)目,Java 開發(fā)工具(JDT-java)子項(xiàng)目,插件開發(fā)環(huán)境(PDE-plug-in)子項(xiàng)目。其中,Java 開發(fā)工具 JDT 為開發(fā)人員提供大量的集成工具集,主要為 Java應(yīng)用程序提供編程接口(API)。Eclipse 軟件開發(fā)工具箱(SDK)是主要有 Eclipse 本身的項(xiàng)目軟件和其他一些開發(fā)源嗎的第三方軟件組成。次者,插件開發(fā)環(huán)境(JDT)則為插件開發(fā)和測試提供相應(yīng)的環(huán)境,如:創(chuàng)建插件清單文件、定義擴(kuò)展點(diǎn)等。圖 2-2Eclipse 體系結(jié)構(gòu)圖其他的 Java 集成開發(fā)環(huán)境有 Jbuilder、WebSpher Studio、
28、 NetBeans。然而Eclipse 以其強(qiáng)大的可擴(kuò)展性和開放性脫穎而出,擁有為數(shù)眾多的支持者,也被許多大的企業(yè)所青睞。圖2-2很好的描述了Eclipse體系結(jié)構(gòu)圖。第三章 需求分析3.1可行性分析1)技術(shù)可行性:本軟件以Eclipse作為開發(fā)環(huán)境,安裝AndroidSDK,結(jié)合Android語言中的Activity、Intent等類,實(shí)現(xiàn)相關(guān)的API。從技術(shù)可行性角度考慮技術(shù)完成成熟,因此本軟件設(shè)計(jì)與實(shí)現(xiàn)是可行的。2)經(jīng)濟(jì)可行性:本軟件開發(fā)成本極低,無須額外的人力資源、物力資源和財(cái)力資源。而且,本系統(tǒng)的經(jīng)濟(jì)效益會(huì)遠(yuǎn)大于開發(fā)成本,從經(jīng)濟(jì)可行性角度考慮是可行的。3)操作可行性:系統(tǒng)硬件為智能手
29、機(jī),手機(jī)操作系統(tǒng)為Android, 而且編程環(huán)境Eclipse為專業(yè)程序員使用工具,比較易于使用,可行。3.2系統(tǒng)總體需求分析根據(jù)用戶的需求,本軟件實(shí)現(xiàn)的功能就是設(shè)置手機(jī)的情景模式。在會(huì)議時(shí),用戶可以設(shè)置手機(jī)情景模式為振動(dòng)。在工作時(shí),用戶可以設(shè)置手機(jī)情景模式為響鈴。在睡覺時(shí),用戶可以設(shè)置手機(jī)情景模式為靜音。此外,還有定時(shí)情景模式,用戶可以對(duì)任何時(shí)間點(diǎn)設(shè)置情景模式。最重要的一點(diǎn),用戶也可以根據(jù)的自己的需要設(shè)置自定義情景模式。此外,本軟件還要給用戶“簡潔、流暢、舒適”的使用環(huán)境。3.3開發(fā)運(yùn)行環(huán)境開發(fā)此系統(tǒng)所需的基本軟、硬件環(huán)境為:WindowsXP 或 Windows7或Windows8;Pen
30、tium100 及以上檔次的 PC 及其兼容機(jī);128M 以上內(nèi)存措施;1G 以上可用硬盤空間;開發(fā)環(huán)境Eclipse第四章 情景模式的設(shè)計(jì)思想4.1情景模式的設(shè)計(jì)特點(diǎn)本軟件建立在Android平臺(tái)之上,有以下特點(diǎn):1. 開源性Android 操作系統(tǒng)核心是基于 Linux Kernel 的,它是典型的開源系統(tǒng)。2. 界面清楚,操作簡單便捷本軟件界面清晰明亮,操作簡單便捷。4.2情景模式的設(shè)計(jì)詳細(xì)的軟件結(jié)構(gòu)分析圖如圖4-1所示。情景模式普通情景模式定時(shí)情景模式自定義情景模式圖4-1情景模式功能結(jié)構(gòu)圖4.3程序的流程軟件的輸入輸出及模塊間的調(diào)用情況用可以IPO圖表示。如圖4-2所示。開 始顯示系
31、統(tǒng)按鈕鍵選擇操作普通情景模式定時(shí)情景模式自定義情景模式返回圖4-2 情景模式流程圖第五章 情景模式的具體實(shí)現(xiàn)5.1情景模式界面類情景模式界面類RingProfile是該類是通過擴(kuò)展基類Activity得到的,是根據(jù)用戶需求設(shè)定數(shù)據(jù)及其類型。部分代碼如下:public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);/取得TabHost對(duì)象mTabHost = getTabHost(); /* 為TabHost添加標(biāo)簽 */新建一個(gè)ne
32、wTabSpec(newTabSpec)/設(shè)置其標(biāo)簽和圖標(biāo)(setIndicator)/設(shè)置內(nèi)容(setContent) mTabHost.addTab(mTabHost.newTabSpec("tab_test1") .setIndicator("普通情景模式",getResources().getDrawable(R.drawable.icon) .setContent(R.id.RadioGroup01); mTabHost.addTab(mTabHost.newTabSpec("tab_test2") .setIndicato
33、r("定時(shí)情景模式",getResources().getDrawable(R.drawable.timeprofile) .setContent(R.id.RelativeLayout01); mTabHost.addTab(mTabHost.newTabSpec("tab_test3") .setIndicator("自定義情景模式",getResources().getDrawable(R.drawable.addprofile) .setContent(R.id.AbsoluteLayout03); /設(shè)置TabHost的背景
34、圖片資源 mTabHost.setBackgroundResource(R.drawable.bg); /設(shè)置當(dāng)前顯示哪一個(gè)標(biāo)簽 mTabHost.setCurrentTab(0); mTab = 0; updateRadioGroup(); /初始化,取得AudioManager audioMa = (AudioManager)getSystemService(Context.AUDIO_SERVICE); myImage = (ImageView)findViewById(R.id.myImage); myProgress = (ProgressBar)findViewById(R.id.
35、myProgress); downButton = (ImageButton)findViewById(R.id.downButton); upButton = (ImageButton)findViewById(R.id.upButton); normalButton = (ImageButton)findViewById(R.id.normalButton); muteButton = (ImageButton)findViewById(R.id.muteButton); vibrateButton = (ImageButton)findViewById(R.id.vibrateButto
36、n); /標(biāo)簽切換事件處理,setOnTabChangedListener mTabHost.setOnTabChangedListener(new OnTabChangeListener() Override public void onTabChanged(String tabId) if ( tabId.equals("tab_test1") ) mTab = 0; mAlarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); mTimePicker = (TimePicker)findV
37、iewById(R.id.timePkr); mTimePicker.setIs24HourView(true); updateRadioGroup(); else if ( tabId.equals("tab_test2") ) mTab = 1; mAlarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); mTimePicker = (TimePicker)findViewById(R.id.timePkr); mTimePicker.setIs24HourView(true); upda
38、teRadioGroup(); ); 5.2情景模式類情景模式類Vibrate、Silent、Ring、RingAndVibrate,類為情景模式的實(shí)現(xiàn)類。部分代碼如下:/ 鈴聲和震動(dòng)protected void ringAndVibrate(AudioManager audio)audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);audio.setVibrat
39、eSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_ON);/ 鈴聲protected void ring(AudioManager audio)audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);/ 震動(dòng)protected void vibrate(AudioManager audio)audio.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);audio.setVibrateSetting
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人房屋室內(nèi)合同范例
- 醫(yī)院聘用醫(yī)生合同范本
- 高端木作培訓(xùn)
- 農(nóng)村房屋共同合同范例
- 加氣轎車出售合同標(biāo)準(zhǔn)文本
- led經(jīng)營合同標(biāo)準(zhǔn)文本
- 兼職無償合同標(biāo)準(zhǔn)文本
- 包裝禮盒供貨合同范例
- 個(gè)人房貸借款合同標(biāo)準(zhǔn)文本
- 加工尾砂合同范例
- FMEA第五版(實(shí)例2)
- 《人教版重點(diǎn)初中物理教材插圖改編試題及答案:8年級(jí)下》
- 關(guān)于我國垂直型政府審計(jì)體制改革的思路與建議工商管理專業(yè)
- 電子商務(wù)B2B模式-ppt課件
- 調(diào)研匯報(bào)玄武湖
- 浙江工商大學(xué)畢業(yè)論文格式正文
- EBZ260M-2掘錨機(jī)的技術(shù)規(guī)格書
- 小學(xué)人教版六年級(jí)下冊第三單元作文:六年級(jí)下冊語文第三單元作文:我的理想作文800字
- 涵洞水力計(jì)算
- PCBA外觀檢驗(yàn)標(biāo)準(zhǔn)_IPC-A-610E完整
- 新版《江蘇省建設(shè)工程驗(yàn)收資料》分部分項(xiàng)檢驗(yàn)批劃分文檔
評(píng)論
0/150
提交評(píng)論