基于安卓平臺(tái)android的音樂播放器設(shè)計(jì)論文_第1頁(yè)
基于安卓平臺(tái)android的音樂播放器設(shè)計(jì)論文_第2頁(yè)
基于安卓平臺(tái)android的音樂播放器設(shè)計(jì)論文_第3頁(yè)
基于安卓平臺(tái)android的音樂播放器設(shè)計(jì)論文_第4頁(yè)
基于安卓平臺(tái)android的音樂播放器設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 PAGE73 / NUMPAGES80 畢業(yè)設(shè)計(jì)基于安卓平臺(tái)的音樂播放器院 別東北大學(xué)計(jì)算機(jī)與通信工程學(xué)院專業(yè)名稱計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)學(xué)號(hào)學(xué)生郭姝含指導(dǎo)教師燕懷榮2013年9月10日 基于安卓平臺(tái)的音樂播放器設(shè)計(jì)與開發(fā) 摘 要Android平臺(tái)是Google公司最新推出的一個(gè)手機(jī)平臺(tái),該平臺(tái)對(duì)移動(dòng)設(shè)備的程序集中包括一個(gè)操作系統(tǒng),一個(gè)中間件和一些關(guān)鍵性應(yīng)用。使用該平臺(tái)不需要任何費(fèi)用,代碼完全開放。開發(fā)人員可以在平臺(tái)系統(tǒng)上快速開發(fā),并可以利用其它開發(fā)人員的工作成果。所以,這為手機(jī)開發(fā)創(chuàng)造了更大的靈活性,工作少,周期短,快速成型,并一步到位,同時(shí)用戶可以最大限度的自定義自己的手機(jī),以豐富自己手機(jī)的

2、功能,增加手機(jī)在市場(chǎng)上的競(jìng)爭(zhēng)力。Android平臺(tái)以Linux系統(tǒng)作為平臺(tái)的基礎(chǔ),使用Linux核可以加快軟件移植速度。 本文以Android開發(fā)平臺(tái)為基礎(chǔ),首先簡(jiǎn)要介紹了安卓平臺(tái)發(fā)展歷程、以與當(dāng)前國(guó)外的發(fā)展現(xiàn)狀。然后詳細(xì)的介紹了Android開發(fā)平臺(tái)的開發(fā)環(huán)境。之后對(duì)基于Android平臺(tái)的音樂播發(fā)器系統(tǒng)做了一個(gè)詳細(xì)的需求分析。在需求分析結(jié)束后詳細(xì)論述了音樂播放器的詳細(xì)設(shè)計(jì)。根據(jù)Android開發(fā)平臺(tái)自身的結(jié)構(gòu)特點(diǎn),把音樂播放器的開發(fā)分為兩個(gè)部分來進(jìn)行分析和設(shè)計(jì),一部分是窗口的設(shè)計(jì),主要是定義窗口的屬性和關(guān)聯(lián)窗口的處理函數(shù);另一部分是功能的實(shí)現(xiàn),主要是結(jié)合Android平臺(tái)提供的資源和對(duì)音樂

3、播放器的功能分析最終實(shí)現(xiàn)定義的功能。最后對(duì)基于Android開發(fā)平臺(tái)的音樂播放系統(tǒng)進(jìn)行功能測(cè)試與驗(yàn)證。關(guān)鍵詞:Android平臺(tái),音樂播放器,基于Android平臺(tái)的開發(fā)與設(shè)計(jì)The Design and Development of Music Player Based on Android platformAuthor:XXX Tutor:XXX Abstract Android platform is GoogleS latest launch of a mobile platform,the platform for procedures of mobile devices,inclu

4、des an operating systems,a middle ware and some critical applicationsThe platform does not require any chargesThe code is completely openDevelopers can quickly develop on the platform system and other developers can use the results of the work by other developersTherefore,It made greater flexibility

5、 for the development of mobile phone,less work,short cycle,rapid prototyping and one-stop,meanwhile users can customize their mobile phones best to enrich the functions of their cell phones,competitiveness of mobile phones marketAndroid platform is based on Linux systems using the Linux kernelThe so

6、ftware call speed up the rate of transplantationThis article takes the Android developing platform as a foundationFirst it briefly introduces android platform development,as well as the current domestic and foreign development present situation.After the discussion of the rationale above,this articl

7、e introduces the development environment of Android developing platform in detail and makes a detailed demand analysis to Music player based on the Android developing platform.Then this article gives a detailed software design of Music player.Based on the Android developing platforms feature.I divid

8、e the Music players development into two parts to analyze and designOne part is the window design,mainly defines the window attribute and the connected window processing function;Another part is function realization,mainly unifies the resources which the Android platform provides and function analys

9、is to the Music player to accomplish the function which we definedFinally it carries on the function test based on the Music player of Android platform. Key Words:Android platform,Music player ,The Design and Development based on Android platform目 錄 TOC o 1-3 h u HYPERLINK l _Toc4387 1 緒 論 PAGEREF _

10、Toc4387 1 HYPERLINK l _Toc11872 1.1 項(xiàng)目背景 PAGEREF _Toc11872 1 HYPERLINK l _Toc6291 1.2 國(guó)外相關(guān)研究現(xiàn)狀與發(fā)展趨勢(shì) PAGEREF _Toc6291 2 HYPERLINK l _Toc22120 1.3 項(xiàng)目研究意義 PAGEREF _Toc22120 3 HYPERLINK l _Toc8460 1.4 本文主要容 PAGEREF _Toc8460 3 HYPERLINK l _Toc2156 2 安卓平臺(tái)介紹 PAGEREF _Toc2156 5 HYPERLINK l _Toc16726 2.1安卓平臺(tái)

