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

下載本文檔

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

文檔簡介

1、基于基于 AndroidAndroid 系統(tǒng)的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)的音樂播放器的設(shè)計(jì)與實(shí)現(xiàn) 摘要:摘要:進(jìn)入 21 世紀(jì)的數(shù)字時(shí)代,網(wǎng)絡(luò)發(fā)展十分的迅猛,在現(xiàn)今工作壓力大的社會(huì)下,娛樂隨之興起,各種各樣的網(wǎng)絡(luò)游戲、娛樂軟件像雨后春筍一樣以不斷更新的方式進(jìn)入我們的生活,豐富了我們的業(yè)余時(shí)間。這些游戲能在不同的操作平臺(tái)上進(jìn)行安裝,且其安裝、操作簡單適合每一位玩家,讓所有的玩家都能暢玩一番。 然而在所有的操作系統(tǒng)中,Android 系統(tǒng)無疑不是其首選的。 在 Android 平臺(tái)上發(fā)布的酷狗、酷我、百度影音等等播放器,以其簡單快捷的操作,好看的畫面,舒適的結(jié)構(gòu),強(qiáng)大的功能所折服我們。本文通過 A

2、ndroid 技術(shù)的研究,實(shí)現(xiàn)了自主設(shè)計(jì)的一款音樂播放器,完成了本地音樂的加載、最近音樂播放的加載、正在播放頁面的實(shí)現(xiàn)、上一曲、下一曲、暫停、播放、繼續(xù)播放、進(jìn)度條、時(shí)間顯示等等這些功能。本款音樂播放器采用 TabHost 進(jìn)行總框架的布局,其他部分則采用相應(yīng)的布局方式,使這款播放器看上去豐富,形象點(diǎn)。同時(shí)這款播放器操作簡單、實(shí)用、結(jié)合了Android 課中所學(xué)到的很多知識(shí),即對(duì)知識(shí)的一個(gè)總結(jié)。本音樂播放器的設(shè)計(jì)遵循企業(yè)軟件的工程思想,開始模擬了客戶來公司洽談某項(xiàng)業(yè)務(wù),完成需求分析、界面設(shè)計(jì)、編寫代碼、進(jìn)一步社交、產(chǎn)品的維護(hù)、用戶需求。這一系列的流程來一步步的制作這款播放器。 關(guān)鍵字關(guān)鍵字:A

3、ndroid、播放器、客戶、操作、流程Abstract:Abstract: Digital era in twenty-first Century, network development is very rapid, in todays stressful society, along with the rise of various kinds of entertainment, network game,entertainment software like bamboo shoots after a spring rain as to continuously update the w

4、ay into our lives,enrich -2-our spare time. These games can be installed in different operating platform, and its installation, operation is simple and suitable for every game player, let all thegame player can play a.However, all of the operating system, the Android systemis not the preferred. Publ

5、ished in the Android platform on the cool dog, cool, and so on Baidu video player, with itssimple and quick operation, beautiful pictures, comfortablestructure, powerful function by us. In this paper, through the research of Android technology, realizes anindependent design and music player, the loc

6、al musicloading, recently playing music, playing loading page realization, a song, the next song, play, pause, continue to play, a progress bar, time display and so on thesefunctions. The music player using TabHost frame layout,the other part is the corresponding arrangement way,make the player look

7、 rich, image point. At the same time,the player has the advantages of simple operation,practical, combined with a lot of knowledge learned inAndroid class, or a summary of knowledge. The design of the music player follows the business softwareengineering thought, began to simulate the customers to t

8、he company to discuss some business, complete therequirement analysis, interface design, code, furthersocial, product maintenance, user demand. This a series of the process step by step, making the player.Key Words: Android 、Player、 Customer、 Operation、 Process目目 錄錄第第 1 1 章章 緒論緒論.5 5-3-1.1 ANDROID簡介

9、及其開發(fā)背景 .51.2 本課題內(nèi)容的概述 .61.3 本課題的目的及意義 .7第第 2 2 章章 開發(fā)工具的簡介開發(fā)工具的簡介.7 72.1 什么是 ECLIPSE? .72.2 JDK 的下載與安裝.92.3 ECLIPSE的下載與安裝 .132.4 ECLIPSE中 ANDROID SDK 插件的下載與安裝 .14第第 3 3 章章 ANDROIDANDROID 的基本結(jié)構(gòu)的基本結(jié)構(gòu) .19193.1 ANDROID 的基本框架.193.2 ANDROID系統(tǒng)的四大組件 .213.3 ANDROID音樂播放器的詳細(xì)設(shè)計(jì)思想 .22第第 4 4 章章 本系統(tǒng)內(nèi)容需求本系統(tǒng)內(nèi)容需求.2323

10、4.1 實(shí)現(xiàn)的內(nèi)容需求 .234.2 播放器實(shí)現(xiàn)的目標(biāo) .244.3 播放器的基本控制需求 .244.4 功能需求分析 .25第第 5 5 章章 ANDROIDANDROID 的項(xiàng)目介紹的項(xiàng)目介紹 .27275.1 本地音樂列表界面 .275.2 正在播放界面 .295.3 退出播放器界面 .325.4 ANDROIDMANIFEST.XML文件介紹.33第第 6 6 章章 ANDROIDANDROID 模擬器讀取模擬器讀取 SDSD 卡中音頻文件的實(shí)現(xiàn)卡中音頻文件的實(shí)現(xiàn) .33336.1 怎樣在模擬器中添加音頻文件并讀取 .336.2 SD 卡的創(chuàng)建.346.3 向 SD 卡里面上傳文件 .

