計算機科學與技術專業(yè)畢業(yè)設計-基于安卓平臺的音樂播放器_第1頁
已閱讀1頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  畢業(yè)設計</b></p><p>  基于安卓平臺的音樂播放器</p><p>  2013年6月10日</p><p> 院 別計算機與通信工程學院</p><p> 專業(yè)名稱計算機科學與技術</p><p> 班級學號</p><p>

2、 學生姓名</p><p> 指導教師</p><p>  基于安卓平臺的音樂播放器設計與開發(fā) </p><p>  摘 要 </p><p>  Android平臺是Google公司最新推出的一個手機平臺,該平臺對移動設備的程序集中包括一個操作系統(tǒng),一個中間件和一些關鍵性應用。使用該平臺不需要任何費用,代碼完全開放。開發(fā)人員可以

3、在平臺系統(tǒng)上快速開發(fā),并可以利用其它開發(fā)人員的工作成果。所以,這為手機開發(fā)創(chuàng)造了更大的靈活性,工作少,周期短,快速成型,并一步到位,同時用戶可以最大限度的自定義自己的手機,以豐富自己手機的功能,增加手機在市場上的競爭力。Android平臺以Linux系統(tǒng)作為平臺的基礎,使用Linux內核可以加快軟件移植速度。</p><p>  本文以Android開發(fā)平臺為基礎,首先簡要介紹了安卓平臺發(fā)展歷程、以及當前國內外的

4、發(fā)展現(xiàn)狀。然后詳細的介紹了Android開發(fā)平臺的開發(fā)環(huán)境。之后對基于Android平臺的音樂播發(fā)器系統(tǒng)做了一個詳細的需求分析。在需求分析結束后詳細論述了音樂播放器的詳細設計。根據(jù)Android開發(fā)平臺自身的結構特點,把音樂播放器的開發(fā)分為兩個部分來進行分析和設計,一部分是窗口的設計,主要是定義窗口的屬性和關聯(lián)窗口的處理函數(shù);另一部分是功能的實現(xiàn),主要是結合Android平臺提供的資源和對音樂播放器的功能分析最終實現(xiàn)定義的功能。最后對基

5、于Android開發(fā)平臺的音樂播放系統(tǒng)進行功能測試與驗證。</p><p>  關鍵詞:Android平臺,音樂播放器,基于Android平臺的開發(fā)與設計</p><p>  The Design and Development of Music Player Based on Android platform</p><p>  Author:XXX</p&

6、gt;<p><b>  Tutor:XXX</b></p><p>  Abstract </p><p>  Android platform is Google’S latest launch of a mobile platform,the platform for procedures of mobile devices,includes a

7、n operating systems,a middle ware and some critical applications.The platform does not require any charges.The code is completely open.Developers can quickly develop on the platform system and other developers can use th

8、e results of the work by other developers.Therefore,It made greater flexibility for the development of mobile phone,less work,short cycle,rapid prototyping and </p><p>  This article takes the Android develo

9、ping platform as a foundation.First 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 article in

10、troduces 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 desi

11、gn of Music player.Base</p><p>  ’Key Words:Android platform,Music player ,The Design and Development based on Android platform</p><p>  目 錄 </p><p><b>  1 緒

12、 論1</b></p><p>  1.1 項目背景1</p><p>  1.2 國內外相關研究現(xiàn)狀及發(fā)展趨勢2</p><p>  1.3 項目研究意義3</p><p>  1.4 本文主要內容3</p><p>  2 安卓平臺介紹5</p><p> 

13、 2.1 安卓平臺介紹5</p><p>  2.2 安卓結構具體分析6</p><p>  2.3 Android系統(tǒng)的四大組件7</p><p>  2.4 安卓開發(fā)環(huán)境搭建9</p><p>  2.4.1 Java環(huán)境搭建9</p><p>  2.4.2 安裝Eclipse開發(fā)工具10

14、</p><p>  2.4.3 下載安裝SDK10</p><p>  2.4.4 安裝ADT插件11</p><p>  2.5 Android Features特性12</p><p>  2.6 數(shù)據(jù)存儲方式13</p><p>  2.6.1 SharedPreferences13<

15、;/p><p>  2.6.2 File存儲方式13</p><p>  2.6.3 SQLiteDatabase數(shù)據(jù)庫13</p><p>  2.7 Android工程程序結構14</p><p>  2.8 AndroidManifest.xml文件15</p><p>  2.9 安卓平臺

16、的優(yōu)勢17</p><p>  3 需求分析19</p><p>  3.1 軟件目標19</p><p>  3.2 軟件的可行性研究19</p><p>  3.2.1 經(jīng)濟上的可行性19</p><p>  3.2.2 技術上的可行性19</p><p>  3.2

17、.3 操作上的可行性20</p><p>  3.3 功能需求20</p><p>  3.3.1 用例圖及用例描述20</p><p>  3.3.2 音樂播放器的時序圖22</p><p>  3.4 軟件規(guī)格說明23</p><p>  4 項目實現(xiàn)25</p><p&

18、gt;  4.1 歡迎界面25</p><p>  4.2 主界面27</p><p>  4.2.1 播放音軌SeekBar28</p><p>  4.2.2 播放調節(jié)功能實現(xiàn)31</p><p>  4.3 歌詞顯示界面34</p><p>  4.4 歌曲列表界面38</p>