11、介紹 PAGEREF _Toc16726 5 HYPERLINK l _Toc15017 2.2 安卓結(jié)構(gòu)具體分析 PAGEREF _Toc15017 6 HYPERLINK l _Toc20206 2.3 Android系統(tǒng)的四大組件 PAGEREF _Toc20206 7 HYPERLINK l _Toc3090 2.4 安卓開發(fā)環(huán)境搭建 PAGEREF _Toc3090 9 HYPERLINK l _Toc14012 2.4.1 Java環(huán)境搭建 PAGEREF _Toc14012 9 HYPERLINK l _Toc24747 2.4.2 安裝Eclipse開發(fā)工具 PAGEREF _

12、Toc24747 10 HYPERLINK l _Toc13447 2.4.3 下載安裝SDK PAGEREF _Toc13447 10 HYPERLINK l _Toc9997 2.4.4安裝ADT插件 PAGEREF _Toc9997 11 HYPERLINK l _Toc13228 2.5 Android Features特性 PAGEREF _Toc13228 12 HYPERLINK l _Toc28142 2.6數(shù)據(jù)存儲(chǔ)方式 PAGEREF _Toc28142 13 HYPERLINK l _Toc30588 2.6.1 SharedPreferences PAGEREF _Toc

13、30588 13 HYPERLINK l _Toc26563 2.6.2 File存儲(chǔ)方式 PAGEREF _Toc26563 13 HYPERLINK l _Toc3656 2.6.3 SQLiteDatabase數(shù)據(jù)庫(kù) PAGEREF _Toc3656 13 HYPERLINK l _Toc6683 2.7 Android工程程序結(jié)構(gòu) PAGEREF _Toc6683 14 HYPERLINK l _Toc2095 2.8 AndroidManifest.xml文件 PAGEREF _Toc2095 15 HYPERLINK l _Toc6709 2.9安卓平臺(tái)的優(yōu)勢(shì) PAGEREF _T

14、oc6709 17 HYPERLINK l _Toc23697 3 需求分析 PAGEREF _Toc23697 19 HYPERLINK l _Toc17578 3.1 軟件目標(biāo) PAGEREF _Toc17578 19 HYPERLINK l _Toc30085 3.2 軟件的可行性研究 PAGEREF _Toc30085 19 HYPERLINK l _Toc882 3.2.1 經(jīng)濟(jì)上的可行性 PAGEREF _Toc882 19 HYPERLINK l _Toc9313 3.2.2 技術(shù)上的可行性 PAGEREF _Toc9313 19 HYPERLINK l _Toc7388 3.2

15、.3 操作上的可行性 PAGEREF _Toc7388 20 HYPERLINK l _Toc12101 3.3 功能需求 PAGEREF _Toc12101 20 HYPERLINK l _Toc7024 3.3.1 用例圖與用例描述 PAGEREF _Toc7024 20 HYPERLINK l _Toc26607 3.3.2 音樂播放器的時(shí)序圖 PAGEREF _Toc26607 22 HYPERLINK l _Toc7647 3.4軟件規(guī)格說明 PAGEREF _Toc7647 23 HYPERLINK l _Toc32376 4 項(xiàng)目實(shí)現(xiàn) PAGEREF _Toc32376 25 H

16、YPERLINK l _Toc5990 4.1歡迎界面 PAGEREF _Toc5990 25 HYPERLINK l _Toc5793 4.2 主界面 PAGEREF _Toc5793 27 HYPERLINK l _Toc3151 4.2.1播放音軌SeekBar PAGEREF _Toc3151 28 HYPERLINK l _Toc7383 4.2.2播放調(diào)節(jié)功能實(shí)現(xiàn) PAGEREF _Toc7383 31 HYPERLINK l _Toc29558 4.3 歌詞顯示界面 PAGEREF _Toc29558 34 HYPERLINK l _Toc33 4.4 歌曲列表界面 PAGERE

17、F _Toc33 38 HYPERLINK l _Toc27900 4.5 專輯列表界面 PAGEREF _Toc27900 40 HYPERLINK l _Toc24709 5 音樂播放器的測(cè)試 PAGEREF _Toc24709 42 HYPERLINK l _Toc16271 5.1 測(cè)試模型 PAGEREF _Toc16271 43 HYPERLINK l _Toc32179 5.1.1 V模型 PAGEREF _Toc32179 43 HYPERLINK l _Toc22766 5.1.2 W模型 PAGEREF _Toc22766 43 HYPERLINK l _Toc20474

18、5.2 測(cè)試模型的選擇 PAGEREF _Toc20474 44 HYPERLINK l _Toc13202 5.3 測(cè)試方法 PAGEREF _Toc13202 45 HYPERLINK l _Toc17862 5.3.1 白盒測(cè)試 PAGEREF _Toc17862 45 HYPERLINK l _Toc21158 5.3.2 黑盒測(cè)試 PAGEREF _Toc21158 45 HYPERLINK l _Toc12863 5.3.3 測(cè)試方法的選擇 PAGEREF _Toc12863 46 HYPERLINK l _Toc20147 5.4 功能的測(cè)試與實(shí)現(xiàn) PAGEREF _Toc201

