版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
摘要由Google倡導發(fā)起的開放式手機聯(lián)盟及其推出的Android平臺一經(jīng)發(fā)布便在業(yè)內(nèi)引起了軒然大波。在此背景下本人利用Eclipse和AndroidSDK開發(fā)工具設計出了一款基于Android的MP3播放器。文章首先介紹了Android技術及其特點,然后介紹Android的開發(fā)環(huán)境,接著對系統(tǒng)進行了總體分析,在設計出了功能結構圖和流程圖之后,在分析需求的基礎上詳細闡述了MP3播放器的設計與實現(xiàn)過程,最后測試系統(tǒng),對播放器的不足進行總結。該播放器支持搜索本地音樂、播放音樂,集播放、暫停、停止、上一首、下一首、音量調(diào)節(jié)、歌詞顯示等功能于一體。關鍵字:Android系統(tǒng);MP3播放器Abstract
ByGoogleadvocatethereleaseoftheleagueanditsmobilephonelaunchedthelaunchoftheAndroidplatformhasissuedandcausedastirintheindustry.IuseEclipseandAndroidSDKdevelopmenttoolsdesignaMP3playerwhichbasedonAndroid.ThisarticlefirstintroducestheAndroidtechnologyandfeatures,AndthenintroducedtheAndroiddevelopmentenvironment,Thenthesystemasawholeanalysis,Inafunctionstructurechartanddesignflowchartafter,OnthebasisofanalysisdemandexpoundstheMP3playerafterthedesignandrealizationoftheprocess,Thelasttestsystem,Tothedeficiencyoftheplayersweresummarizedinthispaper.Theplayersupportsplaybackoflocalmusic,search,andithasacertainpracticality.Themusicplayerepisodepause,stop,andaon,next,volumeadjustment,lyricsdisplayfunctions,suchasperformanceisgood,anditcanoperateindependentlyintheAndroidsystem.Keywords:Androidsystem;MP3player目錄TOC\o"1-3"\h\u1緒論 11.1課題背景 11.2Android的介紹 11.3Android開發(fā)環(huán)境的搭建 21.4AndroidSDK1.6的模擬器的介紹 52系統(tǒng)的總體設計概要 62.1總體功能架構 62.2功能流程圖 73詳細設計與實現(xiàn) 83.1Android程序設計的一般方法 83.2MP3播放器的模塊設計 83.2.1編碼規(guī)范 83.2.2界面的搭建 83.2.3播放模塊 114測試與分析 144.1軟件測試準備工作 144.2系統(tǒng)測試內(nèi)容概要 144.2.1列表的更新測試 144.2.2各種格式的歌曲的詳情查看測試 144.2.3測試音樂播放器主頁面的顯示以及一些主要操作 144.2.4測試音樂播放器的其他一些基本操作 155.結束語 166.參考文獻 171緒論1.1課題背景Android一詞的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源移動終端操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,是首個為移動終端打造的真正開放和完整的移動軟件。隨著科技的不斷發(fā)展,手機不再只是人們?nèi)粘I畹囊苿油ㄐ殴ぞ撸且粋€多媒體平臺,可提供強大的多媒體功能,越來越多的人喜歡用手機聽音樂、看電影。Android系統(tǒng)內(nèi)置的音樂播放器基于媒體庫對歌曲進行管理,并且支持歌詞的同步顯示。對于部分用戶,操作起來會有所不便。對于Android手機操作系統(tǒng),可以充分利用它已經(jīng)習慣的基于文件瀏覽器形式播放器的豐富的可編程擴展性,開發(fā)出新的播放器應用軟件。1.2Android的介紹近年來,Google智能手機平臺Android得到了手機行業(yè)及客戶的普遍認可,呈爆炸性的趨勢發(fā)展,為移動運營商、手機制造商、軟件開發(fā)商及客戶提供了無限的發(fā)展空間,使市場上不斷涌現(xiàn)出大量的基于Android平臺的軟件和增值服務。(1)Android系統(tǒng)的架構:分層的構架的好處是下層為上層提供統(tǒng)一服務,屏蔽本層及以下層的差異,當本層及以下層發(fā)生了變化不會影響到上層。也就是說各層各司其職,各層提供固定的SAP。從架構來看Android分為四層,從低層到高層分別是Linux核心層、系統(tǒng)運行庫層、應用程序框架層、和應用程序層。Linux核心層為使用C實現(xiàn)的代碼內(nèi)核(Linux內(nèi)核+driver),運行于內(nèi)核空間。系統(tǒng)運行庫層(Android運行環(huán)境)為使用C/C++語言編寫的程序庫,運行于用戶空間。應用程序和應用程序框架層主要是使用Java編寫的Java應用程序,運行于用戶層。(2)Android操作平臺的發(fā)展:如今已經(jīng)成為了智能手機行業(yè)的支柱平臺之一。它不但一舉超越了iPhone的市場占有率,還吸引了大量iPhone及其它平臺開發(fā)者!Android平臺擁有多重開發(fā)環(huán)境,除了智能手機外,開發(fā)者還能在采用了Android平臺的平板電腦、GoogleTV、MID及MP4產(chǎn)品上開發(fā)應用程序。從而擁有超越其它系統(tǒng)平臺的多重環(huán)境優(yōu)勢。根據(jù)美國移動廣告商AdMob的統(tǒng)計,iPhoneOS在美國本土的網(wǎng)絡流量占了美國本土全部移動互聯(lián)網(wǎng)流量的39%,而Android系統(tǒng)首次超越了它,達到了46%。不過要放在世界范圍內(nèi)來看,iPhoneOS仍占了46%,而Android只占了25%,還是排第二,不過仍能說明Android的來勢洶洶。(3)Android系統(tǒng)的“開放”性:任何手機制造商均可無需支付專利費即可將此系統(tǒng)運用在自己的手機Google的以Linux為內(nèi)核的Android移動手機平臺從誕生之日起短時間內(nèi)便在世界范圍里獲得了廣泛的關注。最的報告顯示在中國,一個擁有最大的人口,擁有最多的手機用戶,擁有巨大的增長潛力的國家,這個系統(tǒng)的占有率沿著一個倒拋物線的增長曲率成為手機操作系統(tǒng)中的霸主。開放手機聯(lián)盟的成立和Android的推出是對現(xiàn)狀的重大改變,在帶來初步效益之前,還需要不小的耐心和高昂的投入。但是,我們認為全球移動用戶從中能獲得的潛在利益是值得付出這些努力的。谷歌將繼續(xù)努力,讓這些服務變得更好,同時也將添加更有吸引力的特性、應用和服務。1.3Android開發(fā)環(huán)境的搭建本系統(tǒng)以Android開發(fā)工具為平臺,搭建過程如下:(1)安裝JDK1.6.11用戶可下載程序JDK1.6.11,然后就解壓,按步驟安裝就可以使用了。(2)eclipse的安裝與配置首先,要安裝eclipse軟件必須要有相應的安裝程序,用戶可下載程序eclipse-java-galileo-win32,然后就解壓就可以使用了。Eclipse的配置如下圖1.1:圖1.1Eclipse的配置圖(3)在eclipse中配置Android所需插件A:運行eclipse,點擊help選項中的InstallnewSoftware,然后導入ADT插件壓縮包;B:安裝android-sdk-windows,點擊window選項里的Perferences,然后選擇 android,導入android-sdk-windows。配置插件圖如下:圖1.2配置插件圖(4)環(huán)境變量的設置右擊我的電腦選擇屬性,在屬性欄中選擇高級,進行環(huán)境變量的設置:A:新建環(huán)境變量,變量名JAVA_HOME,變量值D:\ProgramFiles\Java\jdk1.6.0_14B:修改環(huán)境變量,變量名Path,變量值%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\ProgramFiles\ATITechnologies\ATI.ACE\Core-Static;C:\ProgramFiles\CommonFiles\ThunderNetwork\KanKan\Codecs;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;C:\ProgramFiles\TortoiseSVN\bin,環(huán)境變量設置如下圖1.3:圖1.3環(huán)境變量設置圖(5)ADT安裝ADT實際上是一個工具,它可以連接SDK和Eclipse,幫助Eclipse找到SDK打開Eclipse界面,進入菜單中的“Help”->“InstallNewSoftware”,點擊Add按鈕彈出對話框要求輸入Name和Location,完成之后,選擇Window>Preferences;在左邊的面板選擇Android,然后在右側點擊Browse;并選中SDK路徑,本機為;D:Android\Android-SDK_r07-windows;點擊Apply和OK之后配置完成。1.4AndroidSDK1.6的模擬器的介紹AndroidSDK包含一個Eclipse插件,名為ADT。這個IDE工具用于開發(fā)、調(diào)試和測試Java應用程序。也可以單獨使用AndroidSDK,使用命令行工具代替ADT。兩種方法都支持使用模擬器來運行、調(diào)試和測試應用程序。大多數(shù)應用程序開發(fā)工作都不需要真實設備。全功能的Android模擬器能夠模擬大部分的設備功能。模擬器不能模擬USB連接、照相機與視頻采集、耳機、電池和藍牙。Android模擬器使用一種名為QEMU的開源“處理器模擬器”技術來完成它的工作,此技術由FabriceBellard開發(fā)。這項技術還支持在一個操作系統(tǒng)上模擬另一個操作系統(tǒng),而不用考慮采用了何種處理器。QEMU支持在CPU級別上進行模擬。在Android模擬器中,處理器基于ARM架構。ARM是一種基于RISC的32位微處理器架構,其設計上的簡單性和較高的速度通過指令集中精減的指令來實現(xiàn)。模擬器在此模擬處理器上運行Linux的Android版本。2系統(tǒng)的總體設計概要2.1總體功能架構MP3播放器的設計分成了界面搭建模塊,播放模塊和編碼模塊,界面有主界面,播放界面,歌曲列表界面;播放模塊中有許多的按鈕,如暫停,下一首,音量調(diào)節(jié)按鈕等。本設計根據(jù)MP3播放器的功能將系統(tǒng)按照自頂向下的方式進行設計,播放器播放器編碼模塊播放模塊界面搭建模塊編碼模塊播放模塊界面搭建模塊模塊編碼主程序編碼上一首停止音量下一首暫停歌曲列表界面播放界面主界面模塊編碼主程序編碼上一首停止音量下一首暫停歌曲列表界面播放界面主界面圖2.1播放器的功能劃分結構圖2.2功能流程圖根據(jù)MP3播放器的功能設計,制定出的的流程圖如下:程序啟動程序啟動播放主界面播放主界面播放列表播放列表選擇歌曲選擇歌曲播放歌曲播放歌曲退出退出圖2.2播放器的功能流程圖3詳細設計與實現(xiàn)3.1Android程序設計的一般方法首先搭建平臺,播放器的設計界面可以通過Android的繪圖技術實現(xiàn),然后手動編寫每個模塊的Java程序,最后調(diào)試程序。3.2MP3播放器的模塊設計3.2.1編碼規(guī)范首先從布局文件說起,布局文件名稱的定義必須為小寫字母,否者無法生成R類,盡量不要用縮寫。以表達清楚該文件用途為本,通常情況下控件ID的定義,ID的定義一律為小寫,例如:一用戶名TextView可以定義為:@+ID/username_view。以“名詞_控件名稱”這種形式定義。其次是圖片的定義格式,圖片的定義也是為解釋清楚用途為準,參照這種定義格式“btn_background_ok.png”string類的name定義,這里可以按照JAVA中變量的定義方式定義。首字母小寫,駝峰命名法。例如:<stringname="userName_view">用戶名:</string>最后類名與變量的定義,定義與用戶交互的類,××Activity.java。自定義變量一律以小寫m開頭例如:EditTextmUserName=3.2.2界面的搭建界面的搭建模塊各主要界面運用的是Android的繪圖技術。繪制圖形通常使用Android.View、View。界面搭建會用到各種控件,如:Button或ImageButton,控件有RadioButton,ToggleButton,和ZoomButton。控件的設置涉及到容器的使用,使用的容器有AndroidRelativeLayout容器、AndroidLienearLayout容器等,控件布局運用到線性布局、絕對布局、表格布局等。MP3播放器的圖標如下圖3.1:圖3.1圖標界面圖圖3.2曲目界面圖音樂文件播放時的播放界面如下圖3.3:圖3.3播放列表界面圖窗口布局文件位于res/layout目錄下,在layout目錄下創(chuàng)建布局文件。創(chuàng)建布局文件步驟:(1)在左側欄中的layout文件夾上右鍵,選擇New->File,在彈出的窗口中的Filename處填入songlist.xml。單擊Finish,即創(chuàng)建了一個空的布局文件。如果對Android布局XML文件的語法非常熟悉,那么可以直接編輯該文件,但是一般情況下,我們還是用ADT工具進行所見即所得的編輯。(2)Android的窗口是由Layout和View組成的,Layout中可以包含View和Layout。這個應用的界面排列較簡單,因此,最外層的Layout可以采用LinerLayout這種比較簡單的格式。要添加它,先點擊右側邊欄中Outline選項卡下的綠色“+”按鈕,在彈出的窗口中選擇LinerLayout,就添加成功了,在Outline窗口中就可以看到剛剛添加的這一項,同時中間的主窗口中也會顯示一個空的黑色窗體。另外,還可以修改某個Layout或View的屬性,方法是在右側的Outline窗口中選中要修改的窗口元素,在下側邊欄中,切換到Properties選項卡,就可以看到所有的項目屬性。圖3.4窗口屬性圖大多數(shù)的選項都不需要手動設置。下面繼續(xù)添加其它的窗口元素。Layout下可以嵌套其它的Layout和View,界面的上部分就是在最外層的LinerLayout下再放置了一個LinerLayout,然后在里層的LinerLayout里放置一排ImageButton。界面的下半部分是一個ListView(或者TextView)。當要在某個Layout里添加元素時,只需要先點擊選中該Layout然后再點擊“+”圖標,就可以添加子元素到其中。這時還需要對各個元素的屬性作一些修改。例如對于5個ImageButton,需要設置其Src屬性。這個屬性表示的是圖片的來源。例如back按鈕上要顯示是的一個指向左邊的箭頭,這個箭頭圖標名為back.png,在前述步驟中已經(jīng)被放在了res/drawable目錄中了。把這個圖標設為back按鈕的圖片來源,就需要在Src屬性處填入"@drawable/back"。"@drawable/back"就是引用這個箭頭圖標資源的ID。如左圖所示,在第一個LinerLayout下面,還添加了一個View。這個View中沒有顯示元素,而只是起一個分隔線的作用,讓界面更美觀一些。這個View的Layoutheight屬性設為5dip,在顯示時,上方的按鈕就不會和下方的歌曲列表擠在一起了。在空白View的下方,可以看到,分別添加了一個ListView和一個TextView。值得注意的是,這兩個元素其實并不會同時顯示。這是因為它們的ID分別為"@Android:id/list"和"@android:id/empty",這種ID屬于Android系統(tǒng)的特殊ID,分別表示列表時要顯示的和列表中無條目時要顯示的元素。這樣的話就不需要再編寫代碼來根據(jù)列表是否為空來顯示相應元素了。最后,還可以根據(jù)需要,把元素的ID改成便于記憶的名稱這樣在使用時就更容易記憶。完成所有這些工作后,在Eclipse的主窗口中,就可以看到程序界面的預覽效果。3.2.3播放模塊播放模塊中在MP3Player.java文件中定義一個FrontMusic()和nextMusic()來實現(xiàn)上一曲和下一曲的切換;用mMediaPlayer=newmMediaPlayer()來實現(xiàn)播放列表的更新;setLooping()用來實現(xiàn)是否循環(huán)播放等。界面如下:播放模塊界面有許多的按鈕,如暫停,停止,下一首等,還有歌名的顯示,這些功能的實現(xiàn)的主程序如下:publicclassMp3InfoimplementsSerializable{ privatestaticfinallongserialVersionUID=1L; privateStringid; privateStringmp3Name; privateStringmp3Size; privateStringman;首先定義MP3的名字和大小;在播放界面中會顯示歌曲的名字和歌唱者的名字;publicList<Mp3Info>getMp3Files(Stringpath){ List<Mp3Info>mp3Infos=newArrayList<Mp3Info>(); Filefile=newFile(SDCardRoot); File[]files=file.listFiles();讀取目錄中的mp3的名字和大??;privateSeekBaraudioVolume=null;定義了音量的大??;在界面中用戶可以調(diào)節(jié)音量的大小,如果音量調(diào)節(jié)為0就會變成靜音模式; mNextbtn.setOnClickListener(newImageButton.OnClickListener(){@OverridepublicvoidonClick(Viewv){ NextMusic(); }});點擊下一首的程序:NextMusic()定義了下一首個歌曲,newImageButton是下一首的按鈕的定義,以下程序是將按鈕與下一首相連接。 mLastbtn.setOnClickListener(newImageButton.OnClickListener(){@Override publicvoidonClick(Viewv){ TODOAuto-generatedmethodstub LastMusic(); }});點擊上一首的程序:跟前面一樣,Lastmusic定義上一首歌曲。isrun=true;isauto=false;用來判斷歌曲是否在播,viewlrcKLOK.Stop()是停止播放歌曲的定義,mMediaPlayer.pause()是暫停歌曲播放的定義。 mPausebtn.setOnClickListener(newImageButton.OnClickListener(){ @Override publicvoidonClick(Viewv){ TODOAuto-generatedmethodstub isrun=true; isauto=false;mPausebtn.setVisibility(View.GONE); mStartbtn.setVisibility(View.VISIBLE); //是否正在播放 if(mMediaPlayer.isPlaying()){ viewlrcKLOK.Stop(); mMediaPlayer.pause(); } }進入主界面就會看到很多按鈕,mPausebtn.setVisibility(View.GONE)是隱藏暫停按鈕;點擊開始按鈕就是播放當前的音樂,mStartbtn.setVisibility(View.VISIBLE)是顯示啟動按鈕,點擊下一首會播放下一個音樂文件,如果喜歡這首歌,可以選擇下載,下載過程會看到進度條的顯示,播放結束可以退出程序或選擇別的歌曲。4測試與分析4.1軟件測試準備工作在AndroidSDK1.6的模擬器上對MP3播放器的各項功能進行調(diào)試和測試。調(diào)試結束后,將編譯生成的安裝文件拷貝到SD卡,利用Android文件管理器將播放器軟件安裝到OMAP3530開發(fā)板的系統(tǒng)上,將測試用的音樂文件及對應的歌詞文件拷貝到SD卡,0MAP3530開發(fā)板上的MP3播放器可以通過文件瀏覽器選擇音樂文件并正常播放。4.2系統(tǒng)測試內(nèi)容概要4.2.1列表的更新測試1、當列表中包含已被刪除、移動或者更名的歌曲時,驗證列表的更新功能2、開機時使用默認列表,關機后對默認列表的目錄進行歌曲的添加、刪除操作,驗證再開機后自動4.2.2各種格式的歌曲的詳情查看測試1、包括ID3v1、ID3v2信息的M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 漫談法律經(jīng)濟學研究
- 河南省周口市川匯區(qū)2024-2025學年八年級上學期期中質(zhì)量監(jiān)測地理試卷
- 2024-2025學年青海省西寧市海湖中學高一(上)第一次段考數(shù)學試卷(含答案)
- 巧用“八桂教學通”發(fā)展學生空間觀念
- 上海市財務管理模擬3
- 天津申論模擬90
- 天津面試模擬48
- 天津面試模擬45
- 2012年06月10日廣西公務員面試真題
- 兒童及嬰幼兒服裝產(chǎn)品質(zhì)量抽查檢驗實施方案
- 生產(chǎn)計劃達成率及分析
- 聚合物復合材料工藝課件
- (完整PPT)上海英文介紹
- 2024年中國人保財險總公司招聘筆試參考題庫含答案解析
- 高校輔導員崗前培訓課件
- 【小學心理健康教育分析國內(nèi)外文獻綜述4100字】
- 指紋識別技術
- 《企業(yè)會計準則第 25 號-保險合同》應用指南
- 行政審批制度改革的現(xiàn)狀和發(fā)展
- 凈水設備采購務投標方案(技術方案)
- 醫(yī)院的門禁管理制度范文
評論
0/150
提交評論