19、<p>  4.5 專輯列表界面40</p><p>  5 音樂播放器的測試42</p><p>  5.1 測試模型43</p><p>  5.1.1 V模型43</p><p>  5.1.2 W模型43</p><p>  5.2 測試模型的選擇44</p>

20、<p>  5.3 測試方法45</p><p>  5.3.1 白盒測試45</p><p>  5.3.2 黑盒測試45</p><p>  5.3.3 測試方法的選擇46</p><p>  5.4 功能的測試與實現(xiàn)46</p><p>  5.4.1 播放器整體功能的實現(xiàn)46

21、</p><p>  5.4.2 播放器主要模塊功能測試47</p><p>  5.5 測試結論47</p><p>  5.6 測試過程與總結47</p><p><b>  結 論49</b></p><p><b>  致 謝50</b>&

22、lt;/p><p><b>  參考文獻51</b></p><p><b>  附 錄52</b></p><p><b>  1 緒 論</b></p><p>  Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能手機和平板

23、電腦,由Google公司和開放手機聯(lián)盟領導及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運商組建開放手機聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權方式,發(fā)布了Android的源代碼。第一部Android

24、智能手機發(fā)布于2008年10月。Android逐漸擴展到平板電腦及其他領域上,如電視、數(shù)碼相機、游戲機等。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。 2012年11月數(shù)據(jù)顯示,Android占據(jù)全球智能手機操作系統(tǒng)市場76%的份額,中國市場占有率為90%[1]。</p><p><b>  1.1 項目背景</b></p><p&g

25、t;  隨著計算機的廣泛運用,手機市場的迅速發(fā)展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一部分了。于是各種手機播放器也緊跟著發(fā)展起來,但是很多播放器一味追求外觀花哨,功能龐大,對用戶的手機造成了很多資源浪費,比如CPU,內存等的占用率過高,在用戶需要多任務操作時,受到了不小的影響,帶來了許多不便,而對于大多數(shù)普通用戶,許多功能用不上,形同虛設。針對以上各種弊端,選擇了開發(fā)多語種的音頻視頻播

26、放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶(如聽歌,看電影)的需求,除了能播放常見格式的語音視頻文件,高級功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文等語言界面。 要研究各種市場上流行的手機播放器,了解它們各自的插件及編碼方式,還有各種播放器播放的特別格式文件,分析各種編碼的優(yōu)缺點以及各種播放器本身存在的缺陷和特點,編寫出功能實用,使用方便快捷的播放器。目前已經(jīng)實現(xiàn)的功能有能播放常見音頻文件的功能

27、,如MP3,WAV,等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進,快退,音量調節(jié)等。</p><p>  1.2 國內外相關研究現(xiàn)狀及發(fā)展趨勢</p><p>  在Linux上流行的播放器有多種主要有Xmms,RealPlayer,Xmovie,QuickTime,Mplayer等,以下對這些播放器進行分析介紹。</p><p><b>

28、;  1、Xmms</b></p><p>  Xmms是X-Window系統(tǒng)下最流行的多媒體播放器之一,大多數(shù)Linux版本都捆綁了改產(chǎn)品最為Linux下的標配音頻播放器,Xmms可以播放MP3、MOD、Wav等多媒體文件,而且只要提供相應的插件,它還可以支持而更多的多媒體類型。</p><p><b>  2、Xmovie</b></p>

29、<p>  Xmovie最早是作為電視節(jié)目的播放軟件。它的播放界面非常簡單。界面上除了播放、快進、快退、播放時間顯示和播放進度顯示這幾個主要功能外,沒有其他控制功能。界面上方的選單條不含有任何播放控制功能,基本上都是對播放畫面的調整和環(huán)境變量的控制。Xmovie支持mpg,mov,vob,m2v等視頻格式,同時它還能夠播放MP2和MP3音頻格式的文件。</p><p>  3、RealPlayer&l

30、t;/p><p>  RealPlayer在低帶寬下支持音頻、視頻多媒體的低損失傳輸,同時具有優(yōu)秀的流媒體在線播放能力。RealPlayer for Linux版本的操作界面與其Windows平臺下的版本類似。RealPlayer的后續(xù)版本增加了對微軟視頻和音頻的支持,并支持便攜式設備。</p><p>  4、QuickTime</p><p>  QuickTime

31、是蘋果公司開發(fā)的流式音視頻解決方案,也是出現(xiàn)較早的流媒體文件格式之一,它由三個不同部分組成:QuickTime Move(電影)文件格式,QuickTime媒體抽象層、QuickTime內置媒體服務系統(tǒng)。這類文件擴展名通常是.mov,它所對應的播放器是“QuickTime”。</p><p><b>  5、MPlayer</b></p><p>  MPlayer是

32、Linux上的電影播放器,它的功能十分強大,能夠播放眾多格式的文件。MPlayer能使用眾多本地的Xanim,RealPlayer和Win32DLL邊解碼器,播放大多數(shù)MPEG、VOB、AVI、OGG、ASF/WMV等文件,也能播放Video CD、SVCD、DVD和DivX格式的電影。MPlayer的另一個大的特色是支持廣泛的輸出設備,它可以在Xll、Xv、DGA、OpenGL、SVGAlib等下工作。</p><

