Android課程設(shè)計(jì)大作業(yè)-音樂解壓器源碼+課程設(shè)計(jì)報(bào)告
課 程 設(shè) 計(jì) 論 文
題 目:?音樂解壓器
(英文): Music Decompressor
院 別:
專 業(yè):
姓 名:
學(xué) 號(hào):
指導(dǎo)教師:
日 期:
目 錄
第一章?緒論11
1.1選題背景11
1.2開發(fā)技術(shù)22
1.3論文結(jié)構(gòu)33
第二章?需求及可行性分析44
2.1需求分析44
2.2可行性分析55
第三章?系統(tǒng)分析77
第四章?系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)99
3.1播放音樂設(shè)置99
3.2記錄心情信息設(shè)置1212
3.3通知欄設(shè)置1414
第五章?總結(jié)與展望18
5.1總結(jié)1818
5.2展望1919
第一章 緒論
1.1選題背景
隨著手機(jī)市場(chǎng)不斷的發(fā)展,手機(jī)功能不斷的增多,手機(jī)已經(jīng)越來越成為人們不可或缺的工具。根據(jù)2008年國際電信聯(lián)盟(International TelecommunicationUnion,ITU)組織的統(tǒng)計(jì)數(shù)字,全球約有15億的計(jì)算機(jī)使用者,但是手機(jī)使用者卻高達(dá)35億,在2010年,手機(jī)的用戶更是超過了50億。不難看出,手機(jī)用戶的不斷增加將對(duì)手機(jī)制造商和手機(jī)的功能提出更大的挑戰(zhàn)。
音樂作為一種普遍、大眾化的娛樂方式,滲透在人們生活的各個(gè)角落中。以前,聽音樂的方式主要依靠廣播、電視、收音機(jī)、CD等。如今人們的生活越來越忙碌,生活節(jié)奏日益加快,生活的壓力也越來越多,能夠用于娛樂休閑的時(shí)間越來越少,利用好碎片化的時(shí)間越來越重要。由于智能手機(jī)的盛行,很多智能手機(jī)都能提供豐富的娛樂活動(dòng),人們可以充分利用碎片時(shí)間進(jìn)行自娛自樂。所以,如果能在手機(jī)上聽歌,并且能夠時(shí)刻記錄自己的心情,寫下煩心事宣泄自己的壓力,必定是一個(gè)很好的娛樂方式和舒緩壓力的方式。由于手機(jī)是人們隨身攜帶的,人們可以在工作之余,學(xué)習(xí)之余,甚至上下班的路上利用碎片時(shí)間聽歌,放松身心。
本項(xiàng)目是一款基于Android手機(jī)平臺(tái)的音樂解憂器,使Android手機(jī)擁有個(gè)性的多媒體播放器,讓手機(jī)主人隨時(shí)隨地處于音樂的旋律之中,并且能夠?yàn)橛脩籼峁┯涗浶那榈墓δ?,能夠隨時(shí)記錄下自己的心情,緩解自己的壓力和發(fā)泄情緒。本設(shè)計(jì)實(shí)現(xiàn)的重要功能是播放Mp3格式的音樂文件,而且能夠控制音樂的播放,暫停,查看歌手信息,記錄自己的心情,聯(lián)系客服反饋問題等功能。本項(xiàng)目還能夠使人們生活更加多樣化,也使設(shè)計(jì)者更加熟悉Android的技術(shù)和其它在市場(chǎng)上的特點(diǎn)。
1.2開發(fā)技術(shù)
Android平臺(tái)主要包括Applications、Application Framework、Libraries 、Android Runtime和 Linux Kernel幾部分。Android 四大基本組件分別是Activity,Service服務(wù),Content Provider內(nèi)容提供者,Broadcast Receiver廣播接收器。本項(xiàng)目使用了Activity的四大組件,
一個(gè)Activity 通常展現(xiàn)為一個(gè)可視化的用戶界面,是Android程序與用戶交互的窗口,也是Android組件中最基本也是最復(fù)雜的一個(gè)組件。一個(gè)Activity占據(jù)當(dāng)前的窗口,響應(yīng)所有窗口事件,具備有控件,菜單等界面元素。
Service是運(yùn)行在后臺(tái)的一個(gè)組件,從某從意義上說,服務(wù)就像一個(gè)沒有界面的Activity。Android 中的服務(wù)其實(shí)與Windows 中得服務(wù)類似,它執(zhí)行長(zhǎng)時(shí)間運(yùn)行的操作,或運(yùn)程進(jìn)程執(zhí)行工作。服務(wù)不提供用戶界面,例如在后臺(tái)播放音樂,在你播放音樂的同時(shí)還可以干其他事情,而不會(huì)阻塞用于與其他活動(dòng)的交互。另一個(gè)組件,比如Activity 可以啟動(dòng)一個(gè)服務(wù),并運(yùn)行或者綁定到它。
Broadcast Receiver是對(duì)發(fā)送出來的廣播進(jìn)行過濾接收并響應(yīng)的一類組件。Broadcast Receiver 不包含任何用戶界面。通常程序會(huì)在狀態(tài)欄上放置一個(gè)持久的圖標(biāo)﹐用戶可以打開這個(gè)圖標(biāo)并讀取通知信息。在Android中Broadcast Receiver組件就提供了一種把Intent作為一個(gè)消息廣播出去,由所有對(duì)其感興趣的程序?qū)ζ渥鞒龇磻?yīng)的機(jī)制。
Content Provider主要的功能就是存儲(chǔ)并檢索數(shù)據(jù)以及向其他應(yīng)用程序提供訪問數(shù)據(jù)的接口為了使其他程序能夠操作數(shù)據(jù),在Android 中,可以通過做成 Content Provider提供數(shù)據(jù)操作的接口。Android提供了一些主要數(shù)據(jù)類型的 Content Provider,比如音頻、視頻、圖片和私人通訊錄等。
1.3論文結(jié)構(gòu)
本論文各章內(nèi)容安排如下:
第一章:選題,介紹了國內(nèi)的Android手機(jī)音樂播放器發(fā)展現(xiàn)狀,并介紹當(dāng)代人對(duì)于此應(yīng)用的對(duì)待現(xiàn)狀,以及對(duì)開發(fā)技術(shù)的介紹,其中包含Android的四大組件。
第二章:音樂解壓器的需求分析和可行性分析。主要是對(duì)音樂解壓器的功能進(jìn)行需求分析,以及在各方面對(duì)該應(yīng)用進(jìn)行可行性分析。
第三章:系統(tǒng)分析,主要是通過系統(tǒng)功能結(jié)構(gòu)圖對(duì)該應(yīng)用進(jìn)行系統(tǒng)分析。
第四章:系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)。概括分析說明了音樂播放器的主要功能,在了解需求的基礎(chǔ)上,設(shè)計(jì)了系統(tǒng)的總體功能模塊。從概念結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)及數(shù)據(jù)庫設(shè)計(jì)三方面對(duì)系統(tǒng)的設(shè)計(jì)進(jìn)行介紹
第五章:總結(jié)與展望,總結(jié)整個(gè)設(shè)計(jì),并說明不足及進(jìn)一步改善的方向
第二章 需求及可行性分析
2.1需求分析
作為Android平臺(tái)上開發(fā)的應(yīng)用軟件,它必須具備與用戶交互的界面,界面簡(jiǎn)潔美觀易于操作。因此,對(duì)本項(xiàng)目的功能規(guī)定可從界面來劃分。音樂播放器的用戶操作界面可分為以下兩部分:登錄列表主界面、音樂列表主界面、音樂播放主界面、記錄心情列表主界面、記錄內(nèi)容主界面、顯示心情內(nèi)容主界面。本章通過用例圖和功能講解進(jìn)行功能需求分析。
用例圖如下:
注冊(cè):用戶注冊(cè)用戶名和密碼
登錄:用戶用注冊(cè)的用戶名和密碼進(jìn)行登錄
播放:點(diǎn)擊列表中的歌曲進(jìn)行音樂播放
暫停:暫停正在播放的音樂
上一首:播放列表中上一首歌曲
下一首:播放列表中下一首歌曲
拖動(dòng)進(jìn)度條:拖動(dòng)音樂的播放進(jìn)度
記錄心情:添加心情信息,顯示具體信息和添加時(shí)間,刪除心情信息
聯(lián)系客服:跳轉(zhuǎn)至手機(jī)撥號(hào)界面并顯示客服電話
歌手列表:選擇歌手可顯示相應(yīng)歌手詳細(xì)信息
退出:可選擇后臺(tái)運(yùn)行和退出應(yīng)用
2.2可行性分析
技術(shù)可行性:1. Java提供了相對(duì)穩(wěn)定的性能,使用Java進(jìn)行開發(fā)更加高效,所設(shè)計(jì)出的系統(tǒng)運(yùn)行流暢,管理方面,而且,關(guān)于這方面技術(shù)上的書籍、資料也比較齊全。2.基于安卓模式的管理系統(tǒng)已發(fā)展日趨成熟。系統(tǒng)的開發(fā)技術(shù)具有可行性,且開發(fā)人員掌握了一定的開發(fā)技術(shù),所以系統(tǒng)的開發(fā)具有可行性。
操作可行性:基于安卓的音樂播放器采用的是移動(dòng)終端技術(shù),只要用戶在安卓智能手機(jī)上安裝改款軟件,就能操作該軟件,使用起來不需要受到種種制約,相對(duì)簡(jiǎn)便。同時(shí),本系統(tǒng)是非常容易操作的,能與用戶進(jìn)行良好的交互。因此本系統(tǒng)在操作性上是可以進(jìn)行開發(fā)的。
經(jīng)濟(jì)可行性:從經(jīng)濟(jì)上來說,只要電腦上有Android開發(fā)設(shè)備就能設(shè)計(jì)開發(fā)出Android手機(jī)音樂解壓器,并且Android應(yīng)用開發(fā)是免費(fèi)的。除此之外,手機(jī)音樂解壓器是一種大眾需求,哪些功能是所有消費(fèi)者都需要的,哪些功能是部分人需要的,哪些特性是很少使用的這些信息是很容易知道的,在獲取需求這塊并不需要什么成本。所以系統(tǒng)在開發(fā)人力、財(cái)力上要求不高,具有經(jīng)濟(jì)可行性。
社會(huì)可行性:隨著手機(jī)市場(chǎng)的快速發(fā)展,各種音頻和視頻資源在互聯(lián)網(wǎng)上廣泛流傳。這些資源似乎很稀松平常,然而卻在人們生活中越來越不可或缺了,這就給各種手機(jī)播放器的設(shè)計(jì)開拓了市場(chǎng)前景。但是許多音樂播放器致力于華麗的外在條件和強(qiáng)大的功能,給用戶的手機(jī)帶來了很多不便之處。有些功能對(duì)普通用戶來說是沒有用的。針對(duì)這些問題,開發(fā)一個(gè)擁有簡(jiǎn)化功能的特點(diǎn),有普通播放功能,滿足大部分用戶的需求,需要的內(nèi)存小并具有高質(zhì)量的播放音樂效果的音頻播放器,最大限度地優(yōu)化性能。
系統(tǒng)分析
登錄注冊(cè)功能:用戶注冊(cè)用戶名和密碼,系統(tǒng)將注冊(cè)的信息存入數(shù)據(jù)庫,在用戶登錄是對(duì)用戶輸入的信息進(jìn)行判斷,輸入正確后進(jìn)入音樂界面。
音樂播放功能:用戶通過音樂列表點(diǎn)擊音樂,進(jìn)入音樂播放器,用戶單擊“播放”按鈕,播放器將播放選中的播放列表中的音樂,并同時(shí)顯示當(dāng)前進(jìn)度;當(dāng)歌曲播放音樂時(shí)用戶單擊“暫?!卑粹o,播放器將進(jìn)入暫停狀態(tài);用戶可以在播放界面點(diǎn)擊“上一首”或者“下一首”按鈕,播放器將播放上一首或是一首歌曲。
記錄心情功能:用戶選擇添加心情,將自己想要宣泄的情緒寫下,系統(tǒng)將所寫內(nèi)容存入數(shù)據(jù)庫。記錄心情列表顯示所添加的信息列表,點(diǎn)擊可顯示所記錄的具體信息和時(shí)間。
聯(lián)系客服功能:用戶點(diǎn)擊聯(lián)系客服功能可跳轉(zhuǎn)至撥打電話界面且已顯示客服電話,即可選擇是否撥打。
系統(tǒng)功能結(jié)構(gòu)圖如下:

第四章 系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)
本應(yīng)用實(shí)現(xiàn)了一個(gè)個(gè)性化的音樂播放器。在Android中,Activity主要負(fù)責(zé)前臺(tái)頁面的展示,Service主要負(fù)責(zé)需要長(zhǎng)期運(yùn)行的任務(wù)。眾所周知,音樂播放需要支持應(yīng)用退出后繼續(xù)播放,因此不能在Activity中直接播放音樂,因?yàn)檫@樣的話界面退出后音樂就停止播放了。
4.1播放音樂設(shè)置
使用Service播放音樂
Android SDK提供了Service。Service有兩種類型:
本地服務(wù)(Local Service):用于應(yīng)用程序內(nèi)部
遠(yuǎn)程服務(wù)(Remote Sercie):用于Android系統(tǒng)內(nèi)部的應(yīng)用程序之間前者用于實(shí)現(xiàn)應(yīng)用程序自己的一些耗時(shí)任務(wù),比如查詢升級(jí)信息,并不占用應(yīng)用程序比如Activity所屬線程,而是單開線程后臺(tái)執(zhí)行,這樣用戶體驗(yàn)比較好
后者可被其他應(yīng)用程序復(fù)用,比如天氣預(yù)報(bào)服務(wù),其他應(yīng)用程序不需要再寫這樣的服務(wù),調(diào)用已有的即可。這里不需要其他程序共享Service,因此采用本地服務(wù)。前臺(tái)界面(Activity)與后臺(tái)服務(wù)(Service)通信
Android中的四大組件是相互獨(dú)立的,因此必須設(shè)計(jì)一個(gè)框架來實(shí)現(xiàn)前臺(tái)界面(Activity)和后臺(tái)服務(wù)(Service)的相互。Activity 和 Service的通信有以下幾種方式:
a)回調(diào)接口的方式。當(dāng)Activity通過調(diào)用bindService(Intentservice,
ServiceConnection conn,int flags),可以得到一個(gè)Service的一個(gè)對(duì)象實(shí)例,然后就可以訪問Service 中的方法,完成Activity–>Service的通信;通過為Service添加監(jiān)聽器的方法,Service作為被觀察者,Activity作為觀察者當(dāng)有新事件時(shí),Service通知Activity,完成Service–→Activity的通信。這種方式適合Activity與 Service交互比較頻繁的情況。
b)通過廣播接收者。在Service中執(zhí)行完耗時(shí)操作后,將結(jié)果以廣播的形式發(fā)送,在 Activity中注冊(cè)廣播,接收到結(jié)果后更新U。因?yàn)楹臅r(shí)的操作結(jié)果不需要以Handler的方式發(fā)送到主線程,可以直接在子線程中發(fā)送廣播,接收者始終運(yùn)行在主線程中。完成Service-→>Activity的通信。同樣,Activity將事件以廣播的方式發(fā)送給Service,完成Activity–Service的通信。這種方式適合Activity與 Service交互不太頻繁的情況。
c)通過startService方式。Activity通過startService將事件發(fā)送到Service的
onStartCommand()方法,然后Service執(zhí)行相應(yīng)的操作,完成
Activity–Service的通信;Service通過廣播將事件發(fā)送到
Activity,Activity中需注冊(cè)廣播接收器,完成Service-→Activity 的通信。這種方式適合Activity與 Service交互不太頻繁的情況。音樂Activity與后臺(tái)服務(wù)(Service)通信
當(dāng)Activity通過調(diào)用bindService(Intent service, ServiceConnection conn,int flags),我們可以得到一個(gè)Service的一個(gè)對(duì)象實(shí)例
詳細(xì)代碼實(shí)現(xiàn):
Activity綁定Service,獲得Service的實(shí)例,并綁定監(jiān)聽器