19、47 46 HYPERLINK l _Toc7624 5.4.1 播放器整體功能的實(shí)現(xiàn) PAGEREF _Toc7624 46 HYPERLINK l _Toc167 5.4.2 播放器主要模塊功能測(cè)試 PAGEREF _Toc167 47 HYPERLINK l _Toc28513 5.5測(cè)試結(jié)論 PAGEREF _Toc28513 47 HYPERLINK l _Toc1571 5.6測(cè)試過程與總結(jié) PAGEREF _Toc1571 47 HYPERLINK l _Toc24127 結(jié) 論 PAGEREF _Toc24127 49 HYPERLINK l _Toc28981 致 PAGER

20、EF _Toc28981 50 HYPERLINK l _Toc21792 參考文獻(xiàn) PAGEREF _Toc21792 51 HYPERLINK l _Toc18156 附 錄 PAGEREF _Toc18156 521 緒 論Android是一種基于HYPERLINK :/baike.baidu /view/1634.htmLinux的自由與開放源代碼的HYPERLINK :/baike.baidu /view/880.htm操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如HYPERLINK :/baike.baidu /view/535.htm智能手機(jī)和HYPERLINK :/baike.baidu /

21、view/74538.htm平板電腦,由HYPERLINK :/baike.baidu /view/105.htmGoogle公司和HYPERLINK :/baike.baidu /view/1245202.htm開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)與開發(fā)。尚未有統(tǒng)一中文名稱,中國(guó)大陸地區(qū)較多人使用“HYPERLINK :/baike.baidu /view/3091265.htm安卓”或“HYPERLINK :/baike.baidu /view/3132747.htm安致”。Android操作系統(tǒng)最初由HYPERLINK :/baike.baidu /view/3949140.htmAndy Rubin開發(fā),

22、主要支持手機(jī)。2005年8月由Google收購(gòu)注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商與電信營(yíng)運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機(jī)發(fā)布于2008年10月。Android逐漸擴(kuò)展到平板電腦與其他領(lǐng)域上,如HYPERLINK :/baike.baidu /view/8623.htm電視、HYPERLINK :/baike.baidu /view/13650.htm數(shù)碼相機(jī)、HYPERLINK :/baike.baidu /view/15830.ht

23、m游戲機(jī)等。2011年第一季度,Android在全球的市場(chǎng)份額首次超過HYPERLINK :/baike.baidu /view/2059103.htm塞班系統(tǒng),躍居全球第一。 2012年11月數(shù)據(jù)顯示,Android占據(jù)全球智能HYPERLINK :/baike.baidu /view/148382.htm手機(jī)操作系統(tǒng)市場(chǎng)76%的份額,中國(guó)市場(chǎng)占有率為90%1。1.1 項(xiàng)目背景隨著計(jì)算機(jī)的廣泛運(yùn)用,手機(jī)市場(chǎng)的迅速發(fā)展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一部分了。于是各種手機(jī)播放器也緊跟著發(fā)展起來,但是很多播放器一味追求外觀花哨,功能龐大,對(duì)

24、用戶的手機(jī)造成了很多資源浪費(fèi),比如CPU,存等的占用率過高,在用戶需要多任務(wù)操作時(shí),受到了不小的影響,帶來了許多不便,而對(duì)于大多數(shù)普通用戶,許多功能用不上,形同虛設(shè)。針對(duì)以上各種弊端,選擇了開發(fā)多語(yǔ)種的音頻視頻播放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶(如聽歌,看電影)的需求,除了能播放常見格式的語(yǔ)音視頻文件,高級(jí)功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文等語(yǔ)言界面。要研究各種市場(chǎng)上流行的手機(jī)播放器,了解它們各自的插件與編碼方式,還有各種播放器播放的特別格式文件,分析各種編碼的優(yōu)缺點(diǎn)以與各種播放器本身存在的缺陷和特點(diǎn),編寫出功能實(shí)用,使用方便快捷的播放器。目

25、前已經(jīng)實(shí)現(xiàn)的功能有能播放常見音頻文件的功能,如MP3,WAV,等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進(jìn),快退,音量調(diào)節(jié)等。1.2 國(guó)外相關(guān)研究現(xiàn)狀與發(fā)展趨勢(shì)在Linux上流行的播放器有多種主要有Xmms,RealPlayer,Xmovie,QuickTime,Mplayer等,以下對(duì)這些播放器進(jìn)行分析介紹。1、Xmms Xmms是X-Window系統(tǒng)下最流行的多媒體播放器之一,大多數(shù)Linux版本都捆綁了改產(chǎn)品最為L(zhǎng)inux下的標(biāo)配音頻播放器,Xmms可以播放MP3、MOD、Wav等多媒體文件,而且只要提供相應(yīng)的插件,它還可以支持而更多的多媒體類型。2、Xmovie Xm

26、ovie最早是作為電視節(jié)目的播放軟件。它的播放界面非常簡(jiǎn)單。界面上除了播放、快進(jìn)、快退、播放時(shí)間顯示和播放進(jìn)度顯示這幾個(gè)主要功能外,沒有其他控制功能。界面上方的選單條不含有任何播放控制功能,基本上都是對(duì)播放畫面的調(diào)整和環(huán)境變量的控制。Xmovie支持mpg,mov,vob,m2v等視頻格式,同時(shí)它還能夠播放MP2和MP3音頻格式的文件。3、RealPlayer RealPlayer在低帶寬下支持音頻、視頻多媒體的低損失傳輸,同時(shí)具有優(yōu)秀的流媒體在線播放能力。RealPlayer for Linux版本的操作界面與其Windows平臺(tái)下的版本類似。RealPlayer的后續(xù)版本增加了對(duì)微軟視頻和