11、346.4 手機(jī) SD 卡音頻文件讀取的代碼 .34第第 7 7 章章 軟件測試軟件測試.34347.1 軟件測試環(huán)境 .347.2 測試階段 .347.3 測試要點(diǎn)和總結(jié) .357.4 測試結(jié)果 .35結(jié)束語結(jié)束語.3636參考文獻(xiàn)參考文獻(xiàn).3737致謝致謝.3737 第第 1 1 章章 緒論緒論-4-1.11.1 AndroidAndroid 簡介及其開發(fā)背景簡介及其開發(fā)背景Android 一詞的本意是指“機(jī)器人” ,同時(shí)也是 Goolge 與 2007 年 11 月 5 日宣布的基于 Linux 平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。Androi

12、d 是谷歌與 2007 年公布的開放式源碼手機(jī)系統(tǒng),他的開放性就優(yōu)于其他封閉式的手機(jī)系統(tǒng),因此,任何人都可能根據(jù)自己的喜好將手機(jī)系統(tǒng)中的所有功能重新編寫。這使得越來越多的人關(guān)注這個(gè)系統(tǒng)。本次作品音樂播放器就是基于Android 平臺(tái)的。Android 是基于 Linux 內(nèi)核的軟件平臺(tái)和操作系統(tǒng),早期由 Google 開發(fā),后由開放手機(jī)聯(lián)盟開發(fā)。它采用了軟件堆層(software stack,又名為軟件堆層)的架構(gòu),主要分為三部分。底層以 Linux 內(nèi)核工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以 java 作為編寫程序的一部分。另外,為了推廣此技術(shù),Google 和其他

13、幾十個(gè)手機(jī)公司建立了開放手機(jī)聯(lián)盟。Android 在未公開之前常被傳聞為 Google 電話或 gPhone。大多的傳聞?wù)J為 Google 開發(fā)的是自己的手機(jī)電話產(chǎn)品,而不是一套軟件平臺(tái)。到了 2010 年 1 月,Google 開始發(fā)表自家品牌手機(jī)電話的 Nexus One。目前最新的 SDK 版本為 Android4.4。 硬件產(chǎn)品的發(fā)展趨勢 手機(jī)-在手機(jī)產(chǎn)品領(lǐng)域,Android 手機(jī)可以說是類型最為豐富的, 同時(shí)往往集成了最尖端的技術(shù)力。在 2014 年,更大尺寸、2k 分辨率屏幕將成為高端配置,vivo 品牌已經(jīng)推出了首款 2k 屏幕機(jī)型。64 位處理器及 4GB RAM,也將成為高端

14、手機(jī)的標(biāo)配,此外,攝像頭也將繼續(xù)高像素化。平板電腦-在 2013 年,Android 在平板領(lǐng)域的成績斐然,甚至搶奪了蘋果 ipad的市場份額。雖然這與 Android 低價(jià)平板的增多不無關(guān)系,在 2014 年仍將保持占有率的優(yōu)勢。 總結(jié)總結(jié)顯然,Android 在 2014 年或許不會(huì)發(fā)生巨大的變化,包括市場份額以及產(chǎn)品形態(tài)。從積極的方面來看,新興市場的發(fā)力、新型設(shè)備的流行,會(huì)讓 Android 擁有更多的用武之地,與三星的關(guān)系修復(fù),也有利于谷歌提供更為健康的生態(tài)系統(tǒng)。所以,我們還是十分期待在 2014 年的 Goolge I/O 大會(huì)上,會(huì)看到谷歌更多的大動(dòng)作。-5-1.2 本課題內(nèi)容的概

15、述本課題內(nèi)容的概述進(jìn)入互聯(lián)網(wǎng)的信息時(shí)代,手機(jī)市場越發(fā)迅猛的發(fā)展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一部分了。于是各種手機(jī)播放器也緊跟著發(fā)展起來,但是很多播放器一味的追求外觀花哨,功能的齊全,對(duì)用戶的手機(jī)造成了很多資源的浪費(fèi),比如 CPU,內(nèi)存等占用率過高,會(huì)導(dǎo)致一些低端手機(jī)卡機(jī)、死機(jī)等情況的出現(xiàn)。隨著用戶的要求,播放器的功能越來越齊全,如:聽歌、看 MV 等等,除了能播放常見格式的語言視頻文件之外,還要滿足 RMVB 格式的視頻文件。此外,還需支持中文、英文、韓文、日文等語言界面。因此,基于 Android 的手機(jī)操作系統(tǒng)上的各種應(yīng)用軟件應(yīng)運(yùn)

16、而生,其音樂播放器無疑不是一個(gè)最成功的案例。如:酷狗、酷我、QQ 音樂等播放器深受廣大用戶的喜愛,所以,各高校都會(huì)把播放器作為一個(gè)很好的教案,不僅讓我們了解了播放器是如何編寫成功的,更重要的是將我們與這個(gè)新興行業(yè)緊密的聯(lián)系在一起了。學(xué)以致用,將書本上的知識(shí)歸納、總結(jié)后寫一個(gè)成功的小項(xiàng)目,讓自己獲得更多、更牢固的專業(yè)知識(shí),同時(shí)也為今后找工作打下不錯(cuò)的基礎(chǔ)。對(duì)于這次的畢業(yè)選題,其難度、完整度、完善度都比以往在學(xué)校寫過寫過的任何一個(gè)小項(xiàng)目難得多,但卻是對(duì)我們一個(gè)很好的鍛煉機(jī)會(huì),使自己的能力進(jìn)一步升華,同時(shí)也給自己在大學(xué)里所有的知識(shí)做了一個(gè)總結(jié),為自己的大學(xué)時(shí)代畫上一個(gè)圓滿的句號(hào)。1.31.3 本課題

