基于Android系統(tǒng)的音樂播放器的設(shè)計與實現(xiàn)畢業(yè)論文_第1頁
基于Android系統(tǒng)的音樂播放器的設(shè)計與實現(xiàn)畢業(yè)論文_第2頁
基于Android系統(tǒng)的音樂播放器的設(shè)計與實現(xiàn)畢業(yè)論文_第3頁
基于Android系統(tǒng)的音樂播放器的設(shè)計與實現(xiàn)畢業(yè)論文_第4頁
基于Android系統(tǒng)的音樂播放器的設(shè)計與實現(xiàn)畢業(yè)論文_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于Android系統(tǒng)的音樂播放器的設(shè)計與實現(xiàn)摘要:進(jìn)入21世紀(jì)的數(shù)字時代,網(wǎng)絡(luò)發(fā)展十分的迅猛,在現(xiàn)今工作壓力大的社會下,娛樂隨之興起,各種各樣的網(wǎng)絡(luò)游戲、娛樂軟件像雨后春筍一樣以不斷更新的方式進(jìn)入我們的生活,豐富了我們的業(yè)余時間。這些游戲能在不同的操作平臺上進(jìn)行安裝,且其安裝、操作簡單適合每一位玩家,讓所有的玩家都能暢玩一番。然而在所有的操作系統(tǒng)中,Android系統(tǒng)無疑不是其首選的。在Android平臺上發(fā)布的酷狗、酷我、百度影音等等播放器,以其簡單快捷的操作,好看的畫面,舒適的結(jié)構(gòu),強大的功能所折服我們。本文通過Android技術(shù)的研究,實現(xiàn)了自主設(shè)計的一款音樂播放器,完成了本地音樂的加載、最近音樂播放的加載、正在播放頁面的實現(xiàn)、上一曲、下一曲、暫停、播放、繼續(xù)播放、進(jìn)度條、時間顯示等等這些功能。本款音樂播放器采用TabHost進(jìn)行總框架的布局,其他部分則采用相應(yīng)的布局方式,使這款播放器看上去豐富,形象點。同時這款播放器操作簡單、實用、結(jié)合了Android課中所學(xué)到的很多知識,即對知識的一個總結(jié)。本音樂播放器的設(shè)計遵循企業(yè)軟件的工程思想,開始模擬了客戶來公司洽談某項業(yè)務(wù),完成需求分析、界面設(shè)計、編寫代碼、進(jìn)一步社交、產(chǎn)品的維護、用戶需求。這一系列的流程來一步步的制作這款播放器。關(guān)鍵字:Android、播放器、客戶、操作、流程Abstract:Digital

erain

twenty-firstCentury,

network

developmentisvery

rapid,

intoday's

stressfulsociety,

alongwiththeriseof

various

kindsof

entertainment,

networkgame,entertainmentsoftware

like

bambooshootsafteraspringrain

as

tocontinuouslyupdatethe

wayintoour

lives,enrichour

sparetime.

These

gamescanbe

installedindifferent

operating

platform,

and

itsinstallation,

operationissimpleand

suitableforevery

gameplayer,

letallthegameplayer

can

play

a.However,

alloftheoperatingsystem,

theAndroid

systemis

not

the

preferred.

PublishedintheAndroid

platformonthe

cooldog,

cool,

andsoon

Baidu

video

player,

withitssimpleandquick

operation,

beautifulpictures,

comfortablestructure,

powerfulfunction

by

us.

Inthispaper,

throughthe

researchofAndroidtechnology,

realizesanindependentdesignand

musicplayer,

the

localmusicloading,

recently

playingmusic,

playing

loading

pagerealization,

asong,

thenextsong,

play,

pause,

continuetoplay,

aprogressbar,

timedisplay

andsoonthesefunctions.

The

musicplayer

usingTabHost

frame

layout,theother

partis

the

correspondingarrangementway,make

theplayer

look

rich,

image

point.

Atthesametime,theplayer

hastheadvantagesofsimpleoperation,practical,

combinedwithalotof

knowledge

learned

inAndroid

class,

or

asummaryof

knowledge.

Thedesignofthe

musicplayer

followsthebusiness

softwareengineeringthought,

begantosimulate

the

customerstothecompanytodiscuss

somebusiness,

completetherequirementanalysis,

interfacedesign,

code,

furthersocial,

productmaintenance,

userdemand.

Thisaseriesofthe

process

stepbystep,

making