33、p>  目前,媒體播放器主要趨向以下幾個方向:首先,支持多樣化格式。Xmms、Xmovie、QuickTime主要是針對固定的媒體格式類型或傳輸協(xié)議,具有一定的專用性,因此難以滿足廣大消費者的的需求,如今的音頻,視頻格式越來越多,如常見的音頻WMA,MP3,MIDI以及視頻的RM,AVI等。如何能將能播放所有這些,是現(xiàn)今研究的方向。其次,可擴展性也是一個必要的趨勢,如今的播放器功能越來越強大,如何在現(xiàn)有的基礎上使功能更全面,也是人

34、們接受的一個因素。這就是本課題選用開放式Android平臺的一個原因,代碼完全公開,為其功能擴展提供方便的條件。</p><p>  1.3 項目研究意義</p><p>  目前手機的音樂播放功能已經(jīng)是大家比較關注的一個部分了,不少人在購買手機的時候都會關心手機的音樂播放的能力,這也足以看出目前大家對音樂播放功能的重視,所以一款性能良好的手機音樂播放器軟件一定會受到歡迎。和傳統(tǒng)的音樂播放

35、器相比,手機播放音樂更加的容易攜帶,其他方面也都不輸于傳統(tǒng)音樂播放器所。</p><p>  一款專業(yè)的音樂播放軟件是手機中必不可少的要素,幾乎市場上所有的手機都擁有一個自帶的音樂播放軟件,通過軟件可以對音樂欣賞中一些必要的元素進行人性化的設置,同時在操作的時候也能得到一定的便利,但是不能滿足用戶的所有要求,所以就出現(xiàn)了各種各樣的手機音樂播放軟件,來滿足不同用戶的不同要求。不同手機平臺的手機,所支持的音樂播放軟件

36、也是各不相同,而現(xiàn)在最流行的手機平臺就是google的android手機平臺。</p><p>  Android播放器是近年來手機當中比較流行的音樂播放軟件.通過結合自己所學的知識來設計和開發(fā)Android音樂播放器,可以深入學習Android多媒體框架結構和多媒體框架核心Open core,并通過對Open core的學習進一步的認識和理解Android多媒體播放機制,而且還可以在開發(fā)軟件實物的過程中,熟悉軟

37、件開發(fā)流程,掌握Android領域小應用開發(fā)的方法,學習新的計算機知識,豐富自己的知識面。 Android平臺是完全開放的平臺,智能手機里的各種應用軟件也越來越完備,在Android平臺設計和開發(fā)一款音樂播放器可以擺脫不夠智能音樂播放器的因素,并且具有很廣闊的前景。</p><p>  1.4 本文主要內容</p><p>  本文的主要內容是研究、分析和實現(xiàn)基于Android手機平臺的音

38、樂播放器</p><p>  系統(tǒng),包括以下幾個部分:</p><p>  第1章簡要介紹了Android手機平臺的背景及發(fā)展情況。</p><p>  第2章研究了基于Android平臺的軟件開發(fā)環(huán)境,主要包括Android平臺的產(chǎn)品支持、Android平臺軟件的消息機制。</p><p>  第3章詳述進行基于Android手機平臺的音樂

39、播放器的開發(fā)的整個過程,包括對軟件的需求分析、軟件的結構設計。</p><p>  第4章主要敘述了播放器的詳細設計,包括主要模塊功能的實現(xiàn)以和部分核心代碼。 </p><p>  第5章是對音樂播放器的軟件測試,主要是對其功能驗證,確定是否符合軟件規(guī)格要求,最后對全文進行一個總結。</p><p><b>  2 安卓平臺介紹</b&

40、gt;</p><p><b>  2.1安卓平臺介紹</b></p><p>  Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領導及開發(fā)。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機。2005年8月由Google收購注資。2007年11月,Google

41、與84家硬件制造商、軟件開發(fā)商及電信營運商組建開放手機聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權方式,發(fā)布了Android的源代碼。Android逐漸擴展到平板電腦及其他領域上,如電視、數(shù)碼相機、游戲機等。Android的架構圖如圖2.1所示。</p><p>  圖2.1 Android的架構圖</p><p>  Android的系統(tǒng)架構和其操作

42、系統(tǒng)一樣,采用了分層的架構。從架構圖看,Android分為四個層分別是應用程序層、應用程序框架層、系統(tǒng)運行庫層和Linux內核層。</p><p>  2.2 安卓結構具體分析</p><p><b>  1、應用程序</b></p><p>  Android會同一系列核心應用程序包一起發(fā)布,該應用程序包包括客戶端,SMS短消息程序,日歷,地

43、圖,瀏覽器,聯(lián)系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。</p><p><b>  2.、應用程序框架</b></p><p>  開發(fā)人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性)。同樣,該應用程序

44、重用機制也使用戶可以方便的替換程序組件。</p><p>  隱藏在每個應用后面的是一系列的服務和系統(tǒng), 其中包括;豐富而又可擴展的視圖(Views),可以用來構建應用程序,它包括列表(Lists),網(wǎng)格(Grids),文本框(Text boxes),按鈕(Buttons), 甚至可嵌入的web瀏覽器。</p><p>  內容提供器(Content Providers)使得應用程序可以訪