17、的目的及意義本課題的目的及意義本次作品就是基于 Android 平臺(tái)下的音樂播放器,對(duì)于此次的項(xiàng)目,我們必須首先了解 Android 平臺(tái)下軟件開發(fā)的相關(guān)知識(shí),及軟件開發(fā)的意義。由于本次的畢業(yè)項(xiàng)目屬于個(gè)人的開發(fā)項(xiàng)目,不存在經(jīng)濟(jì)實(shí)用性的考量,所以有很多的方面完善的不是很全,但是作為畢業(yè)項(xiàng)目而言,的確是一個(gè)很大的挑戰(zhàn),不僅鍛煉了自己的能力,而且讓自己所學(xué)的知識(shí)得到運(yùn)用,同時(shí)也是對(duì)自己在大學(xué)所學(xué)知識(shí)的一個(gè)總結(jié),并且可以檢測自己的實(shí)力,總之,本次畢業(yè)論文的撰寫對(duì)我們益處扉多。 第第 2 章章 開發(fā)工具的簡介開發(fā)工具的簡介 2.12.1 什么是什么是 EclipseEclipse?-6-1簡介 Ecli

18、pse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Kit,JDK) 。 雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境(IDE)來使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE) ,這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)

19、境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用 Java 語言開發(fā)的,但它的用途并不限于 Java 語言;例如,支持諸如 C/C+ 和 COBOL 等編程語言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。2發(fā)行版本 從 2006 年起,Eclipse 基金會(huì)每年都會(huì)安排同步發(fā)布(simultaneous relea

20、se) 。至今,同步發(fā)布主要在 6 月進(jìn)行,并且會(huì)在接下來的 9 月及 2 月釋放出SR1 及 SR2 版本。-7-3.語言拓展 Eclipse 是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE) 。最初主要用來 Java 語言開發(fā),但是目前亦有人通過插件使其作為其他計(jì)算機(jī)語言比如 C+和 Python 的開發(fā)工具。Eclipse 的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得 Eclipse 擁有其他功能相對(duì)固定的 IDE 軟件很難具有的靈活性。許多軟件開發(fā)商以 Eclipse 為框架開發(fā)自己的 IDE。 Eclipse 最初由 OTI 和 IBM 兩家公司的 IDE 產(chǎn)品開發(fā)組創(chuàng)建,起始于 199

21、9 年 4月。IBM 提供了最初的 Eclipse 代碼基礎(chǔ),包括 Platform、JDT 和 PDE。目前由IBM 牽頭,圍繞著 Eclipse 項(xiàng)目已經(jīng)發(fā)展成為了一個(gè)龐大的 Eclipse 聯(lián)盟。Eclipse 是一個(gè)開發(fā)源碼項(xiàng)目,由于其開放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來越受人們關(guān)注。近期還有包括 Oracle 在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,并宣稱 Eclipse 將來能成為可進(jìn)行任何語言開發(fā)的 IDE 集大成者,使用者只需下載各種語言的插件即可。4.插件開發(fā)環(huán)境 Eclipse 的插件機(jī)制是輕型軟件組件化架構(gòu)。Eclipse 使用插件來提供所

22、有的附加功能,例如支持 Java 以外的其他語 言。 已有的分離的插件已經(jīng)能夠支持C/C+(CDT) 、Perl、Ruby,Python、telnet 和數(shù)據(jù)庫開發(fā)。插件架構(gòu)能夠支持將任意的擴(kuò)展加入到 現(xiàn)有環(huán)境中,例如配置管理,而決不僅僅限于支持各種編程語言。5.主要組成 Eclipse 是一個(gè)開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺(tái)。它主要由 Eclipse 項(xiàng)目、Eclipse 工具項(xiàng)目和 Eclipse 技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,具體包括四個(gè)部分組成Eclipse、 Platform、JDT、CDT 和 PDE。JDT 支持 Java 開發(fā)

23、、CDT 支持 C 開發(fā)、PDE 用來支持插件開發(fā),Eclipse Platform 則是一個(gè)開放的可擴(kuò)展 IDE,提供了一個(gè)通用的開發(fā)平臺(tái)。它提供建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨(dú)立開發(fā)與他人工具無縫集成的工具從而無須分辨一個(gè)工具功能在哪里結(jié)束,而另一個(gè)工具功能在哪里開始。6.Eclipse SDK Eclipse SDK(軟件開發(fā)者包)是 Eclipse Platform、JDT 和 PDE 所生產(chǎn)的組件-8-合并,它們可以一次下載。這些部分在一起提供了一個(gè)具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到 Eclipse P

24、latform 中的工具。Eclipse SDK由 Eclipse 項(xiàng)目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse 項(xiàng)目生產(chǎn)的軟件以 GPL 發(fā)布,第三方組件有各自自身的許可協(xié)議。2.22.2 JDKJDK 的下載與安裝的下載與安裝1、 JDK 的介紹 JDK 是 Java 開發(fā)者工具包,也稱 J2SDK,是 SUM 公司提供的基礎(chǔ) Java 語言開發(fā)工具,該工具軟件包含 Java 語言的編譯工具、運(yùn)行工具以及執(zhí)行程序的環(huán)境(JRE) 。 JDK 現(xiàn)在是一個(gè)開源、免費(fèi)的工具。JDK 是其他 Java 開發(fā)工具的基礎(chǔ),也就是說,在安裝其它開發(fā)工具之前,必須首先安裝 JDK