2、Activity使用Service實(shí)例,實(shí)現(xiàn)音樂播放、暫停等功能
4.2記錄心情信息設(shè)置
使用數(shù)據(jù)庫存儲(chǔ)記錄心情信息
數(shù)據(jù)庫是程序開發(fā)中重要的知識(shí)點(diǎn),Android采用的數(shù)據(jù)庫是 SQLite 這個(gè)輕量級(jí)的嵌入式開源數(shù)據(jù)庫, 數(shù)據(jù)庫基本的操作就是先創(chuàng)建表,再對(duì)表中的數(shù)據(jù)進(jìn)行”增,刪,改,查”
因?yàn)楸緫?yīng)用中運(yùn)用了兩個(gè)數(shù)據(jù)庫,論文僅對(duì)挑出記錄心情信息相關(guān)數(shù)據(jù)庫設(shè)計(jì)做出分析
詳細(xì)代碼實(shí)現(xiàn):
創(chuàng)建數(shù)據(jù)庫和表

插入數(shù)據(jù)

查找并刪除數(shù)據(jù)
4.3通知欄設(shè)置
(1)Notification,是一種具有全局效果的通知,可以在系統(tǒng)的通知欄中顯示。當(dāng) APP 向系統(tǒng)發(fā)出通知時(shí),它將先以圖標(biāo)的形式顯示在通知欄中。用戶可以下拉通知欄查看通知的詳細(xì)信息。通知欄和抽屜式通知欄均是由系統(tǒng)控制,用戶可以隨時(shí)查看。
詳細(xì)代碼實(shí)現(xiàn):
獲取 NotificationManager 實(shí)例、實(shí)例化 NotificationCompat.Builder 并設(shè)置相關(guān)屬性、通過 builder.build() 方法生成 Notification 對(duì)象,并發(fā)送通知