45、問另一個應用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)。</p><p>  資源管理器(Resource Manager)提供 非代碼資源的訪問,如本地字符串,圖形,和布局文件(Layout files )。</p><p>  通知管理器 (Notification Manager) 使得應用程序可以在狀態(tài)欄中顯示自定義的提示信息。</p><p> 

46、 活動管理器(Activity Manager) 用來管理應用程序生命周期并提供常用的導航回退功能。</p><p>  3、系統(tǒng)運行庫 </p><p>  Android包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過Android應用程序框架為開發(fā)者提供服務。以下是一些核心庫:</p><p>  (1) 系統(tǒng)C庫——一個從B

47、SD繼承來的標準C系統(tǒng)函數(shù)庫Libc,它是專門為基于Embedded linux的設備定制的。</p><p>  (2) 媒體庫——基于PacketVideo OpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態(tài)圖像文件。編碼格式包括MPEG4、 H.264、MP3、AAC、AMR、JPG、PNG等。</p><p>  (3) Surface Manager——對

48、顯示子系統(tǒng)的管理,并且為多個應用程序提供了2D和3D圖層的無縫融合。</p><p>  (4) LibWebCore ——一個最新的Web瀏覽器引擎用,支持Android瀏覽器和一個可嵌入的Web視圖。</p><p><b>  4、安卓運行時庫</b></p><p>  Android包含一個核心庫的集合,提供大部分在Java編程語言核

49、心類庫中可用的功能。每一個android應用程序是Dalvik虛擬機中的實例,運行在自己的進程中。Dalvik虛擬機被設計成,在一個設備可以高效地運行多個虛擬機。Dalvik虛擬機可執(zhí)行文件格式是dex,dex格式是專為Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統(tǒng)。</p><p>  Dalvik虛擬機依賴于Linux內核提供基本功能,如線程和底層管理。</p><p>

50、;  5、Linux內核 </p><p>  Android基于Linux version 2.6內核來提供系統(tǒng)的核心服務,例如:安全機制,內存管理,進程管理,網(wǎng)絡堆棧和驅動模塊。該內核還扮演著一個虛擬的中間層,該層介于硬件和其余的軟件堆棧[2]。</p><p>  2.3 Android系統(tǒng)的四大組件</p><p>  在Android系統(tǒng)中,為我們提供了

51、四大基本組件,每個組件是一個視圖,但是有些是可見的,有些是不可見的視圖,像Activity,ContentProvider是可見的視圖,Service和BroadcastReceiver是不可見的,它們只在系統(tǒng)的后臺運行。下面分別介紹四大組件:</p><p>  (1) Activity 簡介</p><p>  在Android系統(tǒng)中Activity提供可視化的用戶界面,一個Andro

52、id應用通常由多個Activity組成。多個Activity組成了Activity棧(Stack),當前活動的Activity處于棧頂。Activity有自己的生命周期,由Android系統(tǒng)來控制。</p><p>  (2) Service 簡介</p><p>  顧名思義Service就是運行在后臺的一種服務程序,一般很少和用戶交互,因此沒有可視化界面定義一個Service類比較簡單

53、,只要繼承Service類,實現(xiàn)其生命周期中的方法就可以了。一個定義好的Service必須在AndroidManifest.xml配置文件注冊,通過<service>元素聲明才能使用.Service有自己的生命周期,我們可以調用startService()啟動一個Service或者bindService()方法來綁定一個存在的Service 。</p><p>  (3) Broadcast Rec

54、eiver 簡介</p><p>  Broadcast Receiver 顧名思義廣播接收器,它和事件處理機制類似,只不過事件處理機制是程序組件級別的(例如,某個按鈕的單擊事件),而廣播事件處理機制是系統(tǒng)級別的。到目前為止我們可以使用Intent來啟動一個程序組件,我們還可以通過使用sendBroadcast()方法來發(fā)起一個系統(tǒng)級別的事件廣播來傳遞消息。我們可以在你的應用程序中實現(xiàn)Broadcast Rece

55、iver來監(jiān)聽和響應這些廣播的Intent。Intent(意圖)主要是解決Android應用的各項組件之間的通訊。</p><p>  Intent負責對應用中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進行描述,Android則根據(jù)此Intent的描述,負責找到對應的組件,將 Intent傳遞給調用的組件,并完成組件的調用。</p><p>  因此,Intent在這里起著一個媒體中介的作用,

56、專門提供組件互相調用的相關信息,實現(xiàn)調用者與被調用者之間的解耦。</p><p>  例如,在一個聯(lián)系人維護的應用中,當我們在一個聯(lián)系人列表屏幕(假設對應的Activity為ListActivity)上,點擊某個聯(lián)系人后,希望能夠跳出此聯(lián)系人的詳細信息屏幕(假設對應的Activity為detailActivity)。</p><p>  為了實現(xiàn)這個目的,ListActivity需要構造一

57、個 Intent,這個Intent用于告訴系統(tǒng),我們要做“查看”動作,此動作對應的查看對象是“某聯(lián)系人”,然后調用startActivity (Intent intent),將構造的Intent傳入,系統(tǒng)會根據(jù)此Intent中的描述,到ManiFest中找到滿足此Intent要求的Activity,系統(tǒng)會調用找到的 Activity,即為detailActivity,最終傳入Intent,detail Activity則會根據(jù)此Inte