27、音頻的支持,并支持便攜式設(shè)備。4、QuickTime QuickTime是蘋果公司開發(fā)的流式音視頻解決方案,也是出現(xiàn)較早的流媒體文件格式之一,它由三個(gè)不同部分組成:QuickTime Move(電影)文件格式,QuickTime媒體抽象層、QuickTime置媒體服務(wù)系統(tǒng)。這類文件擴(kuò)展名通常是.mov,它所對(duì)應(yīng)的播放器是“QuickTime”。5、MPlayer MPlayer是Linux上的電影播放器,它的功能十分強(qiáng)大,能夠播放眾多格式的文件。MPlayer能使用眾多本地的Xanim,RealPlayer和Win32DLL邊解碼器,播放大多數(shù)MPEG、VOB、AVI、OGG、ASF/WMV等

28、文件,也能播放Video CD、SVCD、DVD和DivX格式的電影。MPlayer的另一個(gè)大的特色是支持廣泛的輸出設(shè)備,它可以在Xll、Xv、DGA、OpenGL、SVGAlib等下工作。 目前,媒體播放器主要趨向以下幾個(gè)方向:首先,支持多樣化格式。Xmms、Xmovie、QuickTime主要是針對(duì)固定的媒體格式類型或傳輸協(xié)議,具有一定的專用性,因此難以滿足廣大消費(fèi)者的的需求,如今的音頻,視頻格式越來越多,如常見的音頻WMA,MP3,MIDI以與視頻的RM,AVI等。如何能將能播放所有這些,是現(xiàn)今研究的方向。其次,可擴(kuò)展性也是一個(gè)必要的趨勢(shì),如今的播放器功能越來越強(qiáng)大,如何在現(xiàn)有的基礎(chǔ)上使

29、功能更全面,也是人們接受的一個(gè)因素。這就是本課題選用開放式Android平臺(tái)的一個(gè)原因,代碼完全公開,為其功能擴(kuò)展提供方便的條件。1.3 項(xiàng)目研究意義目前手機(jī)的音樂播放功能已經(jīng)是大家比較關(guān)注的一個(gè)部分了,不少人在購(gòu)買手機(jī)的時(shí)候都會(huì)關(guān)心手機(jī)的音樂播放的能力,這也足以看出目前大家對(duì)音樂播放功能的重視,所以一款性能良好的手機(jī)音樂播放器軟件一定會(huì)受到歡迎。和傳統(tǒng)的音樂播放器相比,手機(jī)播放音樂更加的容易攜帶,其他方面也都不輸于傳統(tǒng)音樂播放器所。一款專業(yè)的音樂播放軟件是手機(jī)中必不可少的要素,幾乎市場(chǎng)上所有的手機(jī)都擁有一個(gè)自帶的音樂播放軟件,通過軟件可以對(duì)音樂欣賞中一些必要的元素進(jìn)行人性化的設(shè)置,同時(shí)在操作

30、的時(shí)候也能得到一定的便利,但是不能滿足用戶的所有要求,所以就出現(xiàn)了各種各樣的手機(jī)音樂播放軟件,來滿足不同用戶的不同要求。不同手機(jī)平臺(tái)的手機(jī),所支持的音樂播放軟件也是各不一樣,而現(xiàn)在最流行的手機(jī)平臺(tái)就是google的android手機(jī)平臺(tái)。Android播放器是近年來手機(jī)當(dāng)中比較流行的音樂播放軟件.通過結(jié)合自己所學(xué)的知識(shí)來設(shè)計(jì)和開發(fā)Android音樂播放器,可以深入學(xué)習(xí)Android多媒體框架結(jié)構(gòu)和多媒體框架核心Open core,并通過對(duì)Open core的學(xué)習(xí)進(jìn)一步的認(rèn)識(shí)和理解Android多媒體播放機(jī)制,而且還可以在開發(fā)軟件實(shí)物的過程中,熟悉軟件開發(fā)流程,掌握Android領(lǐng)域小應(yīng)用開發(fā)的

31、方法,學(xué)習(xí)新的計(jì)算機(jī)知識(shí),豐富自己的知識(shí)面。 Android平臺(tái)是完全開放的平臺(tái),智能手機(jī)里的各種應(yīng)用軟件也越來越完備,在Android平臺(tái)設(shè)計(jì)和開發(fā)一款音樂播放器可以擺脫不夠智能音樂播放器的因素,并且具有很廣闊的前景。1.4 本文主要容本文的主要容是研究、分析和實(shí)現(xiàn)基于Android手機(jī)平臺(tái)的音樂播放器系統(tǒng),包括以下幾個(gè)部分: 第1章簡(jiǎn)要介紹了Android手機(jī)平臺(tái)的背景與發(fā)展情況。 第2章研究了基于Android平臺(tái)的軟件開發(fā)環(huán)境,主要包括Android平臺(tái)的產(chǎn)品支持、Android平臺(tái)軟件的消息機(jī)制。 第3章詳述進(jìn)行基于Android手機(jī)平臺(tái)的音樂播放器的開發(fā)的整個(gè)過程,包括對(duì)軟件的需求

32、分析、軟件的結(jié)構(gòu)設(shè)計(jì)。 第4章主要敘述了播放器的詳細(xì)設(shè)計(jì),包括主要模塊功能的實(shí)現(xiàn)以和部分核心代碼。 第5章是對(duì)音樂播放器的軟件測(cè)試,主要是對(duì)其功能驗(yàn)證,確定是否符合軟件規(guī)格要求,最后對(duì)全文進(jìn)行一個(gè)總結(jié)。2 安卓平臺(tái)介紹2.1安卓平臺(tái)介紹Android是一種基于Linux的自由與開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)與開發(fā)。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機(jī)。2005年8月由Google收購(gòu)注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商與電信營(yíng)運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Andr