theplayer.KeyWords:Android、Player、Customer、Operation、Process目錄 第1章緒論 5 1.1Android簡介及其開發(fā)背景 5 1.2本課題內(nèi)容的概述 6 1.3本課題的目的及意義 7 第2章開發(fā)工具的簡介 7 2.1什么是Eclipse? 7 2.2JDK的下載與安裝 9 2.3Eclipse的下載與安裝 13 2.4Eclipse中AndroidSDK插件的下載與安裝 14 第3章Android的基本結(jié)構(gòu) 19 3.1Android的基本框架 19 3.2Android系統(tǒng)的四大組件 21 3.3Android音樂播放器的詳細(xì)設(shè)計思想 22 第4章本系統(tǒng)內(nèi)容需求 23 4.1實現(xiàn)的內(nèi)容需求 23 4.2播放器實現(xiàn)的目標(biāo) 24 4.3播放器的基本控制需求 24 4.4功能需求分析 25 第5章Android的項目介紹 27 5.1本地音樂列表界面 27 5.2正在播放界面 29 5.3退出播放器界面 32 文件介紹 33 第6章Android模擬器讀取SD卡中音頻文件的實現(xiàn) 33 6.1怎樣在模擬器中添加音頻文件并讀取 33 6.2SD卡的創(chuàng)建 34 6.3向SD卡里面上傳文件 34 6.4SD卡音頻文件讀取的代碼 34 第7章軟件測試 34 7.1軟件測試環(huán)境 34 7.2測試階段 34 7.3測試要點和總結(jié) 35 7.4測試結(jié)果 35 結(jié)束語 36 參考文獻(xiàn) 37 致謝 37第1章緒論1.1Android簡介及其開發(fā)背景Android一詞的本意是指“機器人”,同時也是Goolge與2007年11月Android是谷歌與2007年公布的開放式源碼系統(tǒng),他的開放性就優(yōu)于其他封閉式的系統(tǒng),因此,任何人都可能根據(jù)自己的喜好將系統(tǒng)中的所有功能重新編寫。這使得越來越多的人關(guān)注這個系統(tǒng)。本次作品音樂播放器就是基于Android平臺的。Android是基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),早期由Google開發(fā),后由開放聯(lián)盟開發(fā)。它采用了軟件堆層(softwarestack,又名為軟件堆層)的架構(gòu),主要分為三部分。底層以Linux內(nèi)核工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以java作為編寫程序的一部分。另外,為了推廣此技術(shù),Google和其他幾十個公司建立了開放聯(lián)盟。Android在未公開之前常被傳聞為Google或gPhone。大多的傳聞?wù)J為Google開發(fā)的是自己的產(chǎn)品,而不是一套軟件平臺。到了2010年1月,Google開始發(fā)表自家品牌的NexusOne。目前最新的SDK版本為。硬件產(chǎn)品的發(fā)展趨勢在產(chǎn)品領(lǐng)域,Android可以說是類型最為豐富的,同時往往集成了最尖端的技術(shù)力。在2014年,更大尺寸、2k分辨率屏幕將成為高端配置,vivo品牌已經(jīng)推出了首款2k屏幕機型。64位處理器及4GBRAM,也將成為高端的標(biāo)配,此外,攝像頭也將繼續(xù)高像素化。平板電腦在2013年,Android在平板領(lǐng)域的成績斐然,甚至搶奪了蘋果ipad的市場份額。雖然這與Android低價平板的增多不無關(guān)系,在2014年仍將保持占有率的優(yōu)勢。總結(jié)顯然,Android在2014年或許不會發(fā)生巨大的變化,包括市場份額以及產(chǎn)品形態(tài)。從積極的方面來看,新興市場的發(fā)力、新型設(shè)備的流行,會讓Android擁有更多的用武之地,與三星的關(guān)系修復(fù),也有利于谷歌提供更為健康的生態(tài)系統(tǒng)。所以,我們還是十分期待在2014年的GoolgeI/O大會上,會看到谷歌更多的大動作。1.2本課題內(nèi)容的概述進(jìn)入互聯(lián)網(wǎng)的信息時代,市場越發(fā)迅猛的發(fā)展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一部分了。于是各種播放器也緊跟著發(fā)展起來,但是很多播放器一味的追求外觀花哨,功能的齊全,對用戶的造成了很多資源的浪費,比如CPU,內(nèi)存等占用率過高,會導(dǎo)致一些低端卡機、死機等情況的出現(xiàn)。隨著用戶的要求,播放器的功能越來越齊全,如:聽歌、看MV等等,除了能播放常見格式的語言視頻文件之外,還要滿足RMVB格式的視頻文件。此外,還需支持中文、英文、韓文、日文等語言界面。因此,基于Android的操作系統(tǒng)上的各種應(yīng)用軟件應(yīng)運而生,其音樂播放器無疑不是一個最成功的案例。如:酷狗、酷我、QQ音樂等播放器深受廣大用戶的喜愛,所以,各高校都會把播放器作為一個很好的教案,不僅讓我們了解了播放器是如何編寫成功的,更重要的是將我們與這個新興行業(yè)緊密的聯(lián)系在一起了。學(xué)以致用,將書本上的知識歸納、總結(jié)后寫一個成功的小項目,讓自己獲得更多、更牢固的專業(yè)知識,同時也為今后找工作打下不錯的基礎(chǔ)。對于這次的畢業(yè)選題,其難度、完整度、完善度都比以往在學(xué)校寫過寫過的任何一個小項目難得多,但卻是對我們一個很好的鍛煉機會,使自己的能力進(jìn)一步升華,同時也給自己在大學(xué)里所有的知識做了一個總結(jié),為自己的大學(xué)時代畫上一個圓滿的句號。1.3本課題的目的及意義本次作品就是基于Android平臺下的音樂播放器,對于此次的項目,我們必須首先了解Android平臺下軟件開發(fā)的相關(guān)知識,及軟件開發(fā)的意義。由于本次的畢業(yè)項目屬于個人的開發(fā)項目,不存在經(jīng)濟實用性的考量,所以有很多的方面完善的不是很全,但是作為畢業(yè)項目而言,的確是一個很大的挑戰(zhàn),不僅鍛煉了自己的能力,而且讓自己所學(xué)的知識得到運用,同時也是對自己在大學(xué)所學(xué)知識的一個總結(jié),并且可以檢測自己的實力,總之,本次畢業(yè)論文的撰寫對我們益處扉多。第2章開發(fā)工具的簡介什么是Eclipse?1.簡介Eclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(JavaDevelopmentKit,JDK)。雖然大多數(shù)用戶很樂于將Eclipse當(dāng)作Java集成開發(fā)環(huán)境(IDE)來使用,但Eclipse的目標(biāo)卻不僅限于此。Eclipse還包括插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment,PDE),這個組件主要針對希望擴展Eclipse的軟件開發(fā)人員,因為它允許他們構(gòu)建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中的每樣?xùn)|西都是插件,對于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于Java開發(fā)工具。盡管Eclipse是使用Java語言開發(fā)的,但它的用途并不限于Java語言;例如,支持諸如C/C++和COBOL等編程語言的插件已經(jīng)可用,或預(yù)計將會推出。Eclipse框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。2.發(fā)行版本從2006年起,Eclipse基金會每年都會安排同步發(fā)布(simultaneousrelease)。至今,同步發(fā)布主要在6月進(jìn)行,并且會在接下來的9月及2月釋放出SR1及SR2版本。3.語言拓展Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為其他計算機語言比如C++和Python的開發(fā)工具。Eclipse的本身只是一個框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT和PDE。目前由IBM牽頭,圍繞著Eclipse項目已經(jīng)發(fā)展成為了一個龐大的Eclipse聯(lián)盟。Eclipse是一個開發(fā)源碼項目,由于其開放源碼,任何人都可以免費得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來越受人們關(guān)注。近期還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項目,并宣稱Eclipse將來能成為可進(jìn)行任何語言開發(fā)的IDE集大成者,使用者只需下載各種語言的插件即可。4.插件開發(fā)環(huán)境Eclipse的插件機制是輕型軟件組件化架構(gòu)。Eclipse使用插件來提供所有的附加功能,例如支持Java以外的其他語言。已有的分離的插件已經(jīng)能夠支持C/C++(CDT)、Perl、Ruby,Python、telnet和數(shù)據(jù)庫開發(fā)。插件架構(gòu)能夠支持將任意的擴展加入到現(xiàn)有環(huán)境中,例如配置管理,而決不僅僅限于支持各種編程語言。5.主要組成Eclipse是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,具體包括四個部分組成—Eclipse、Platform、JDT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),EclipsePlatform則是一個開放的可擴展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成軟件開發(fā)工具的基礎(chǔ)。EclipsePlatform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結(jié)束,而另一個工具功能在哪里開始。6.EclipseSDKEclipseSDK(軟件開發(fā)者包)是EclipsePlatform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到EclipsePlatform中的工具。EclipseSDK由Eclipse項目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目生產(chǎn)的軟件以GPL發(fā)布,第三方組件有各自自身的許可協(xié)議。2.2JDK的下載與安裝1、JDK的介紹JDK是Java開發(fā)者工具包,也稱J2SDK,是SUM公司提供的基礎(chǔ)Java語言開發(fā)工具,該工具軟件包含Java語言的編譯工具、運行工具以及執(zhí)行程序的環(huán)境(JRE)。JDK現(xiàn)在是一個開源、免費的工具。JDK是其他Java開發(fā)工具的基礎(chǔ),也就是說,在安裝其它開發(fā)工具之前,必須首先安裝JDK。2、JDK的下載現(xiàn)在最新的JDK版本為,JDK的最新版本的下載地址為:downloads/jdk-7u4-downloads-1591156.html"3、JDK的安裝在下載好的JDK雙擊進(jìn)行一步一步的安裝即可,之后進(jìn)行另一項工作,即:環(huán)境變量的配置。4、環(huán)境配置圖解過程4.1右擊“我的電腦”,選擇屬性4.2選擇“高級系統(tǒng)設(shè)置”4.3選擇“高級”選項卡中的“環(huán)境變量”4.4在系統(tǒng)環(huán)境里點擊“新建”,之后在“新建系統(tǒng)變量”里輸入如下內(nèi)容,在點擊“確定”。4.5Path系統(tǒng)的變量設(shè)置,在系統(tǒng)變量里找到“Path”,之后點擊“編輯”,進(jìn)入“編輯系統(tǒng)變量”,編輯“變量值”,完成后點擊“確定”。4.6classpath系統(tǒng)變量值的設(shè)置,由于JDK是最高版本的,所以當(dāng)JDK高于版本時就不需要設(shè)置classpath的系統(tǒng)變量值了。5、安裝的最后檢查若想確定JDK是否安裝成功,可以在cmd運行環(huán)境里查看,即JDK安裝成功時的狀態(tài)為:2.3Eclipse的下載與安裝的下載JDK環(huán)境配置成功后,接下來就是要把Java開發(fā)工具給安裝起來,即Eclipse的下載網(wǎng)址為::進(jìn)入后打開如下的網(wǎng)頁:根據(jù)自己的學(xué)習(xí)要求下載合適的版本,我這里下載的是第一個中的Windows32Bit。然后再點擊那個下載按鈕開始下載就可以了,下載下來的是一個壓縮包。將該壓縮包解壓到一個自定義的文件夾中,之后打開eclipse文件夾中的xe,就能打開eclipse軟件。2.4Eclipse中AndroidSDK插件的下載與安裝1、AndroidSDK的介紹SDK:軟件開發(fā)工具包。被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。因此,AndroidSDK指的是Android專屬的軟件開發(fā)工具包。2、AndroidSDK的下載AndroidSDK的下載網(wǎng)址為::ndows.zip下載后解壓文件。3、AndroidSDK的安裝AndroidSDK不用安裝,下載后,直接解壓即可,將下載后的SDK的壓縮包解壓到適當(dāng)?shù)奈恢茫琒DK就安裝成功。使用Eclipse進(jìn)行Android應(yīng)用開發(fā)需要給Eclipse安裝ADT插件,這樣Eclipse就可以和AndroidSDK建立連接了,可以在Eclipse中啟動Android模擬器進(jìn)行程序調(diào)試等ADT插件安裝,但必須先下載adt的zip安裝包,安裝插件后,需要做如下的配置即可:、在Eclipse中,選擇Window>Preference;、從左側(cè)的菜單中,選擇Android項;、設(shè)置SDKLocation,點Browse選擇SDK的安裝根目錄;、點apply后再點ok,即安裝完成。4、安裝Eclipse的開發(fā)插件、啟動Eclipse,選擇菜單Help>InstallNewSoftware出現(xiàn)如下界面:、點擊Add按鈕,出現(xiàn)如下的界面:輸入網(wǎng)址m/android/eclipse/"(如果出錯就將s改成)。名稱:Android(自定義)、點擊OK出現(xiàn)如下的界面:按照操作,點擊Next,知道出現(xiàn)如下的界面:、選擇“Iacceptthetermsofthe….”在點擊Next,進(jìn)入安裝界面。、安裝完成后,出現(xiàn)如下的界面:、點擊Yes按鈕,重啟Eclipse后,再來配置androidsdk。、點擊菜單Window->preferences,進(jìn)入一下界面:在Browse選擇你之前androidsdk解壓后的根目錄,如下:、升級SDK版本,選擇菜單windows->Androidsdkandavdmanager:、選擇Updateall按鈕,進(jìn)入下面操作界面,再點擊左邊的Accept后點Install安裝:點擊Install后,進(jìn)入下一個安裝界面進(jìn)行安裝。、安裝完成。4.、新建AVD,步驟和上面一樣,進(jìn)入AndroidSDKandAVDManager后一步一步的進(jìn)行設(shè)置就OK了。創(chuàng)建完AVD之后,我們就可以在Eclipse里面新建Android的項目了。新建Android項目將在下面第六章進(jìn)行詳細(xì)的介紹。第3章Android的基本結(jié)構(gòu)3.1Android的基本框架Android平臺的基本框架如下圖所示:Android分為四個層,從高層到底層分別是:程序應(yīng)用層、應(yīng)用程序框架層、系統(tǒng)運行庫層和linux核心層。藍(lán)色的代表java程序,黃色的代碼為運行Java程序而實現(xiàn)的虛擬機,綠色部分為C/C++的程序庫組成,通過JNI完成從Java到C的調(diào)用。應(yīng)用程序所有的應(yīng)用程序都是使用JAVA語言編寫的,每一個應(yīng)用程序由一個或者多個活動組成,活動必須以Activity類為超類,活動類似于操作系統(tǒng)上的進(jìn)程,但是活動比操作系統(tǒng)的進(jìn)程要更為的靈活,與進(jìn)程類似的是,活動在多種狀態(tài)之間進(jìn)行切換。應(yīng)用程序框架應(yīng)用程序的架構(gòu)設(shè)計簡化了組建的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其他的應(yīng)用程序都可以使用其發(fā)布的功能塊,幫助程序員快速的開發(fā)程序,并且應(yīng)用程序重用機制也使用戶可以方便的替換程序組件。隱藏在每個應(yīng)用后面的是一系列的服務(wù)和系統(tǒng),其中包括入下:豐富而又可擴展的視圖,可以用來構(gòu)建應(yīng)用程序,包括:lists、grids、textboxes、buttons,甚至可嵌入的web瀏覽器。內(nèi)容提供器使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù),或者共享他們自己的數(shù)據(jù)。資源管理器提供非代碼資源的訪問,如本地字符串、圖形、布局文件。通知管理器使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。活動管理器用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。系統(tǒng)運行庫程序庫Android包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過Android應(yīng)用程序框架為開發(fā)者提供服務(wù)。如下為核心庫:Bionic系統(tǒng)C庫媒體庫,基于PacketVideoOpenCORESurfaceManager顧名思義,用于管理SurfaceWebkit,LibWebCore瀏覽器,基于Webkit引擎SGL底層的2D圖形引擎3Dlibraries基于OpenGLES1.0APIs實現(xiàn)FreeType位圖和矢量字體顯示SOLite一個對于所有應(yīng)用程序可用,功能強勁的輕型關(guān)系型數(shù)據(jù)庫引擎Android運行庫Android包含一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。每一個Android應(yīng)用程序都在它自己的進(jìn)程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設(shè)計成一個設(shè)備可以同時高效的運行多個虛擬系統(tǒng)。Dalvik虛擬機執(zhí)行的Dalvik可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了優(yōu)化,Dalvik虛擬機依賴于linux內(nèi)核的一些功能,比如線程機制和底層內(nèi)存管理機制。Linux內(nèi)核Android的核心系統(tǒng)服務(wù)依賴于Linux2.6內(nèi)核,如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。3.2Android系統(tǒng)的四大組件Activity應(yīng)用程序中,一個Activity通常就是一個單獨的屏幕,它上面可以顯示一些空間也可以監(jiān)聽并處理用戶的事件作出響應(yīng)。Activity之間通過Intent進(jìn)行通信,在Intent的描述結(jié)構(gòu)中,有兩個最重要的部分:動作和動作對應(yīng)的數(shù)據(jù)。ServiceService沒有用戶界面,但他會在后臺一直運行,例如:service可能在用戶處理其它事情的時候播放背景音樂,或者從網(wǎng)絡(luò)上獲取數(shù)據(jù),或者執(zhí)行一些運算,并把運算結(jié)構(gòu)提供給activity展示給用戶。每個service都擴展自類service。多媒體音樂播放器就是一個很好地例子,多媒體播放器程序可能含有一個或者多個Activity,用戶通過這些activity選擇并播放音樂。然而,音樂回放并不需要一個activity來處理,因為用戶可能希望音樂一直播放下去,即使退出播放器去執(zhí)行其他程序,所以多媒體播放器activity可能會啟動一個service在后臺播放音樂,Android系統(tǒng)會使音樂回放service一直運行,即使再啟動這個service的activity退出之后。BroadcasereceiverBroadcasereceiver不執(zhí)行任何任務(wù),僅僅是接受并響應(yīng)廣播通知的一類組件。大部分廣播通知是由系統(tǒng)產(chǎn)生的,例如:改變時區(qū)、電池電量低、用戶選擇了一幅圖片或者用戶改變了語言首選項,應(yīng)用程序同樣也可以發(fā)送廣播通知,一個應(yīng)用程序可以包含任意數(shù)量的Broadcasereceiver來響應(yīng)它認(rèn)為很重要的通知,所有的Broadcasereceiver都擴展自類BroadcastReceiver。Contentprovider應(yīng)用程序可以通過Contentprovider訪問其他應(yīng)用程序的一些私有數(shù)據(jù),這是Android提供的一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機制。共享的數(shù)據(jù)可以是存儲在文件系統(tǒng)中、SQLite數(shù)據(jù)庫中或其它的一些媒體庫中。Contentprovider擴展自ContentProvider類,通過實現(xiàn)此類的一組標(biāo)準(zhǔn)的接口可以使其它應(yīng)用程序存取由它控制的數(shù)據(jù)。然而應(yīng)用程序并不會直接調(diào)用ContentProvider中的方法,而是通過類ContentResolver。ContentResolver能夠與任何一個ContentProvider通信,它與ContentProvider合作管理進(jìn)程間的通信。3.3Android音樂播放器的詳細(xì)設(shè)計思想說起音樂播放器大家都知道,、電腦上的播放器,無疑不是大家放松心情的一種選擇的娛樂方式。自從接觸android以來,對android抱有很大的興趣,就想著自己可不可以制作一款播放器呢,于是查找資料,研究設(shè)計一款屬于個人的音樂播放器。首先設(shè)計出播放器各界面的草圖,同時考慮要實現(xiàn)的功能(如:播放、暫停、繼續(xù)播放、上/下一曲、進(jìn)度條、本地列表等等),及功能在界面的buff,設(shè)計完成后就是將該界面在eclipse中設(shè)計出來,再實現(xiàn)后臺代碼的編寫,最后通過系統(tǒng)化的測試,一步步的將播放器優(yōu)化,知道播放器的正常使用。本次播放器主要有三個界面構(gòu)成:1、本地音樂列表界面,2、最近播放列表界面,3、播放主界面。本地音樂界面讀取的是SD卡中所有的可播放的音頻文件,通過ListView列表來獲取,點擊列表中的任意一首歌曲,就會跳轉(zhuǎn)到播放的主界面中,同時獲取該歌曲的所有播放信息;最近列表記錄的是最近播放過的任意一首歌曲,點擊該列中的任意一首歌曲同樣會跳轉(zhuǎn)到播放的主界面中,并獲取該歌曲的相關(guān)信息;在當(dāng)前播放的主界面中,可以任意的對當(dāng)前歌曲進(jìn)行暫停、繼續(xù)播放、上一首、下一首等操作。此款播放器實現(xiàn)的是最基本的播放原理,但沒有實現(xiàn)歌詞的顯示滾動,以及下載音樂的機制等等,作為一個項目實在存在很多的不足,但是確實一個自己獨立的項目,其作用也是不可小覷的,本次播放器的完成讓我更加的了解Android,了解程序,為我今后的工作帶來很大的幫助。第4章本系統(tǒng)內(nèi)容需求4.1實現(xiàn)的內(nèi)容需求本文主要實現(xiàn)的內(nèi)容需求有以下的幾個方面:(1)讀取內(nèi)存卡(SD)卡里面所有的音頻文件,并自動加入該音樂播放器中。(2)音樂的播放,包括上一首、下一首、暫停、播放、進(jìn)度條、更新歌名、時間顯示、本地列表、最近播放列表(3)合理的設(shè)計音樂播放器的界面4.2播放器實現(xiàn)的目標(biāo)本系統(tǒng)屬于客戶經(jīng)常使用的音樂播放器。可以是作者更加的清楚該流程,本系統(tǒng)應(yīng)達(dá)到的目標(biāo):軟件采用人機交互的方式,界面美觀友好,操作簡單、方便、富有個性化。能對音樂文件進(jìn)行有效的管理。系統(tǒng)應(yīng)最大限度的實現(xiàn)易維護性和易操作性。本系統(tǒng)使作者達(dá)到的目標(biāo):本系統(tǒng)利于作者對大學(xué)時期所學(xué)知識的歸納、總結(jié)。鍛煉了作者的應(yīng)用性及項目的整體完成性,同時為以后找工作奠定了重要的基礎(chǔ)。讓作者更加的了解一款軟件從設(shè)計到完成這個工作流程,及途中遇到苦難該如何的解決。本系統(tǒng)再次拉近了與程序之間的關(guān)系,讓我們更加的了解這個行業(yè),更加的了解這個互聯(lián)網(wǎng)軟件的時代。4.3播放器的基本控制需求根據(jù)本項目的要求,我們了解了該項目系統(tǒng)的基本需求,現(xiàn)在就從不同的角度來描述系統(tǒng)需求。并運用例圖來細(xì)致的分析下,從播放器的基本控制需要、播放列表管理需求、播放界面的友好設(shè)計這三部分來進(jìn)行概括。下一首上一首繼續(xù)播放暫停播放用戶下一首上一首繼續(xù)播放暫停播放用戶圖1播放器的基本控制需求4.4功能需求分析從圖例分析圖可以看出播放器中信息發(fā)送和調(diào)用過程快捷方式按鈕主界面本地快捷方式按鈕主界面本地音樂界面正在播放界面面選擇歌曲播放最近播放列表界面本地音樂播放頁面正在播放發(fā)送參數(shù)調(diào)用后臺的serviceService播放、返回播放后臺Service第5章Android的項目介紹5.1本地音樂列表界面首頁是通過TabHost布局,分兩個標(biāo)簽,即:“本地音樂”和“正在播放”列表,如下圖3所示,其布局代碼不附屬了;如下代碼實現(xiàn)的是首頁中本地列表歌曲的獲取方法:

關(guān)鍵代碼:musicListView.setOnItemClickListener(newOnItemClickListener(){ @Override publicvoidonItemClick(AdapterView<?>adap,Viewv,intposition,longarg3){ currentListItme=position; playMusic(MUSIC_PATH+mMusicList.get(position)); isRunning=true; Intentintent=newIntent(); intent.setClass(Mp3PlayerActivity.this,Zhengzai.class); Bundlebundle=newBundle(); bundle.putString("path",MUSIC_PATH+mMusicList.get(position).toString()); intindex=position; bundle.putString("musicTitle",mMusicList.get(position)); intent.putExtra("bundle",bundle); startActivity(intent); }});5.2正在播放界面關(guān)鍵代碼:正在播放mStartImageButton.setOnClickListener(newImageButton.OnClickListener(){ @Override publicvoidonClick(Viewarg0){ //TODOAuto-generatedmethodstub //Stringpath=MUSIC_PATH+mMusicList.get(currentListItme); if(!isRunning){ playMusic(path); //startSeekBarUpdate(); }else{ if(!isPause){ pause(path); }else{ continuePlay(path); } } } });下一首的監(jiān)聽和實現(xiàn)mNextImageButton.setOnClickListener(newImageButton.OnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub nextMusic(); } });privatevoidnextMusic(){ if(++Mp3PlayerActivity.currentListItme>=Mp3PlayerActivity.mMusicList.size()){ Mp3PlayerActivity.currentListItme=0; } playMusic(MUSIC_PATH+Mp3PlayerActivity.mMusicList.get(Mp3PlayerActivity.currentListItme)); isPause=false; mStartImageButton.setImageDrawable(getResources().getDrawable(R.drawable.bt_widget_pause_nor)); }上一首的監(jiān)聽和實現(xiàn)mPreImageButton.setOnClickListener(newImageButton.OnClickListener(){ @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub FrontMusic(); } });privatevoidFrontMusic(){ if(--Mp3PlayerActivity.currentListItme<=0){ Mp3PlayerActivity.currentListItme=Mp3PlayerActivity.mMusicList.size()-1; } playMusic(MUSIC_PATH+Mp3PlayerActivity.mMusicList.get(Mp3PlayerActivity.currentListItme)); isPause=false; mStartImageButton.setImageDrawable(getResources().getDrawable(R.drawable.bt_widget_pause_nor)); }音樂的暫停privatevoidpause(Stringpath){if(Mp3PlayerActivity.mMediaPlayer!=null&&Mp3PlayerActivity.mMediaPlayer.isPlaying()){ Mp3PlayerActivity.mMediaPlayer.pause();isPause=true;mStartImageButton.setImageDrawable(getResources().getDrawable(R.drawable.bt_widget_play_nor));}}音樂繼續(xù)播放privatevoidcontinuePlay(Stringpath){ if(isPause){ Mp3PlayerActivity.mMediaPlayer.start(); isPause=false; mStartImageButton.setImageDrawable(getResources().getDrawable(R.drawable.bt_widget_pause_nor));}}退出播放器界面退出播放器提示代碼:publicvoidshowExitDialog(){ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setTitle("提示"); builder.setMessage("確定要退出嗎?"); builder.setNegativeButton("否",newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ } }); builder.setPositiveButton("是",newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ Mp3PlayerActivity.this.finish(); System.exit(0); } }); builder.setCancelable(false); builder.create().show();}文件介紹Android系統(tǒng)的任何一個程序啟動都需要AndroidManifest.xml來啟動程序,任何一個新建的工程目錄都會自動生成一個AndroidManifest.xml文件,此配置文件是整個程序能夠正常運行的核心,它包含了AndroidSDK的版本,程序運行的默認(rèn)Activity,當(dāng)程序中的任何一個組件觸發(fā)事件后,系統(tǒng)都會自動的去AndroidManifest.xml中尋找標(biāo)識來作出相應(yīng)的操作。在AndroidManifest.xml中有一個根結(jié)點<users-sdk>,它是我們需要定義的ADT版本,當(dāng)程序的任何一個組件要用到時,都必須在AndroidManifest.xml文件中聲明。四大組件要使用前都需要聲明。其中聲明provider是還需要聲明其授權(quán)authorities。每個組件里面好有很多的屬性,會根據(jù)程序的具體需要定義不同的屬性。過濾器inent-filter有兩種啟動方式來啟動界面。顯示方式:顯示方式是在代碼中直接啟動組件,啟動時會聲明Inent,在它的構(gòu)造方法Intent中直接指定一個組件的名字,然后調(diào)用方法startIntent(intent)以啟動指定的組件。隱式方式:隱式方式是通過過濾器來過濾完成的,啟動的組件必須滿足action和category的條件才能夠啟動該組件。這些屬性是在AndroidManifest.xml文件中聲明的。兩種啟動方式都可以通過程序setAction和startActivity或配置文件兩種方式來實現(xiàn)組件的跳轉(zhuǎn)。第6章Android模擬器讀取SD卡中音頻文件的實現(xiàn)6.1怎樣在模擬器中添加音頻文件并讀取在Android模擬器中,初始時沒有sdcard的,為了存放音樂文件,需要自己創(chuàng)建sdcard,所以下面的介紹就是怎樣在模擬器中創(chuàng)建音頻文件及讀取。6.2SD卡的創(chuàng)建通過Android的Tools來創(chuàng)建sd卡并導(dǎo)入進(jìn)來:打開dos,windows+R鍵打開。轉(zhuǎn)換到你的sdk安裝包的tools目錄下,如我的目錄如下:E:\android-sdk-windows\tools。創(chuàng)建sd卡。在命令行中輸入:mksdcard1024M,E:\androidsdcard\sdcard.img。在eclipse里面創(chuàng)建模擬器,并以該SD卡來創(chuàng)建。創(chuàng)建完成之后,啟動該模擬器。可以在AndroidSDKandAVDManager里面指定模擬器并啟動。同樣打開Eclipse的DDMS—FileExplorer查看sd卡是否安裝完成。6.3向SD卡里面上傳文件右邊兩個小按鈕就是傳輸文件的按鈕了,用它來實現(xiàn)文件的傳入和傳出了,向左的表示把里的文件導(dǎo)出,向右的表示把文件導(dǎo)入里面去。但是在這里很容易出現(xiàn)一些異常情況,在這里異常情況不一一講述了,把里面的文件導(dǎo)出,進(jìn)入模擬器,其導(dǎo)出的音頻文件的名稱最好為英文,如果是中文名稱則很容易出現(xiàn)異常。導(dǎo)出后,啟動模擬器,在播放器中就可以將歌曲自動的導(dǎo)入播放列表中。6.4SD卡音頻文件讀取的代碼第7章軟件測試7.1軟件測試環(huán)境由于本次的軟件是個人的小項目,其測試的環(huán)境只能用自己的進(jìn)行測試,打開eclipse連接,運行項目時會將程序默認(rèn)的安裝在里,即我們可以在里進(jìn)行每個功能點的測試,需注意的是,本次項目是Android平臺下的音樂播放器,所以測試的必須是Android系統(tǒng)的,且在Android2.1以上版本的,測試環(huán)境允許的條件下,接下來就是實際的測試操作了。7.2測試階段測試前期一個一個功能點的測試,即:單個模塊的測試。當(dāng)寫好一個功能如:播放,測試需求為:1、播放的按鈕是否正常顯示,2、未播放的按鈕狀態(tài)(暫停)點擊后是否顯示為播放狀態(tài),且能正常播放音樂,3、正在播放時點擊播放按鈕是否顯示為暫停狀態(tài),且歌曲是否停止播放了,4、再次點擊暫停按鈕時是否顯示為播放狀態(tài),且歌曲是否是接著上次的播放進(jìn)度繼續(xù)播放的。測試流程為:按照測試的需求一步步的執(zhí)行操作,如出現(xiàn)問題需及時的修改。測試結(jié)果為:測試完一個單個模塊功能時,其測試的結(jié)果需記錄下來,整理后統(tǒng)一的進(jìn)行修復(fù),直到問題解決完畢。測試中期與初期測試不同,該時期測試是在附屬的單個功能都完成的條件下進(jìn)行的,相當(dāng)于小模塊多個功能的整體測試。如:歌曲的播放、暫停、繼續(xù)播放、上一首、下一首的整個流程。測試需求為:1、本地列表中的任意歌曲是否都能點擊并跳轉(zhuǎn)到播放界面進(jìn)行播放,2、對正在播放界面中播放的歌曲進(jìn)行暫停、繼續(xù)播放、上一首、下一首是否正常運行,3、正在播放界面的歌按鈕狀態(tài)在不同操作下是否顯示正確。測試流程為:按照測試需求完成附屬模塊的整體測試,如中途出現(xiàn)問題應(yīng)及時的修改。測試結(jié)果為:附屬模塊測試完畢時,須把測試結(jié)果記錄下來,整理后統(tǒng)一的進(jìn)行修復(fù),知道問題解決完畢。測試完畢此測試條件為所有功能基本完成,播放器整體成形,此時需進(jìn)行更加系統(tǒng)的測試,以確保所有問題都解決掉。按照之前的需求,再進(jìn)一步的對此播放器進(jìn)行優(yōu)化,更完善些。當(dāng)測試完成后,該項目就是一個比較成功的項目了。7.3測試要點和總結(jié)每測試一個功能時,需要整理一個Excel文檔,記錄每一個功能的流程,按照模塊、測試項、前置條件、執(zhí)行步驟、預(yù)期結(jié)果和測試結(jié)果進(jìn)行詳細(xì)的記錄,記錄完整之后,總結(jié)一個測試文檔,總結(jié)測試的過程。測試報告是每個軟件測試所必須的,該報告清楚的記錄測試的流程及測試的結(jié)果,和存在的問題,及時的提醒我們要及時的修復(fù)。7.4測試結(jié)果本次的軟件測試,有好多的功能沒有實現(xiàn)。如:最近播放音樂的記錄該功能沒有實現(xiàn),雖然后臺代碼編寫完成了,但是調(diào)試后的結(jié)果沒有反應(yīng),由于自己的能力不足,最終導(dǎo)致這方面目前仍沒有實現(xiàn);下載音樂的功能、音樂歌詞的顯示等等功能都沒有做,只是單純的實現(xiàn)了播放、暫停、繼續(xù)播放、上/下一首、進(jìn)度條顯示、本地音樂的加載等功能,雖然這款音樂播放器可以

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論