58、nt中的描述,執(zhí)行相應的操作。</p><p>  (4) Content Provider簡介</p><p>  Content Provider 用來保存和檢索數(shù)據(jù),并且使應用程序之間相互訪問數(shù)據(jù)成為可能。它是跨應用程序共享數(shù)據(jù)的唯一方法。Android 為常用的數(shù)據(jù)類型(如:音視頻、圖片和聯(lián)系方式等)提供了大量的Content Provider。它們被定義在Android.prov

59、ider包下面。通過這樣定義好的Content Provider 我們可以方便的進行數(shù)據(jù)操作。當然我們必須擁有適當?shù)臋嘞?。我們也可以自己來定Content Provider共享我們的數(shù)據(jù),方便用戶的訪問[4]。</p><p>  2.4 安卓開發(fā)環(huán)境搭建 </p><p>  2.4.1 Java環(huán)境搭建</p><p>  Android支持Windows

60、XP以上操作系統(tǒng)。首先,需要有Java環(huán)境。方法很簡單。第一步,登陸http://java.sun.com,下載最新版本的jdk安裝jdk和jre兩個部分。選擇目錄,安裝(最好將兩部分放在同一個盤符)。點擊下一步即可。我這里安裝在C盤目錄下。第二步,需要配置環(huán)境變量。右擊“我的電腦”,在彈出的窗口中選擇屬性,在左邊高級系統(tǒng)設置點擊環(huán)境變量按鈕,點擊右下角的新建按鈕變量名:JAVA_HOME,值C:\jdk(你的jdk安裝目錄),點擊確定

61、輸入。</p><p>  以同樣的方法新建變量名為;CLASSPATH,值為:.;%JAVA_HOME%\lib。注意,點號表示當前目錄,不能省略。如圖2.2</p><p>  圖2.2 環(huán)境變量配置</p><p>  然后在系統(tǒng)變量中找到“path”,并點擊修改,在其對應的最后面追加“%JAVA_HOME%\bin;”,一直點擊確定按鈕,直到所有的窗口關閉。

62、如圖2.3。這樣Java的環(huán)境搭建完畢。打開“運行”窗口,輸入CMD命令,在提示符窗口中輸入java -version,如果顯示如圖2.4的信息表明搭建成功。</p><p>  圖2.3 環(huán)境變量配置</p><p>  圖2.4 環(huán)境搭建成功顯示信息</p><p>  2.4.2 安裝Eclipse開發(fā)工具</p><p>  Ecli

63、pse的安裝比較簡單,登錄Eclipse官網(wǎng),下載Eclipse IDE for Java Developers。直接解壓就可以了。</p><p>  2.4.3 下載安裝SDK</p><p>  首先,到SDK官方網(wǎng)站下載SDK包,然后解壓。雙擊SDK Manager.exe顯示如圖2.5,下載所需要的組件</p><p>  圖 2.5 SDK下載組件界面

64、</p><p>  2.4.4 安裝ADT插件</p><p>  在 eclipse 中安裝插件, 打開eclipse,點擊 help ---> Install new Software 進入后,點擊add,命名及點擊Archive選擇你下載的ADT壓縮包,點擊OK,會解析出該插件的全部可用內容,全選(select all),點擊下一步...安裝時需要一定時間,在安裝的過程中會出

65、現(xiàn)一些提示,點擊允許即可,安裝完ADT插件后,點擊 window --> preference,發(fā)現(xiàn)左側列表上多了一項android,點擊android 會提示錯誤,是因為還沒有把 SDK 關聯(lián)到 ADT插件上,添加SDK目標位置,如圖2.6。</p><p>  圖2.6 添加SDK目標文件夾 </p><p>  到這里,Android的開發(fā)環(huán)境就搭建完成

66、了。然后創(chuàng)建一個安卓模擬器就可以做安卓開發(fā)了如圖2.7。</p><p>  圖2.7 安卓模擬器界面</p><p>  2.5 Android Features特性</p><p>  Android系統(tǒng)有如下的幾大特性:</p><p>  (1) 應用程序框架 支持組件的重用與替換。(2) Dalvik虛擬機 專門為移動設備做了優(yōu)

67、化。 (3) 內部集成瀏覽器 該瀏覽器基于開源的WebKit引擎。 (4) 優(yōu)化的圖形庫 包括2D和3D圖形庫,3D圖形庫基于OpenGL ES。 (5) SQLite 用作結構化的數(shù)據(jù)存儲。 (6) 多媒體支持 包括常見的音頻、視頻和靜態(tài)印象文件格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)。(7) GSM電話(依賴于硬件)。 (8) 藍牙Bluetooth,

68、 EDGE, 3G, and WiFi (依賴于硬件)。 (9) 照相機,GPS,指南針,和加速度計 (依賴于硬件)。 (10) 豐富的開發(fā)環(huán)境 包括設備模擬器,調試工具,內存及性能分析圖表,和Eclipse集成開發(fā)環(huán)境插件。</p><p><b>  2.6數(shù)據(jù)存儲方式</b></p><p>  在播放器正常運行時,由于各界面存在相互跳轉,為了避免數(shù)據(jù)在