33、oid系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。Android逐漸擴(kuò)展到平板電腦與其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。Android的架構(gòu)圖如圖2.1所示。 圖2.1 Android的架構(gòu)圖Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。從架構(gòu)圖看,Android分為四個(gè)層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和LinuxHYPERLINK :/baike.baidu /view/1366.htm核層。2.2 安卓結(jié)構(gòu)具體分析1、應(yīng)用程序Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括客戶端,SMS短消息程序

34、,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語(yǔ)言編寫的。2.、應(yīng)用程序框架 開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。 隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng), 其中包括;豐富而又可擴(kuò)展的視圖(Views),可以用來構(gòu)建應(yīng)用程序,它包括列表(Lists),網(wǎng)格(Grids),文本框(Text boxes),按鈕(Buttons), 甚至可嵌入的web瀏

35、覽器。容提供器(Content Providers)使得應(yīng)用程序可以訪問另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫(kù)),或者共享它們自己的數(shù)據(jù)。 資源管理器(Resource Manager)提供 非代碼資源的訪問,如本地字符串,圖形,和布局文件(Layout files )。通知管理器 (Notification Manager) 使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息?;顒?dòng)管理器(Activity Manager) 用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。3、系統(tǒng)運(yùn)行庫(kù)Android包含一些C/C+庫(kù),這些庫(kù)能被Android系統(tǒng)中不同的組件使用。它們通過Android應(yīng)用程序框

36、架為開發(fā)者提供服務(wù)。以下是一些核心庫(kù): (1) 系統(tǒng)C庫(kù)一個(gè)從BSD繼承來的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(kù)Libc,它是專門為基于Embedded linux的設(shè)備定制的。(2) 媒體庫(kù)基于PacketVideo OpenCORE;該庫(kù)支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4、 H.264、MP3、AAC、AMR、JPG、PNG等。(3)Surface Manager對(duì)顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提供了2D和3D圖層的無縫融合。(4)LibWebCore 一個(gè)最新的Web瀏覽器引擎用,支持Android瀏覽器和一個(gè)可嵌入的Web視圖。4、安卓運(yùn)行時(shí)庫(kù)And

37、roid包含一個(gè)核心庫(kù)的集合,提供大部分在Java編程語(yǔ)言核心類庫(kù)中可用的功能。每一個(gè)android應(yīng)用程序是Dalvik虛擬機(jī)中的實(shí)例,運(yùn)行在自己的進(jìn)程中。Dalvik虛擬機(jī)被設(shè)計(jì)成,在一個(gè)設(shè)備可以高效地運(yùn)行多個(gè)虛擬機(jī)。Dalvik虛擬機(jī)可執(zhí)行文件格式是dex,dex格式是專為Dalvik設(shè)計(jì)的一種壓縮格式,適合存和處理器速度有限的系統(tǒng)。Dalvik虛擬機(jī)依賴于Linux核提供基本功能,如線程和底層管理。5、Linux核 Android基于Linux version 2.6核來提供系統(tǒng)的核心服務(wù),例如:安全機(jī)制,存管理,進(jìn)程管理,網(wǎng)絡(luò)堆棧和驅(qū)動(dòng)模塊。該核還扮演著一個(gè)虛擬的中間層,該層介于硬件

38、和其余的軟件堆棧2。2.3 Android系統(tǒng)的四大組件 在Android系統(tǒng)中,為我們提供了四大基本組件,每個(gè)組件是一個(gè)視圖,但是有些是可見的,有些是不可見的視圖,像Activity,ContentProvider是可見的視圖,Service和BroadcastReceiver是不可見的,它們只在系統(tǒng)的后臺(tái)運(yùn)行。下面分別介紹四大組件:(1)Activity 簡(jiǎn)介 在Android系統(tǒng)中Activity提供可視化的用戶界面,一個(gè)Android應(yīng)用通常由多個(gè)Activity組成。多個(gè)Activity組成了Activity棧(Stack),當(dāng)前活動(dòng)的Activity處于棧頂。Activity有自己

39、的生命周期,由Android系統(tǒng)來控制。(2)Service 簡(jiǎn)介 顧名思義Service就是運(yùn)行在后臺(tái)的一種服務(wù)程序,一般很少和用戶交互,因此沒有可視化界面定義一個(gè)Service類比較簡(jiǎn)單,只要繼承Service類,實(shí)現(xiàn)其生命周期中的方法就可以了。一個(gè)定義好的Service必須在AndroidManifest.xml配置文件注冊(cè),通過元素聲明才能使用.Service有自己的生命周期,我們可以調(diào)用startService()啟動(dòng)一個(gè)Service或者bindService()方法來綁定一個(gè)存在的Service 。(3)Broadcast Receiver 簡(jiǎn)介 Broadcast Receiv

40、er 顧名思義廣播接收器,它和事件處理機(jī)制類似,只不過事件處理機(jī)制是程序組件級(jí)別的(例如,某個(gè)按鈕的單擊事件),而廣播事件處理機(jī)制是系統(tǒng)級(jí)別的。到目前為止我們可以使用Intent來啟動(dòng)一個(gè)程序組件,我們還可以通過使用sendBroadcast()方法來發(fā)起一個(gè)系統(tǒng)級(jí)別的事件廣播來傳遞消息。我們可以在你的應(yīng)用程序中實(shí)現(xiàn)Broadcast Receiver來監(jiān)聽和響應(yīng)這些廣播的Intent。Intent(意圖)主要是解決Android應(yīng)用的各項(xiàng)組件之間的通訊。Intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉與數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 I