25、。2、JDK 的下載現(xiàn)在最新的 JDK 版本為 JDK1.7,JDK 的最新版本的下載地址為: http:/ 的安裝 在下載好的 JDK 雙擊進(jìn)行一步一步的安裝即可,之后進(jìn)行另一項(xiàng)工作,即:環(huán)境變量的配置。4、環(huán)境配置圖解過程4.1 右擊“我的電腦” ,選擇屬性4.2 選擇“高級(jí)系統(tǒng)設(shè)置”4.3 選擇“高級(jí)”選項(xiàng)卡中的“環(huán)境變量”-9-4.4 在系統(tǒng)環(huán)境里點(diǎn)擊“新建” ,之后在“新建系統(tǒng)變量”里輸入如下內(nèi)容,在點(diǎn)擊“確定” 。4.5 Path 系統(tǒng)的變量設(shè)置,在系統(tǒng)變量里找到“Path” ,之后點(diǎn)擊“編輯” ,-10-進(jìn)入“編輯系統(tǒng)變量” ,編輯“變量值” ,完成后點(diǎn)擊“確定” 。4.6 cl

26、asspath 系統(tǒng)變量值的設(shè)置,由于 JDK 是 1.7 最高版本的,所以當(dāng) JDK高于 1.6 版本時(shí)就不需要設(shè)置 classpath 的系統(tǒng)變量值了。5、JDK1.7 安裝的最后檢查 若想確定 JDK 是否安裝成功,可以在 cmd 運(yùn)行環(huán)境里查看,即 JDK 安裝成功時(shí)的狀態(tài)為:-11-2.32.3 EclipseEclipse 的下載與安裝的下載與安裝1.Eclipse 的下載 JDK 環(huán)境配置成功后,接下來就是要把 Java 開發(fā)工具給安裝起來,即 Eclipse的下載網(wǎng)址為:http://downloads/進(jìn)入后打開如下的網(wǎng)頁:-12-根據(jù)自己的學(xué)習(xí)

27、要求下載合適的版本,我這里下載的是第一個(gè)中的 Windows 32 Bit。然后再點(diǎn)擊那個(gè)下載按鈕開始下載就可以了,下載下來的是一個(gè)壓縮包。將該壓縮包解壓到一個(gè)自定義的文件夾中,之后打開 eclipse 文件夾中的eclipse.exe,就能打開 eclipse 軟件。2.42.4 EclipseEclipse 中中 AndroidAndroid SDKSDK 插件的下載與安裝插件的下載與安裝1、Android SDK 的介紹 SDK:軟件開發(fā)工具包。被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。因此,Android SDK 指的是Androi

28、d 專屬的軟件開發(fā)工具包。2、Android SDK 的下載 Android SDK 的下載網(wǎng)址為:http:/ 下載后解壓文件。-13-3、Android SDK 的安裝 Android SDK 不用安裝,下載后,直接解壓即可,將下載后的 SDK 的壓縮包解壓到適當(dāng)?shù)奈恢?,SDK 就安裝成功。 使用 Eclipse 進(jìn)行 Android 應(yīng)用開發(fā)需要給 Eclipse 安裝 ADT 插件,這樣Eclipse 就可以和 Android SDK 建立連接了,可以在 Eclipse 中啟動(dòng) Android 模擬器進(jìn)行程序調(diào)試等 ADT 插件安裝,但必須先下載 adt 的 zip 安裝包,安裝插件后

29、,需要做如下的配置即可: 3.1、在 Eclipse 中,選擇 WindowPreference; 3.2、從左側(cè)的菜單中,選擇 Android 項(xiàng); 3.4、設(shè)置 SDK Location,點(diǎn) Browse 選擇 SDK 的安裝根目錄; 3.5、點(diǎn) apply 后再點(diǎn) ok,即安裝完成。4、安裝 Eclipse 的開發(fā)插件4.1、啟動(dòng) Eclipse,選擇菜單 Help Install New Software 出現(xiàn)如下界面:4.2、點(diǎn)擊 Add 按鈕,出現(xiàn)如下的界面:輸入網(wǎng)址 https:/dl-14- https 改成 http) 。名稱:Android(自定義)4.3、點(diǎn)擊 OK 出現(xiàn)

30、如下的界面:4.4、 按照操作,點(diǎn)擊 Next,知道出現(xiàn)如下的界面:-15-4.5、選擇“I accept the terms of the .”在點(diǎn)擊 Next,進(jìn)入安裝界面。4.6、安裝完成后,出現(xiàn)如下的界面: 4.7、點(diǎn)擊 Yes 按鈕,重啟 Eclipse 后,再來配置 android sdk。 4.7.1、點(diǎn)擊菜單 Window-preferences,進(jìn)入一下界面:在 Browse 選擇你之前 android sdk 解壓后的根目錄,如下:-16-4.7.2、升級(jí) SDK 版本,選擇菜單 windows-Android sdk and avd manager:4.7.3、選擇 Up