69、界面跳轉的過程中丟失,我們需要將一些數(shù)據(jù)進行臨時存儲或者永久存儲。</p><p>  Android作為一種手機操作系統(tǒng),提供了如下幾種存取數(shù)據(jù)的方式:Preferenc(配置)、File(文件)、SQLite數(shù)據(jù)和網(wǎng)絡 。</p><p>  另外,在Android中各個應用程序組件之間是相互獨立的,彼此的數(shù)據(jù)不能共享。為了實現(xiàn)數(shù)據(jù)的共享,Android提供了Content Provi

70、der組件來實現(xiàn)應用程序之間數(shù)據(jù)的共享 。</p><p>  2.6.1 SharedPreferences</p><p>  Preference Preference提供了一種輕量級的數(shù)據(jù)存取方法,一般數(shù)據(jù)比較少,一些簡單的配置信息。它以“鍵-值”(是一個Map)對的方式,將數(shù)據(jù)保存在一個XML配置文件中使用到的接口(詳細內容見文檔)android.content .SharedP

71、references提供了保存數(shù)據(jù)的方法,android.content .SharedPreferences.Editor提供了獲得數(shù)據(jù)的方法。</p><p>  2.6.2 File存儲方式</p><p>  我們可以將一些數(shù)據(jù)直接以文件的形式保存在設備中。例如,一些文本文件、PDF文件、音視頻文件和圖片等。Android提供了文件讀寫的方法: Context.openFileIn

72、put()獲得標準Java文件輸入流(FileInputStream),Context.openFileOutput()獲得標準Java文件輸出流(FileOutputStream),Resources.openRawResource (R.raw.myDataFile)方法返回InputStream。</p><p>  2.6.3 SQLiteDatabase數(shù)據(jù)庫</p><p> 

73、 SQLite是一個嵌入式數(shù)據(jù)庫引擎,針對內存等資源有限的設備(如手機、PDA、MP3)提供的一種高效的數(shù)據(jù)庫引擎 SQLite數(shù)據(jù)庫不像其它的數(shù)據(jù)庫(如:Oracle),它沒有服務器進程。所有的內容包含在同一個單文件中。該文件是跨平臺的可以自由拷貝?;谄渥陨淼南忍靸?yōu)勢,SQLite在嵌入式領域得到了廣泛應用 。</p><p>  (1) SQLiteDatabase類</p><p>

74、;  SQLiteDatabase代表一個數(shù)據(jù)庫對象,提供了操作數(shù)據(jù)庫的一些常用方法如表2.8。</p><p>  表2.8 操作數(shù)據(jù)庫的常用方法</p><p>  (2) SQLiteOpenHelper類 </p><p>  SQLiteOpenHelper是SQLiteDatabase的一個幫助類,用來管理數(shù)據(jù)庫的創(chuàng)建和版本更新。一般的用法是定義一個類繼

75、承之,并實現(xiàn)其兩個抽象方法onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)兩個抽象方法來創(chuàng)建和更新數(shù)據(jù)庫,一些常用方法如表2.9。 </p><p>  表2.9 更新數(shù)據(jù)庫常用方法</p><p>  And

76、roid的三種數(shù)據(jù)存儲方式則讓我們可以輕松方便的進行程序編寫和數(shù)據(jù)的訪問,更不會讓不該消失的數(shù)據(jù)消失,這對我們進行程序書寫有很大我?guī)椭?lt;/p><p>  2.7 Android工程程序結構</p><p>  Android工程基本結構目錄包括:src (源代碼)、gen(Android系統(tǒng)自動生成的常量)、Res(資源文件):主要存放程序界面的布局配置(.xml)文件和圖片資源。An

77、droidMainfes.xml(下節(jié)介紹) 是四大組件的驅動配置文件,有它的存在,Android程序的四大組件才可以正常的跳轉。Android資源的類型和布局(表2.10)。</p><p>  表 2.10 Android資源的類型和布局 </p><p>  2.8 AndroidManifest.xml文件</p><p>  Android系

78、統(tǒng)的任何一個程序啟動都需要AndroidManifest.xml來啟動程序,任何一個新建的工程目錄都會自動生成一個AndroidManifest.xml文件,此配置文件是整個程序能夠正常運行的核心,它里面包含了Android SDK的版本,程序運行的默認Activity,當程序中的任何一個組件觸發(fā)事件后,系統(tǒng)都會自動的去AndroidManifest.xml中尋找標識來作出相應的操作。任何一個AndroidManifest.Xml文件的

79、格式都應為: </p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  <manifest ></p><p>  <application ></p><p>  <activity ><

80、;/p><p>  <intent-filter></p><p>  <action/><category/></p><p>  </intent-filter></p><p>  </activity></p><p>  </application

81、></p><p>  <uses-sdk /><uses-permission /></p><p>  </manifest></p><p>  Android系統(tǒng)有一個編碼的規(guī)定,支持的編碼是"utf-8",當程序中出現(xiàn)亂碼是,我們須將其編碼格式轉化為"utf-8".在 And

82、roidManifest.xml中會在第一行聲明一句:<?xml version="1.0" encoding="utf-8"?>。它是該系統(tǒng)支持的版本和編碼。在第二行定義了我們需使用的架構,該架構來自xmlns:Android=http://schemas.Android.com/apk/res/Android。</p><p>  Xmlns(XML nam

83、espace)是一個命名空間,它就像一條河的源頭一樣能讓我們找到系統(tǒng)架構,每一個配置文件必須有這個xmlns,否則程序中的所使用的所有資源將無法找到。</p><p>  在application元素我們定義Android:icon="@drawable/icon"</p><p>  Android:label="@string/app_name"