1.登錄界面:
該界面是用戶進(jìn)入項(xiàng)目的主界面,即用戶選擇打開該應(yīng)用,展示登錄界面,選擇注冊(cè)后會(huì)展示組成界面,注冊(cè)成功會(huì)返回登錄界面進(jìn)行登錄。
2.音樂界面:
該界面是用戶進(jìn)入登錄后進(jìn)入的主界面,該界面中采用了fragment用于實(shí)現(xiàn)頁面的切換效果,做到一個(gè)App可以同時(shí)適應(yīng)手機(jī)和平板。在fragment A中顯示的是音樂列表,點(diǎn)擊音樂列表中的歌曲名可以跳轉(zhuǎn)到播放界面,在播放界面可以控制歌曲的播放、暫停、上一首、下一首、拖動(dòng)歌曲進(jìn)度等。在fragment B中顯示的是歌手列表,點(diǎn)擊歌手列表可以跳轉(zhuǎn)到歌手信息界面,在歌手信息界面可以查看到歌手的詳細(xì)信息。歌曲能夠能夠進(jìn)行后臺(tái)播放,并且在手機(jī)通知欄上顯示應(yīng)用框,并能通過應(yīng)用框重新進(jìn)入音樂列表。

記錄心情界面:
該界面通過用戶點(diǎn)擊menu菜單中的記錄心情,將會(huì)跳轉(zhuǎn)到心情列表中,心情列表中會(huì)顯示之前所添加的所有心情事件,在心情列表中也有著一個(gè)添加的menu菜單,點(diǎn)擊進(jìn)入后會(huì)跳轉(zhuǎn)到填寫心情的界面,在該界面可以記錄下心情和想要發(fā)泄的事件。添加成功后會(huì)在心情列表中顯示添加的信息,點(diǎn)擊信息會(huì)跳轉(zhuǎn)到顯示心情信息界面,顯示之前所添加的內(nèi)容和具體時(shí)間。
第五章?總結(jié)與展望
5.1總結(jié)
本文主要是對(duì)Android 平臺(tái)創(chuàng)新的音樂解壓器的分析設(shè)計(jì),應(yīng)用中不僅只是對(duì)音樂的播放,還增加可以宣泄記錄心情的功能,主要實(shí)現(xiàn)了音樂列表、音樂的播放、暫停、上一曲、下一曲、記錄心情、刪除心情信息、打電話等功能。
在程序設(shè)計(jì)過程中,有遇到非常非常多的問題,也曾卡住了好幾次,比如怎樣實(shí)現(xiàn)對(duì)一個(gè)按鈕進(jìn)行播放與暫停,怎么實(shí)現(xiàn)上一首和下一首功能,怎么實(shí)現(xiàn)后臺(tái)服務(wù)等等。也經(jīng)過查找資料得到startService和bindService的區(qū)別,如果想啟動(dòng)一個(gè)后臺(tái)服務(wù)長(zhǎng)期進(jìn)行任務(wù),且這個(gè)過程中需要與調(diào)用者進(jìn)行交互,那么可以兩者同時(shí)使用。本應(yīng)用就將兩者都進(jìn)行了使用。
在開發(fā)過程中我學(xué)到了一些經(jīng)驗(yàn):系統(tǒng)分析的好壞將決定著的系統(tǒng)開發(fā)成功與否,一份好分析設(shè)計(jì)將是成功開發(fā)主要因紊,我們?cè)谥珠_發(fā)之前不要急于編程﹐先應(yīng)有較長(zhǎng)的時(shí)間去把分析做好﹐寫出相關(guān)的開發(fā)文檔等,然后再開始編寫程序代碼﹐這樣做到每寫一步代碼心底有數(shù),有條不絮,還有后續(xù)的系統(tǒng)測(cè)試﹐要能靈活利用各種軟件測(cè)試模型﹐最大的優(yōu)化軟件。
本次程序設(shè)計(jì),有遇到很多問題,但通過查找相關(guān)資料以及自己的努力,順利完成。在程序設(shè)計(jì)過程中,對(duì)Android系統(tǒng)的相關(guān)知識(shí)有了一個(gè)比較深入的了解,對(duì)程序的整個(gè)開發(fā)流程和模式的理解也更加透徹,這對(duì)我以后從事Android的軟件開發(fā)有很大的幫助。
5.2展望
本設(shè)計(jì)的音樂播放器軟件能夠穩(wěn)定運(yùn)行,體積小且反映靈敏,但還是有幾點(diǎn)不足的地方,例如音樂無法在線聯(lián)網(wǎng)導(dǎo)入、代碼編寫冗余重復(fù)率高、圖片素材布局不太美觀,功能不夠豐富等等。在以后我會(huì)改進(jìn)軟件的不足,以更優(yōu)的編碼水平,更高超的布局思維模型,并且學(xué)習(xí)更多新的知識(shí)重構(gòu)這款軟件。軟件的不足需要我們不停地去探索新的需求,發(fā)展新的技術(shù),使得系統(tǒng)對(duì)接更加完善,集成度更加深入。沒有最好,只有更好,隨著技術(shù)的發(fā)展,還會(huì)有嶄新的天地讓我們?nèi)ラ_拓。
最后,我要誠摯的感謝我的老師,在學(xué)習(xí)Android期間 ,都得到了老師的悉心指導(dǎo),老師對(duì)應(yīng)Android的知識(shí)都很細(xì)心的講解和解答。老師的嚴(yán)謹(jǐn)治學(xué)的態(tài)度與求實(shí)的工作作風(fēng)及豐富的學(xué)識(shí)留給我深刻的印象,使我受益匪淺。
源碼鏈接:https://yunjunet.cn/876984.html