31、date all 按鈕,進(jìn)入下面操作界面,再點(diǎn)擊左邊的 Accept后點(diǎn) Install 安裝:-17-4.7.4、 點(diǎn)擊 Install 后,進(jìn)入下一個(gè)安裝界面進(jìn)行安裝。4.7.5、安裝完成。 4.7.6、新建 AVD,步驟和上面一樣,進(jìn)入 Android SDK and AVD Manager 后一步一步的進(jìn)行設(shè)置就 OK 了。創(chuàng)建完 AVD 之后,我們就可以在 Eclipse 里面新建 Android 的項(xiàng)目了。新建 Android 項(xiàng)目將在下面第六章進(jìn)行詳細(xì)的介紹。 第第 3 3 章章 AndroidAndroid 的基本結(jié)構(gòu)的基本結(jié)構(gòu)3.13.1 AndroidAndroid 的基本

32、框架的基本框架 Android 平臺(tái)的基本框架如下圖所示:-18- Android 分為四個(gè)層,從高層到底層分別是:程序應(yīng)用層、應(yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和 linux 核心層。 藍(lán)色的代表 java 程序,黃色的代碼為運(yùn)行 Java 程序而實(shí)現(xiàn)的虛擬機(jī),綠色部分為C/C+的程序庫組成,通過 JNI 完成從 Java 到 C 的調(diào)用。1)應(yīng)用程序所有的應(yīng)用程序都是使用 JAVA 語言編寫的,每一個(gè)應(yīng)用程序由一個(gè)或者多個(gè)活動(dòng)組成,活動(dòng)必須以 Activity 類為超類,活動(dòng)類似于操作系統(tǒng)上的進(jìn)程,但是活動(dòng)比操作系統(tǒng)的進(jìn)程要更為的靈活,與進(jìn)程類似的是,活動(dòng)在多種狀態(tài)之間進(jìn)行切換。2)應(yīng)用程序框架

33、應(yīng)用程序的架構(gòu)設(shè)計(jì)簡化了組建的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其他的應(yīng)用程序都可以使用其發(fā)布的功能塊,幫助程序員快速的開發(fā)程序,并且應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng),其中包括入下:A、豐富而又可擴(kuò)展的視圖,可以用來構(gòu)建應(yīng)用程序,包括:lists、grids、text boxes、buttons,甚至可嵌入的 web 瀏覽器。B、內(nèi)容提供器使得應(yīng)用程序可以訪問另一個(gè)應(yīng)用程序的數(shù)據(jù),或者共享他們自己的數(shù)據(jù)。-19-C、資源管理器提供非代碼資源的訪問,如本地字符串、圖形、布局文件。D、通知管理器使得應(yīng)用程序可以在狀態(tài)欄中顯示自

34、定義的提示信息。E、活動(dòng)管理器用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。3)系統(tǒng)運(yùn)行庫A)程序庫Android 包含一些 C/C+庫,這些庫能被 Android 系統(tǒng)中不同的組件使用。它們通過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。如下為核心庫:1、Bionic 系統(tǒng) C 庫2、媒體庫,基于 PacketVideo OpenCORE3、Surface Manager 顧名思義,用于管理 Surface4、Webkit,LibWebCore 瀏覽器,基于 Webkit 引擎5、SGL 底層的 2D 圖形引擎6、3D libraries 基于 OpenGL ES 1.0 APIs

35、實(shí)現(xiàn)7、FreeType 位圖和矢量字體顯示8、SOLite 一個(gè)對(duì)于所有應(yīng)用程序可用,功能強(qiáng)勁的輕型關(guān)系型數(shù)據(jù)庫引擎B)Android 運(yùn)行庫Android 包含一個(gè)核心庫,該核心庫提供了 JAVA 編程語言核心庫的大多數(shù)功能。每一個(gè) Android 應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik 虛擬機(jī)實(shí)例。Dalvik 被設(shè)計(jì)成一個(gè)設(shè)備可以同時(shí)高效的運(yùn)行多個(gè)虛擬系統(tǒng)。Dalvik 虛擬機(jī)執(zhí)行的 Dalvik 可執(zhí)行文件,該格式文件針對(duì)小內(nèi)存使用做了優(yōu)化,Dalvik 虛擬機(jī)依賴于 linux 內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。4)Linux 內(nèi)核Android

36、 的核心系統(tǒng)服務(wù)依賴于 Linux2.6 內(nèi)核,如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。3.23.2 AndroidAndroid 系統(tǒng)的四大組件系統(tǒng)的四大組件 1) Activity-20-應(yīng)用程序中,一個(gè) Activity 通常就是一個(gè)單獨(dú)的屏幕,它上面可以顯示一些空間也可以監(jiān)聽并處理用戶的事件作出響應(yīng)。Activity 之間通過 Intent 進(jìn)行通信,在 Intent 的描述結(jié)構(gòu)中,有兩個(gè)最重要的部分:動(dòng)作和動(dòng)作對(duì)應(yīng)的數(shù)據(jù)。2) ServiceService 沒有用戶界面,但他會(huì)在后臺(tái)一直運(yùn)行,例如:service 可能在用戶處理其它事情的時(shí)候播放背景音樂,或者從網(wǎng)絡(luò)上獲取

37、數(shù)據(jù),或者執(zhí)行一些運(yùn)算,并把運(yùn)算結(jié)構(gòu)提供給 activity 展示給用戶。每個(gè) service 都擴(kuò)展自類 service。多媒體音樂播放器就是一個(gè)很好地例子,多媒體播放器程序可能含有一個(gè)或者多個(gè)Activity,用戶通過這些 activity 選擇并播放音樂。然而,音樂回放并不需要一個(gè) activity 來處理,因?yàn)橛脩艨赡芟M魳芬恢辈シ畔氯ィ词雇顺霾シ牌魅?zhí)行其他程序,所以多媒體播放器 activity 可能會(huì)啟動(dòng)一個(gè) service 在后臺(tái)播放音樂,Android 系統(tǒng)會(huì)使音樂回放 service 一直運(yùn)行,即使再啟動(dòng)這個(gè) service 的activity 退出之后。3) Broa