84、,Android:icon是程序在手機中顯示的圖片,我們運用@drawable/icon表示了對res/drawable目錄下的icon.png的引用。@string/app_name表示了對res/value目錄下string.Xml中定義的app_name參數(shù)的引用。</p><p>  因為系統(tǒng)首先要啟動的Activity是C_MusicPlayerActivity,所以文件如下:</p>&

85、lt;p>  <activity Android:name=".C_MusicPlayerActivity"></p><p>  <intent-filter></p><p>  <action Android:name="Android.intent.action.MAIN"/></p>

86、<p>  <category Android:name="Android.intent.category.LAUNCHER" /></p><p>  </intent-filter></p><p>  </activity></p><p>  在intent-filter選項中,有action

87、和category等等屬性,我們需要定義action的值為Android.intent.action.MAIN,category的值為Android.intent.category.LAUNCHER,它們是系統(tǒng)的值,程序在解析到這些常用后就可以確定首先要啟動的Activity。當我們需要通過一個組件觸發(fā)另一個組件時,我們將設定action和category的其它屬性值,系統(tǒng)會根據(jù)我們設定的屬性值去AndroidManifest.Xml的

88、application 中尋找標識,任何一個Activity的action和category是唯一,所以程序在任何時候都能唯一啟動一個Activity,這樣,不同的Activity之間的跳轉就實現(xiàn)了。</p><p>  在AndroidManifest.Xml中有一個根結點<uses-sdk>,它是我們需要定義的ADT版本,例如我們將其值設定為Android:minSdkVersion="

89、10",則表示此Android工程所用的版本為2.3,Android還有1.1、1.5、1.6、2.0、2.1、2.2、2.3、3.0、4.0這幾個版本。</p><p>  如果我們需要對網(wǎng)絡進行訪問,比如打開一個網(wǎng)頁,剛我還需要設置一個網(wǎng)絡訪問權限uses-permission,將其的值設置為Android:name="Android.permission.INTERNET,我們就可以訪問

90、網(wǎng)絡了。當然uses-permission還有很多其它的權限,例如GPS定位權 限瀏覽器數(shù)據(jù)存取權限com.Android.browser.permission.READ_HISTORY_BOOKMARKS等等。</p><p>  當程序的任何一個組件要用到時,都必須在AndroidManifest.Xml文件中聲明。四大組件要使用前都需要聲明,其聲明方式如下:</p><p>  &l

91、t;service></service></p><p>  <provider></provider></p><p>  <activity></activity></p><p>  <receiver></receiver></p><p>  

92、其中聲明provider時還需要聲明其授權authorities。每個組件里面還有很多的屬性,會根據(jù)程序的具體需要定義不同的屬性。過濾器intent-filter 有兩種啟動方式來啟動界面。</p><p><b>  (1) 顯示方式</b></p><p>  顯示方式是在代碼中的直接啟動組件,啟動時會聲明Intent,在它的構造方法Intent(組件1,組件2)

93、中直接指定一個組件的名字,然后調用方法startIntent(intent)以啟動指定的組件。</p><p><b>  (2) 隱式方式</b></p><p>  隱式方式是通過過濾器來過濾完成的,啟動的組件必須滿足action和category的條件才能夠啟動該組件。這些屬性是在AndroidManifest.Xml文件中聲明的。兩種啟動方式都可以通過程序se

94、tAction(ACTION常量)和startActivity(intent)或配置文件兩種方式來實現(xiàn)組件的跳轉。</p><p>  2.9安卓平臺的優(yōu)勢 </p><p><b>  (1) 開放性</b></p><p>  在優(yōu)勢方面,Android平臺首先就是其開發(fā)性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來。顯著的

95、開放性可以使其擁有更多的開發(fā)者,隨著用戶和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。</p><p>  開發(fā)性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。</p><p><b>  (2) 不受束縛</b>

96、;</p><p>  在過去很長的一段時間,特別是在歐美地區(qū),手機應用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡,幾乎都受到運營商的控制。自從2007年iPhone上市后,用戶可以更加方便地連接網(wǎng)絡,運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡的逐步過渡和提升,手機隨意接入網(wǎng)絡已不是運營商口中的笑談。</p><p><b>  (3) 豐富的硬件<

97、/b></p><p>  這一點還是與Android平臺的開放性相關,由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容,如同從諾基亞Symbian風格手機一下改用蘋果iPhone,同時還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉移。</p><p><

98、b>  (4) 方便開發(fā)</b></p><p>  Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android難題之一。</p><p>  (5) Google應用</p><p>  在互聯(lián)網(wǎng)的

99、Google已經(jīng)走過10年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結合這些優(yōu)秀的Google服務。</p><p><b>  3 需求分析</b></p><p>  軟件需求分析是軟件生存期中重要的一步,也是決定性的一步。需求分析是軟件定義時期的最后一個階段,它

100、的基本任務是準確地回答“系統(tǒng)必須做什么”這個問題,深入描述軟件的功能和性能的需求[9]。在這一節(jié)中主要就是圍繞“Android開發(fā)平臺的音樂播放器系統(tǒng)必須做什么”這個問題來分析說明的。</p><p><b>  3.1 軟件目標</b></p><p>  本系統(tǒng)屬于用戶常用的音樂播放器??梢苑奖阌脩羝綍r對音樂文件的操作。本系統(tǒng)應達到以下目標: </p>