41、ntent傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,Intent在這里起著一個(gè)媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。例如,在一個(gè)聯(lián)系人維護(hù)的應(yīng)用中,當(dāng)我們?cè)谝粋€(gè)聯(lián)系人列表屏幕(假設(shè)對(duì)應(yīng)的Activity為L(zhǎng)istActivity)上,點(diǎn)擊某個(gè)聯(lián)系人后,希望能夠跳出此聯(lián)系人的詳細(xì)信息屏幕(假設(shè)對(duì)應(yīng)的Activity為detailActivity)。為了實(shí)現(xiàn)這個(gè)目的,ListActivity需要構(gòu)造一個(gè) Intent,這個(gè)Intent用于告訴系統(tǒng),我們要做“查看”動(dòng)作,此動(dòng)作對(duì)應(yīng)的查看對(duì)象是“某聯(lián)系人”,然后調(diào)用startActivity (Intent

42、intent),將構(gòu)造的Intent傳入,系統(tǒng)會(huì)根據(jù)此Intent中的描述,到ManiFest中找到滿足此Intent要求的Activity,系統(tǒng)會(huì)調(diào)用找到的 Activity,即為detailActivity,最終傳入Intent,detail Activity則會(huì)根據(jù)此Intent中的描述,執(zhí)行相應(yīng)的操作。(4)Content Provider簡(jiǎn)介Content Provider 用來保存和檢索數(shù)據(jù),并且使應(yīng)用程序之間相互訪問數(shù)據(jù)成為可能。它是跨應(yīng)用程序共享數(shù)據(jù)的唯一方法。Android 為常用的數(shù)據(jù)類型(如:音視頻、圖片和聯(lián)系方式等)提供了大量的Content Provider。它們被定

43、義在Avider包下面。通過這樣定義好的Content Provider 我們可以方便的進(jìn)行數(shù)據(jù)操作。當(dāng)然我們必須擁有適當(dāng)?shù)臋?quán)限。我們也可以自己來定Content Provider共享我們的數(shù)據(jù),方便用戶的訪問4。2.4 安卓開發(fā)環(huán)境搭建2.4.1 Java環(huán)境搭建Android支持Windows XP以上操作系統(tǒng)。首先,需要有Java環(huán)境。方法很簡(jiǎn)單。第一步,登陸java.sun.,下載最新版本的jdk安裝jdk和jre兩個(gè)部分。選擇目錄,安裝(最好將兩部分放在同一個(gè)盤符)。點(diǎn)擊下一步即可。我這里安裝在C盤目錄下。第二步,需要配置環(huán)境變量。右擊“我的電腦”,在彈出的窗口中選擇屬性,在左邊高級(jí)

44、系統(tǒng)設(shè)置點(diǎn)擊環(huán)境變量按鈕,點(diǎn)擊右下角的新建按鈕變量名:JAVA_HOME,值C:jdk(你的jdk安裝目錄),點(diǎn)擊確定輸入。 以同樣的方法新建變量名為;CLASSPATH,值為:.;%JAVA_HOME%lib。注意,點(diǎn)號(hào)表示當(dāng)前目錄,不能省略。如圖2.2 圖2.2 環(huán)境變量配置 然后在系統(tǒng)變量中找到“path”,并點(diǎn)擊修改,在其對(duì)應(yīng)的最后面追加“%JAVA_HOME%bin;”,一直點(diǎn)擊確定按鈕,直到所有的窗口關(guān)閉。如圖2.3。這樣Java的環(huán)境搭建完畢。打開“運(yùn)行”窗口,輸入CMD命令,在提示符窗口中輸入java -version,如果顯示如圖2.4的信息表明搭建成功。 圖2.3 環(huán)境變量

45、配置圖2.4 環(huán)境搭建成功顯示信息2.4.2 安裝Eclipse開發(fā)工具Eclipse的安裝比較簡(jiǎn)單,登錄Eclipse官網(wǎng),下載Eclipse IDE for Java Developers。直接解壓就可以了。2.4.3 下載安裝SDK 首先,到SDK官方下載SDK包,然后解壓。雙擊SDK Manager.exe顯示如圖2.5,下載所需要的組件 圖2.5 SDK下載組件界面2.4.4安裝ADT插件在 eclipse 中安裝插件, 打開eclipse,點(diǎn)擊 help Install new Software 進(jìn)入后,點(diǎn)擊add,命名與點(diǎn)擊Archive選擇你下載的ADT壓縮包,點(diǎn)擊OK,會(huì)解析

46、出該插件的全部可用容,全選(select all),點(diǎn)擊下一步.安裝時(shí)需要一定時(shí)間,在安裝的過程中會(huì)出現(xiàn)一些提示,點(diǎn)擊允許即可,安裝完ADT插件后,點(diǎn)擊 window - preference,發(fā)現(xiàn)左側(cè)列表上多了一項(xiàng)android,點(diǎn)擊android 會(huì)提示錯(cuò)誤,是因?yàn)檫€沒有把 SDK 關(guān)聯(lián)到 ADT插件上,添加SDK目標(biāo)位置,如圖2.6。 圖2.6 添加SDK目標(biāo)文件夾到這里,Android的開發(fā)環(huán)境就搭建完成了。然后創(chuàng)建一個(gè)安卓模擬器就可以做安卓開發(fā)了如圖2.7。圖2.7 安卓模擬器界面2.5 Android Features特性Android系統(tǒng)有如下的幾大特性:(1) 應(yīng)用程序框架 支