38、dcase receiver4) Broadcase receiver 不執(zhí)行任何任務(wù),僅僅是接受并響應(yīng)廣播通知的一類組件。大部分廣播通知是由系統(tǒng)產(chǎn)生的,例如:改變時(shí)區(qū)、電池電量低、用戶選擇了一幅圖片或者用戶改變了語言首選項(xiàng),應(yīng)用程序同樣也可以發(fā)送廣播通知,一個(gè)應(yīng)用程序可以包含任意數(shù)量的 Broadcase receiver 來響應(yīng)它認(rèn)為很重要的通知,所有的Broadcase receiver 都擴(kuò)展自類 BroadcastReceiver。5) Content provider6) 應(yīng)用程序可以通過 Content provider 訪問其他應(yīng)用程序的一些私有數(shù)據(jù),這是Android 提供的

39、一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機(jī)制。共享的數(shù)據(jù)可以是存儲(chǔ)在文件系統(tǒng)中、SQLite 數(shù)據(jù)庫中或其它的一些媒體庫中。Content provider 擴(kuò)展自ContentProvider 類,通過實(shí)現(xiàn)此類的一組標(biāo)準(zhǔn)的接口可以使其它應(yīng)用程序存取由它控制的數(shù)據(jù)。然而應(yīng)用程序并不會(huì)直接調(diào)用 ContentProvider 中的方法,而是通過類 ContentResolver。ContentResolver 能夠與任何一個(gè) ContentProvider 通信,它與 ContentProvider 合作管理進(jìn)程間的通信。3.33.3 AndroidAndroid 音樂播放器的詳細(xì)設(shè)計(jì)思想音樂播放器的詳細(xì)設(shè)計(jì)思想-

40、21-說起音樂播放器大家都知道,手機(jī)、電腦上的播放器,無疑不是大家放松心情的一種選擇的娛樂方式。自從接觸 android 以來,對(duì) android 抱有很大的興趣,就想著自己可不可以制作一款播放器呢,于是查找資料,研究設(shè)計(jì)一款屬于個(gè)人的音樂播放器。首先設(shè)計(jì)出播放器各界面的草圖,同時(shí)考慮要實(shí)現(xiàn)的功能(如:播放、暫停、繼續(xù)播放、上/下一曲、進(jìn)度條、本地列表等等) ,及功能在界面的buff,設(shè)計(jì)完成后就是將該界面在 eclipse 中設(shè)計(jì)出來,再實(shí)現(xiàn)后臺(tái)代碼的編寫,最后通過系統(tǒng)化的測試,一步步的將播放器優(yōu)化,知道播放器的正常使用。本次播放器主要有三個(gè)界面構(gòu)成:1、本地音樂列表界面,2、最近播放列表界

41、面,3、播放主界面。本地音樂界面讀取的是手機(jī) SD 卡中所有的可播放的音頻文件,通過ListView 列表來獲取,點(diǎn)擊列表中的任意一首歌曲,就會(huì)跳轉(zhuǎn)到播放的主界面中,同時(shí)獲取該歌曲的所有播放信息;最近列表記錄的是最近播放過的任意一首歌曲,點(diǎn)擊該列中的任意一首歌曲同樣會(huì)跳轉(zhuǎn)到播放的主界面中,并獲取該歌曲的相關(guān)信息;在當(dāng)前播放的主界面中,可以任意的對(duì)當(dāng)前歌曲進(jìn)行暫停、繼續(xù)播放、上一首、下一首等操作。此款播放器實(shí)現(xiàn)的是最基本的播放原理,但沒有實(shí)現(xiàn)歌詞的顯示滾動(dòng),以及下載音樂的機(jī)制等等,作為一個(gè)項(xiàng)目實(shí)在存在很多的不足,但是確實(shí)一個(gè)自己獨(dú)立的項(xiàng)目,其作用也是不可小覷的,本次播放器的完成讓我更加的了解An

42、droid,了解程序,為我今后的工作帶來很大的幫助。 第第 4 4 章章 本系統(tǒng)內(nèi)容需求本系統(tǒng)內(nèi)容需求4.14.1 實(shí)現(xiàn)的內(nèi)容需求實(shí)現(xiàn)的內(nèi)容需求本文主要實(shí)現(xiàn)的內(nèi)容需求有以下的幾個(gè)方面:(1) 讀取內(nèi)存卡(SD)卡里面所有的音頻文件,并自動(dòng)加入該音樂播放器中。(2) 音樂的播放,包括上一首、下一首、暫停、播放、進(jìn)度條、更新歌名、時(shí)間顯示、本地列表、最近播放列表(3) 合理的設(shè)計(jì)音樂播放器的界面-22-4.24.2 播放器實(shí)現(xiàn)的目標(biāo)播放器實(shí)現(xiàn)的目標(biāo)本系統(tǒng)屬于客戶經(jīng)常使用的音樂播放器??梢允亲髡吒拥那宄摿鞒蹋鞠到y(tǒng)應(yīng)達(dá)到的目標(biāo):(1) 軟件采用人機(jī)交互的方式,界面美觀友好,操作簡單、方便、富有個(gè)