101、<p>  (1) 軟件采用人機交互的方式,界面美觀友好,操作靈活、方便、富有個性化。</p><p>  (2) 能夠對音樂文件進行有效的管理。</p><p>  (3) 系統(tǒng)應最大限度地實現(xiàn)易維護性和易操作性。</p><p>  3.2 軟件的可行性研究</p><p>  3.2.1 經(jīng)濟上的可行性</p>

102、<p>  Android 是 Google 歷經(jīng)數(shù)年和投資數(shù)億美元開發(fā)出來的智能手機系統(tǒng),是 基于 Linux 內核的操作系統(tǒng),是 Google 公司在 2007 年 11 月 5 日公布的手機操 作系統(tǒng)。隨著各大移動終端生產(chǎn)商大力開發(fā)和生產(chǎn)基于 Android 的移動智能設備, Android迅速得到業(yè)界和社會的認可,并成為整個產(chǎn)業(yè)的熱點,基于 Android 

103、;平 臺的各類人才逐漸成為各大企業(yè)競相爭奪的焦點。 而且 Android 是一個開放的系統(tǒng),不管是企業(yè)還是個人都可以參與來表達自己的創(chuàng)意和想法。</p><p>  3.2.2 技術上的可行性</p><p>  Google 發(fā)起了圍繞 Android 的組織——開放手機聯(lián)盟, 其英文全稱為 “Open Handset Alliance”。 它采用

104、了軟件堆層(software stack,又名以軟件疊層)的架構,主要分為三部分。底層 Linux 內核只提供基本功能;其他的應用軟件則 由各公司自行開發(fā),部分程序以 Java 編寫。 </p><p>  3.2.3 操作上的可行性</p><p>  本系統(tǒng)采用Android框架,可以在eclipse中安裝Android開發(fā)插件,使用Android模擬器也可以使用任意Android終端

105、。模擬器和真正的Android手機沒有太大區(qū)別,人們對手機操作早已熟悉。</p><p><b>  3.3 功能需求</b></p><p>  3.3.1 用例圖及用例描述</p><p>  功能需求定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務,從而滿足了用戶的業(yè)務需求。用戶需求文檔描述了用戶使用產(chǎn)品必須要完成的任務。針對音

106、樂播放器分別對音樂播放功能進行詳細的調研和分析,總結出如用戶需求信息,其用例圖如圖3.1所示。</p><p>  圖3.1 播放器用例圖</p><p>  音樂播放器的用例描述如下:</p><p>  (1) 用例名稱:播放</p><p><b>  參與者:用戶</b></p><p>

107、  目標:使得用戶可以播放在播放列表中選中的歌曲</p><p>  前置條件:播放器正在運行</p><p>  基本事件流:1.用戶單擊“播放”按鈕</p><p>  2.播放器將播放列表中的當前的歌曲</p><p>  (2) 用例名稱:暫停</p><p><b>  參與者:用戶</b&g

108、t;</p><p>  目標:使得用戶可以暫停正在播放的歌曲</p><p>  前置條件:歌曲正在播放且未停止和暫停</p><p>  基本事件流:1.用戶單擊“暫?!卑粹o</p><p>  2.播放器將暫停當前的歌曲</p><p>  (3) 用例名稱:上一首/下一首</p><p>

109、;<b>  參與者:用戶</b></p><p>  目標:使得用戶可以聽上一首或下一首歌曲</p><p>  前置條件:歌曲正在播放或暫停</p><p>  基本事件流:1.用戶單擊“上一首或下一首”按鈕</p><p>  2.播放器將播放上一首或下一首歌曲</p><p>  (4)

110、用例名稱:播放列表</p><p><b>  參與者:用戶</b></p><p>  目標:使得用戶可以進入播放清單</p><p>  前置條件:程序在運行</p><p>  基本事件流:1.用戶單擊“清單”按鈕</p><p>  2.播放器進入播放列表</p><p

111、>  (5) 用例名稱:歌詞顯示</p><p><b>  參與者:用戶</b></p><p>  目標:使得程序進入播放器歌詞設置狀態(tài)</p><p>  前置條件:程序運行在播設定界面</p><p>  基本事件流:1.用戶單擊“歌詞開關按鈕”按鈕</p><p>  2.播放器顯

112、示或關閉歌詞</p><p>  3.3.2 音樂播放器的時序圖 </p><p>  播放器對象之間的交互情況如圖3.2所示。</p><p>  圖3.2 音樂播放器的時序圖</p><p>  3.3.3 音樂播放器流程圖</p><p>  播放器工作流程圖如圖3.3所示。</p><p&g

113、t;  圖 3.3 音樂播放器流程圖</p><p>  3.4 軟件規(guī)格說明</p><p>  隨著手機的功能的不斷增加,音樂播放功能已經(jīng)是時下各大手機廠商手機方案中的標配了。那么我們要做出怎樣的一款手機才能滿足消費者的需求呢?僅僅能夠播放MP3音樂文件是遠遠不夠的。通過我們對市場的調研,總結出以下設計思路,這些思路應該是我們MP3播放器的亮點:絢麗的界面,強大的功能,簡</p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論