47、持組件的重用與替換。(2) Dalvik虛擬機(jī) 專門為移動(dòng)設(shè)備做了優(yōu)化。 (3) 部集成瀏覽器 該瀏覽器基于開源的WebKit引擎。 (4) 優(yōu)化的圖形庫(kù) 包括2D和3D圖形庫(kù),3D圖形庫(kù)基于OpenGLES。(5) SQLite 用作結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)。 (6) 多媒體支持 包括常見的音頻、視頻和靜態(tài)印象文件格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)。(7) GSM(依賴于硬件)。 (8) 藍(lán)牙Bluetooth, EDGE, 3G, and WiFi (依賴于硬件)。 (9) 照相機(jī),GPS,指南針,和加速度計(jì) (依賴于硬件)。 (10)

48、豐富的開發(fā)環(huán)境 包括設(shè)備模擬器,調(diào)試工具,存與性能分析圖表,和Eclipse集成開發(fā)環(huán)境插件。2.6數(shù)據(jù)存儲(chǔ)方式 在播放器正常運(yùn)行時(shí),由于各界面存在相互跳轉(zhuǎn),為了避免數(shù)據(jù)在界面跳轉(zhuǎn)的過程中丟失,我們需要將一些數(shù)據(jù)進(jìn)行臨時(shí)存儲(chǔ)或者永久存儲(chǔ)。 Android作為一種手機(jī)操作系統(tǒng),提供了如下幾種存取數(shù)據(jù)的方式:Preferenc(配置)、File(文件)、SQLite數(shù)據(jù)和網(wǎng)絡(luò) 。 另外,在Android中各個(gè)應(yīng)用程序組件之間是相互獨(dú)立的,彼此的數(shù)據(jù)不能共享。為了實(shí)現(xiàn)數(shù)據(jù)的共享,Android提供了Content Provider組件來實(shí)現(xiàn)應(yīng)用程序之間數(shù)據(jù)的共享 。2.6.1 SharedPrefe

49、rencesPreference Preference提供了一種輕量級(jí)的數(shù)據(jù)存取方法,一般數(shù)據(jù)比較少,一些簡(jiǎn)單的配置信息。它以“鍵-值”(是一個(gè)Map)對(duì)的方式,將數(shù)據(jù)保存在一個(gè)XML配置文件中使用到的接口(詳細(xì)容見文檔)android.content .SharedPreferences提供了保存數(shù)據(jù)的方法,android.content .SharedPreferences.Editor提供了獲得數(shù)據(jù)的方法。2.6.2 File存儲(chǔ)方式 我們可以將一些數(shù)據(jù)直接以文件的形式保存在設(shè)備中。例如,一些文本文件、PDF文件、音視頻文件和圖片等。Android提供了文件讀寫的方法: Context.

50、openFileInput()獲得標(biāo)準(zhǔn)Java文件輸入流(FileInputStream),Context.openFileOutput()獲得標(biāo)準(zhǔn)Java文件輸出流(FileOutputStream),Resources.openRawResource (R.raw.myDataFile)方法返回InputStream。2.6.3 SQLiteDatabase數(shù)據(jù)庫(kù)SQLite是一個(gè)嵌入式數(shù)據(jù)庫(kù)引擎,針對(duì)存等資源有限的設(shè)備(如手機(jī)、PDA、MP3)提供的一種高效的數(shù)據(jù)庫(kù)引擎 SQLite數(shù)據(jù)庫(kù)不像其它的數(shù)據(jù)庫(kù)(如:Oracle),它沒有服務(wù)器進(jìn)程。所有的容包含在同一個(gè)單文件中。該文件是跨平臺(tái)

51、的可以自由拷貝?;谄渥陨淼南忍靸?yōu)勢(shì),SQLite在嵌入式領(lǐng)域得到了廣泛應(yīng)用 。(1)SQLiteDatabase類SQLiteDatabase代表一個(gè)數(shù)據(jù)庫(kù)對(duì)象,提供了操作數(shù)據(jù)庫(kù)的一些常用方法如表2.8。表2.8 操作數(shù)據(jù)庫(kù)的常用方法 方法名稱 方法描述 OpenonCreatDatabase(String path,SQLiteDatabase.CusorFactory factory) 打開或者創(chuàng)建數(shù)據(jù)庫(kù) Insert(String table,String nullColumHack,ContentValues values) 添加一條記錄 Delete(String table,St

52、ring whereClause,String whereArgs) 刪除一條記錄 Query(Stringtable,Stringcolums,Stringselection,StringselectionArgs,String goupBy,String having,String orderBy) 查詢記錄 Update(String table,ContentValues,Sting whereClause,String whereArgs) 修改記錄 exeSQL(String sql) 執(zhí)行一條SQL語(yǔ)句Close() 關(guān)閉數(shù)據(jù)庫(kù)(2) SQLiteOpenHelper類SQLit