43、性化。(2) 能對(duì)音樂文件進(jìn)行有效的管理。(3) 系統(tǒng)應(yīng)最大限度的實(shí)現(xiàn)易維護(hù)性和易操作性。本系統(tǒng)使作者達(dá)到的目標(biāo):(1) 本系統(tǒng)利于作者對(duì)大學(xué)時(shí)期所學(xué)知識(shí)的歸納、總結(jié)。(2)鍛煉了作者的應(yīng)用性及項(xiàng)目的整體完成性,同時(shí)為以后找工作奠定了重要的基礎(chǔ)。(3) 讓作者更加的了解一款軟件從設(shè)計(jì)到完成這個(gè)工作流程,及途中遇到苦難該如何的解決。(4) 本系統(tǒng)再次拉近了與程序之間的關(guān)系,讓我們更加的了解這個(gè)行業(yè),更加的了解這個(gè)互聯(lián)網(wǎng)軟件的時(shí)代。4.34.3 播放器的基本控制需求播放器的基本控制需求根據(jù)本項(xiàng)目的要求,我們了解了該項(xiàng)目系統(tǒng)的基本需求,現(xiàn)在就從不同的角度來描述系統(tǒng)需求。并運(yùn)用例圖來細(xì)致的分析下,從播

44、放器的基本控制需要、播放列表管理需求、播放界面的友好設(shè)計(jì)這三部分來進(jìn)行概括。-23-圖 1 播放器的基本控制需求4.44.4 功能需求分析功能需求分析從圖例分析圖可以看出播放器中信息發(fā)送和調(diào)用過程用戶 播放 暫停 繼續(xù)播放上一首下一首-24-快捷方式按鈕主界面本地音樂界面正在播放界面面選擇歌曲播放最近播放列表界面本地音樂播放頁面正在播放發(fā)送參數(shù)調(diào)用后臺(tái)的serviceService播放、返回播放后臺(tái)Service 圖 2 播放器的時(shí)序圖-25-第第 5 章章 Android 的項(xiàng)目介紹的項(xiàng)目介紹5.1 本地音樂列表界面本地音樂列表界面首頁是通過 TabHost 布局,分兩個(gè)標(biāo)簽,即:“本地音樂

45、”和“正在播放”列表,如下圖 3 所示,其布局代碼不附屬了;如下代碼實(shí)現(xiàn)的是首頁中本地列表歌曲的獲取方法:關(guān)鍵代碼:musicListView.setOnItemClickListener(newnew OnItemClickListener() Overridepublicpublic voidvoid onItemClick(AdapterView adap, View v, intint position,longlong arg3) -26-currentListItme = position;playMusic(MUSIC_PATH + mMusicList.get(position

46、);isRunning = truetrue;Intent intent=newnew Intent();intent.setClass(Mp3PlayerActivity.thisthis,Zhengzai.classclass);Bundle bundle = newnew Bundle();bundle.putString(path,MUSIC_PATH + mMusicList.get(position).toString() );intint index = position;bundle.putString(musicTitle,mMusicList.get(position) )

47、;intent.putExtra(bundle,bundle);startActivity(intent); );5.25.2 正在播放界面正在播放界面關(guān)鍵代碼:正在播放-27-mStartImageButton.setOnClickListener(newnew ImageButton.OnClickListener() Overridepublicpublic voidvoid onClick(View arg0) / TODOTODO Auto-generated method stub/String path = MUSIC_PATH + mMusicList.get(currentL

48、istItme);ifif(!isRunning)playMusic(path);/startSeekBarUpdate();elseelseifif(!isPause)pause(path);elseelsecontinuePlay(path););下一首的監(jiān)聽和實(shí)現(xiàn)mNextImageButton.setOnClickListener(newnew ImageButton.OnClickListener() Overridepublicpublic voidvoid onClick(View v) / TODOTODO Auto-generated method stubnextMusic

49、(););privateprivate voidvoid nextMusic() ifif (+Mp3PlayerActivity.currentListItme = Mp3PlayerActivity.mMusicList.size() Mp3PlayerActivity.currentListItme = 0; playMusic(MUSIC_PATH + Mp3PlayerActivity.mMusicList.get(Mp3PlayerActivity.currentListItme);isPause = falsefalse;mStartImageButton.setImageDra

50、wable(getResources().getDrawable(R.drawable.bt_widget_pause_nor);上一首的監(jiān)聽和實(shí)現(xiàn)mPreImageButton.setOnClickListener(newnew ImageButton.OnClickListener() -28-Overridepublicpublic voidvoid onClick(View v) / TODOTODO Auto-generated method stubFrontMusic(););privateprivate voidvoid FrontMusic() ifif (-Mp3Playe

51、rActivity.currentListItme = 0) Mp3PlayerActivity.currentListItme = Mp3PlayerActivity.mMusicList.size()-1;playMusic(MUSIC_PATH + Mp3PlayerActivity.mMusicList.get(Mp3PlayerActivity.currentListItme);isPause = falsefalse;mStartImageButton.setImageDrawable(getResources().getDrawable(R.drawable.bt_widget_

52、pause_nor);音樂的暫停privateprivate voidvoid pause(String path) ifif (Mp3PlayerActivity.mMediaPlayer != nullnull &Mp3PlayerActivity. mMediaPlayer.isPlaying() Mp3PlayerActivity.mMediaPlayer.pause(); isPause = truetrue; mStartImageButton.setImageDrawable(getResources().getDrawable(R.drawable.bt_widget_

53、play_nor); 音樂繼續(xù)播放privateprivate voidvoid continuePlay(String path) ifif(isPause) Mp3PlayerActivity.mMediaPlayer.start(); isPause = falsefalse; mStartImageButton.setImageDrawable(getResources().getDrawable(R.drawable.bt_widget_pause_nor); 5.35.3 退出播放器界面退出播放器界面-29-退出播放器提示代碼:publicpublic voidvoid showE

54、xitDialog() AlertDialog.Builder builder = newnew AlertDialog.Builder(thisthis);builder.setTitle(提示);builder.setMessage(確定要退出嗎?);builder.setNegativeButton(否, newnew DialogInterface.OnClickListener() Overridepublicpublic voidvoid onClick(DialogInterface dialog, intint which) );builder.setPositiveButto

55、n(是, newnew DialogInterface.OnClickListener() Overridepublicpublic voidvoid onClick(DialogInterface dialog, intint which) Mp3PlayerActivity.thisthis.finish();System.exit(0););builder.setCancelable(falsefalse);builder.create().show();5.45.4 AndroidManifest.xmlAndroidManifest.xml 文件介紹文件介紹-30-Android 系

56、統(tǒng)的任何一個(gè)程序啟動(dòng)都需要 AndroidManifest.xml 來啟動(dòng)程序,任何一個(gè)新建的工程目錄都會(huì)自動(dòng)生成一個(gè) AndroidManifest.xml 文件,此配置文件是整個(gè)程序能夠正常運(yùn)行的核心,它包含了 Android SDK 的版本,程序運(yùn)行的默認(rèn)Activity,當(dāng)程序中的任何一個(gè)組件觸發(fā)事件后,系統(tǒng)都會(huì)自動(dòng)的去AndroidManifest.xml 中尋找標(biāo)識(shí)來作出相應(yīng)的操作。在 AndroidManifest.xml 中有一個(gè)根結(jié)點(diǎn),它是我們需要定義的 ADT版本,當(dāng)程序的任何一個(gè)組件要用到時(shí),都必須在 AndroidManifest.xml 文件中聲明。四大組件要使用前都

57、需要聲明。其中聲明 provider 是還需要聲明其授權(quán) authorities。每個(gè)組件里面好有很多的屬性,會(huì)根據(jù)程序的具體需要定義不同的屬性。過濾器 inent-filter 有兩種啟動(dòng)方式來啟動(dòng)界面。顯示方式:顯示方式是在代碼中直接啟動(dòng)組件,啟動(dòng)時(shí)會(huì)聲明 Inent,在它的構(gòu)造方法 Intent 中直接指定一個(gè)組件的名字,然后調(diào)用方法 startIntent(intent)以啟動(dòng)指定的組件。隱式方式:隱式方式是通過過濾器來過濾完成的,啟動(dòng)的組件必須滿足 action和 category 的條件才能夠啟動(dòng)該組件。這些屬性是在 AndroidManifest.xml 文件中聲明的。兩種啟動(dòng)方

58、式都可以通過程序 setAction 和 startActivity 或配置文件兩種方式來實(shí)現(xiàn)組件的跳轉(zhuǎn)。第第 6 6 章章 AndroidAndroid 模擬器讀取模擬器讀取 SDSD 卡中音頻文件的實(shí)現(xiàn)卡中音頻文件的實(shí)現(xiàn)6.16.1 怎樣在模擬器中添加音頻文件并讀取怎樣在模擬器中添加音頻文件并讀取在 Android 模擬器中,初始時(shí)沒有 sdcard 的,為了存放音樂文件,需要自己創(chuàng)建 sdcard,所以下面的介紹就是怎樣在模擬器中創(chuàng)建音頻文件及讀取。6.26.2 SDSD 卡的創(chuàng)建卡的創(chuàng)建通過 Android 的 Tools 來創(chuàng)建 sd 卡并導(dǎo)入進(jìn)來:1、 打開 dos,windows

59、+R 鍵打開。轉(zhuǎn)換到你的 sdk 安裝包的 tools 目錄下,如我的目錄如下:E:android-sdk-windowstools。2、 創(chuàng)建 sd 卡。在命令行中輸入:mksdcard -31-1024M,E:androidsdcardsdcard.img。3、 在 eclipse 里面創(chuàng)建模擬器,并以該 SD 卡來創(chuàng)建。4、 創(chuàng)建完成之后,啟動(dòng)該模擬器??梢栽?Android SDK and AVD Manager 里面指定模擬器并啟動(dòng)。5、 同樣打開 Eclipse 的 DDMSFile-Explorer 查看 sd 卡是否安裝完成。6.36.3 向向 SDSD 卡里面上傳文件卡里面上

60、傳文件右邊兩個(gè)小手機(jī)按鈕就是傳輸文件的按鈕了,用它來實(shí)現(xiàn)文件的傳入和傳出了,向左的表示把手機(jī)里的文件導(dǎo)出,向右的表示把文件導(dǎo)入手機(jī)里面去。但是在這里很容易出現(xiàn)一些異常情況,在這里異常情況不一一講述了,把手機(jī)里面的文件導(dǎo)出,進(jìn)入模擬器,其導(dǎo)出的音頻文件的名稱最好為英文,如果是中文名稱則很容易出現(xiàn)異常。導(dǎo)出后,啟動(dòng)模擬器,在播放器中就可以將歌曲自動(dòng)的導(dǎo)入播放列表中。6.46.4 手機(jī)手機(jī) SDSD 卡音頻文件讀取的代碼卡音頻文件讀取的代碼第第 7 7 章章 軟件測試軟件測試7.17.1 軟件測試環(huán)境軟件測試環(huán)境 由于本次的軟件是個(gè)人的小項(xiàng)目,其測試的環(huán)境只能用自己的手機(jī)進(jìn)行測試,打開 eclipse 連接

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論