53、eOpenHelper是SQLiteDatabase的一個(gè)幫助類,用來管理數(shù)據(jù)庫(kù)的創(chuàng)建和版本更新。一般的用法是定義一個(gè)類繼承之,并實(shí)現(xiàn)其兩個(gè)抽象方法onCreate(SQLiteDatabasedb)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)兩個(gè)抽象方法來創(chuàng)建和更新數(shù)據(jù)庫(kù),一些常用方法如表2.9。表2.9 更新數(shù)據(jù)庫(kù)常用方法 方法名稱 方法描述SQLiteOpenHelper(Contextcontext,Stringname,SQLiteDatabase.CurorFactory factory,int vers

54、ion) 構(gòu)造方法,一般是傳遞一個(gè)要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)稱name參數(shù)onCreate(SQLiteDatabase db) 創(chuàng)建數(shù)據(jù)庫(kù)是調(diào)用onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) 版本更新時(shí)調(diào)用getReadableDatabase() 創(chuàng)建或打開一個(gè)只讀數(shù)據(jù)庫(kù)getWritableDatabase() 創(chuàng)建或者打開一個(gè)讀寫數(shù)據(jù)庫(kù)/data/data/package/shared_prefs/ Android的三種數(shù)據(jù)存儲(chǔ)方式則讓我們可以輕松方便的進(jìn)行程序編寫和數(shù)據(jù)的訪問,更不會(huì)讓不該消失的數(shù)據(jù)消失,這對(duì)我們進(jìn)行程序書寫有很

55、大我?guī)椭?.7 Android工程程序結(jié)構(gòu)Android工程基本結(jié)構(gòu)目錄包括:src (源代碼)、gen(Android系統(tǒng)自動(dòng)生成的常量)、Res(資源文件):主要存放程序界面的布局配置(.xml)文件和圖片資源。AndroidMainfes.xml(下節(jié)介紹) 是四大組件的驅(qū)動(dòng)配置文件,有它的存在,Android程序的四大組件才可以正常的跳轉(zhuǎn)。Android資源的類型和布局(表2.10)。 表 2.10 Android資源的類型和布局目錄結(jié)構(gòu)資源類型 res/anim/ XMLd動(dòng)畫文件 res/drawable/ 一些位圖文件 res/layout/ xml布局文件 res/value

56、/ 各種xml資源文件 Arrays.xml: XML數(shù)據(jù)文件 Colors.xml: XML顏色文件 Dimens.xml: XML尺寸文件 Styles.xml :XML樣式文件 res/xml/ 任意的XML文件 res/raw/ 直接拷到設(shè)備中的原生文件 res/menr/ XML菜單文件2.8 AndroidManifest.xml文件Android系統(tǒng)的任何一個(gè)程序啟動(dòng)都需要AndroidManifest.xml來啟動(dòng)程序,任何一個(gè)新建的工程目錄都會(huì)自動(dòng)生成一個(gè)AndroidManifest.xml文件,此配置文件是整個(gè)程序能夠正常運(yùn)行的核心,它里面包含了Android SDK的版

57、本,程序運(yùn)行的默認(rèn)Activity,當(dāng)程序中的任何一個(gè)組件觸發(fā)事件后,系統(tǒng)都會(huì)自動(dòng)的去AndroidManifest.xml中尋找標(biāo)識(shí)來作出相應(yīng)的操作。任何一個(gè)AndroidManifest.Xml文件的格式都應(yīng)為:Android系統(tǒng)有一個(gè)編碼的規(guī)定,支持的編碼是utf-8,當(dāng)程序中出現(xiàn)亂碼是,我們須將其編碼格式轉(zhuǎn)化為utf-8.在 AndroidManifest.xml中會(huì)在第一行聲明一句:。它是該系統(tǒng)支持的版本和編碼。在第二行定義了我們需使用的架構(gòu),該架構(gòu)來自xmlns:Android= HYPERLINK :/schemas.Android /apk/res/Android schema

58、s.Android./apk/res/Android。Xmlns(XML namespace)是一個(gè)命名空間,它就像一條河的源頭一樣能讓我們找到系統(tǒng)架構(gòu),每一個(gè)配置文件必須有這個(gè)xmlns,否則程序中的所使用的所有資源將無法找到。在application元素我們定義Android:icon=drawable/iconAndroid:label=string/app_name,Android:icon是程序在手機(jī)中顯示的圖片,我們運(yùn)用drawable/icon表示了對(duì)res/drawable目錄下的icon.png的引用。string/app_name表示了對(duì)res/value目錄下string

59、.Xml中定義的app_name參數(shù)的引用。 因?yàn)橄到y(tǒng)首先要啟動(dòng)的Activity是C_MusicPlayerActivity,所以文件如下:在intent-filter選項(xiàng)中,有action和category等等屬性,我們需要定義action的值為Aent.action.MAIN,category的值為Aent.category.LAUNCHER,它們是系統(tǒng)的值,程序在解析到這些常用后就可以確定首先要啟動(dòng)的Activity。當(dāng)我們需要通過一個(gè)組件觸發(fā)另一個(gè)組件時(shí),我們將設(shè)定action和category的其它屬性值,系統(tǒng)會(huì)根據(jù)我們?cè)O(shè)定的屬性值去AndroidManifest.Xml的appl

60、ication 中尋找標(biāo)識(shí),任何一個(gè)Activity的action和category是唯一,所以程序在任何時(shí)候都能唯一啟動(dòng)一個(gè)Activity,這樣,不同的Activity之間的跳轉(zhuǎn)就實(shí)現(xiàn)了。在AndroidManifest.Xml中有一個(gè)根結(jié)點(diǎn),它是我們需要定義的ADT版本,例如我們將其值設(shè)定為Android:minSdkVersion=10,則表示此Android工程所用的版本為2.3,Android還有1.1、1.5、1.6、2.0、2.1、2.2、2.3、3.0、4.0這幾個(gè)版本。如果我們需要對(duì)網(wǎng)絡(luò)進(jìn)行訪問,比如打開一個(gè)網(wǎng)頁(yè),剛我還需要設(shè)置一個(gè)網(wǎng)絡(luò)訪問權(quán)限uses-permission

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論