基于安卓系統(tǒng)的一款音樂APP設計與實現_第1頁
基于安卓系統(tǒng)的一款音樂APP設計與實現_第2頁
基于安卓系統(tǒng)的一款音樂APP設計與實現_第3頁
基于安卓系統(tǒng)的一款音樂APP設計與實現_第4頁
基于安卓系統(tǒng)的一款音樂APP設計與實現_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要近年來,在移動設備市場中,手機逐漸成為了用戶的第一選擇。隨著移動應用技術和互聯網技術的深入發(fā)展,人們對手機應用的功能和性能也就有了更加高的要求,一些音樂App已經不能滿足人們對個性化、簡潔化的需求。現有的音樂App界面繁雜、功能單一,只具有聽歌曲等純粹的視聽功能,缺乏更加有樂趣的其它功能。因此,設計一個界面簡單快捷,功能豐富的可以給用戶帶來更多選擇的音樂App顯得很有市場需求。關鍵字:智能手機Android平臺音樂AppAbstractInrecentyears,mobilephoneshavegraduallybecomethefirstchoiceofusersinthemobiledevicemarket.Withthein-depthdevelopmentofmobileapplicationtechnologyandInternettechnology,peoplehavehigherrequirementsforthefunctionandperformanceofmobileapplications.Somemusicappshavebeenunabletomeetpeople'spersonalizedandconciseneeds.Theexistingmusicapphascomplexinterfaceandsinglefunction.Itonlyhaspureaudio-visualfunctionssuchaslisteningtosongs,andlacksotherfunctionsthataremorefun.Therefore,thedesignofasimpleandfastinterface,richfunctionscanbringusersmorechoicesofmusicappisverymarketdemand.Keywords:IntelligentmobilephoneAndroidplatformMusicApp目錄TOC\o"1-3"\h\u第1章緒論 緒論1.1課題背景與意義進入21世紀以來,中國互聯網技術的發(fā)展在生活的各個方面都在加速,到處都可以看到互聯網的影子。近年來,手機越來越多的進入了人們的生活,因為手機功能多且體積小,使用很便捷,所以使用手機的民眾數量快速增加。另外,Android是開源的,而且Android平臺上的大多數應用程序都是免費的,所以很多手機制造商都使用Android系統(tǒng),這在手機市場上有很大的優(yōu)勢。根據現有的調查數據,iOS目前僅占13%的市場占有率,而Android的市場占有率為87%。另外,Android手機比iphone價格更低,性價比更高,所以Android更有吸引力。隨著世界的發(fā)展進步和人們各種各樣的壓力的增加,人們的物質世界逐漸豐富,但精神世界卻逐漸貧乏。因此,人們通過手機上的音視頻應用來豐富自己的精神生活。研究表明,聽音樂可以使人放松,緩解壓力。此外,如今人們的生活壓力很大,尤其是那些生活在一線城市的人。因此,音樂App在智能手機上的出現是不可避免的。android市場充斥著各種各樣的音樂App。在現有的音樂App中,有些功能過于簡單,不能滿足用戶的需要;有些功能強大,但界面繁雜;在一些網絡欠好的情況下用戶體驗差。因此,隨著用戶需求的不斷增加,目前的音樂App已經無法滿足用戶多樣化的需求?;诎沧科脚_的應用非常靈活,減少了開發(fā)量,收縮了開發(fā)期。對于用戶來說,可以最大程度地定義自己的手機。此外,安卓手機本身具有資源有限的特點,基于上述問題,結合用戶需求,設計并實現了一款功能全面、界面簡潔美觀的音樂App就顯得很有意義。1.2研究現狀自2009年以來,手機已經逐漸走入人們的生活,隨著手機的功能越來越強大,它們已經逐漸取代了以前單獨的歌曲播放器,使用手機聽音樂已成為用戶聽音樂的重要手段之一。許多企業(yè)和個人已經看到了音樂媒體潛在的發(fā)展趨勢,從傳統(tǒng)的個人電腦到智能手機和平板電腦等便攜式設備上,許多功能強大的音樂App都得到了開發(fā)和研究。目前,國內市場較盛行的音樂App包括酷狗音樂、QQ音樂、網易云音樂和百度音樂等,其中酷狗音樂和QQ音樂在國內市場比較盛行。除了上述知名音樂App外,還有一些音樂App支持更多功能,但市場占有率相對較小,例如,蝦米音樂、咪咕音樂等。音樂App已經成為許多公司的競爭項目,由此可見,音樂App市場存在一定的挑戰(zhàn)和競爭,也將帶來業(yè)務發(fā)展的機遇。隨著移動互聯網的快速發(fā)展和音樂媒體資源的日益豐富,一些音樂App已經無法滿足人們多樣化的音樂需求,而Android平臺有著良好的發(fā)展基礎,這將使手機音樂App不斷發(fā)展。因此,手機音樂App的開發(fā)具有廣闊的市場前景。1.3論文研究的主要內容本課題針對國內已有的基于安卓系統(tǒng)的音樂App進行了研究和分析,本文所設計的音樂播放器在內容方面更加豐富,通過對用戶的需求進行了解,對其他公司開發(fā)的音樂App進行了功能上的分析,大致了解開發(fā)所需要用到的技術,以及結合一些當下流行的開發(fā)模式進行初步的模式選擇,從而實現大概的模塊上的分析和模塊上的設計,劃分我們所需要的功能模塊,從而完成音樂App系統(tǒng)的總體設計和各模塊的詳細設計。本論文研究的主要內容:(1)分析音樂App的現狀以及研究的意義,確定了研究的目的。(2)研究Java模式開發(fā)、Litepal數據庫等相關技術。(3)詳細分析了音樂App的功能,并進行了具體的需求分析。(4)研究了音樂App的總體設計方案、相關架構和基于API結構的設計方法。(5)對完成的音樂App進行測試。在測試中發(fā)現其中的問題,不斷的解決問題,完善App。 相關開發(fā)環(huán)境和技術的簡介2.1開發(fā)環(huán)境的介紹本音樂App的開發(fā)環(huán)境包括以下的內容: 使用的開發(fā)工具有androidstudio,AndroidSDK,數據庫的操作工具是Navicat 使用到的相關開發(fā)技術是java與Kotlin; 電腦系統(tǒng)配置為Windows10操作系統(tǒng),內存使用8G的內存,硬盤400G,CPU2.6GHz。2.2相關技術的介紹在本App的設計和實現過程中,需要采用多種技術與服務的配合來完成,現在我將會對所采用的的技術與服務做一個詳細的介紹。2.2.1JavaJava是一種比較廣泛使用計算機的編程語言,具有面向對象、跨平臺和通用編程等諸多功能。它廣泛用于企業(yè)Web應用程序開發(fā)和移動應用程序開發(fā)。本次音樂App的設計與實現主要是使用Java與Kotlin兩種語言混合開發(fā)。在90年代初,將網絡計算的功能擴展到日常生活中是一個激進的愿景。1991年,Sun的一小群名為“GreenTeam”的工程師認為,相信下一個高潮是數字消費設備和計算機的結合。在JamesGosling的帶領下,該團隊晝夜不停地工作,最終創(chuàng)建了徹底改變我們世界的編程語言——Java。Java編程語言的樣式非常類似于C++語言。繼承了C++語言的面向對象技術的核心,放棄了容易出錯的指針,并用引用替換了它們,刪除了C++中的運算符重載和多重繼承功能,并將其替換為接口;JavaSE1.5引入了通用編程,類型安全的枚舉,不確定長度的參數以及自動打包/拆箱功能。太陽計算機系統(tǒng)有限公司對Java語言的解釋是:“Java編程語言是一種簡單的、面向對象的、分布式的、解釋性的、健壯的、安全的、與系統(tǒng)無關的、可移植的、高性能的、多線程的和動態(tài)的語言?!盝DK11發(fā)布于2018年9月25日,其是一個長期支持版本,其帶來了許多新的特性,如LocalVar、HttpClient、ListAPI等。2.2.2KotlinKotlin語言是由捷克著名的軟件開發(fā)公司JetBrains公司開發(fā)的,是一種用于現代多平臺應用的計算機靜態(tài)編程語言。Kotlin可以被編譯成Java字節(jié)碼或JavaScript,這便于在沒有JVM的設備上運行。Kotlin有許多優(yōu)點,是一種兼容Java的語言,它比Java更安全,可以靜態(tài)檢測常見的陷阱,例如引用空指針,此外,它比Java簡單,受到大多數程序開發(fā)人員的喜愛。自2017年以來,Kotlin已經正式成為官方的安卓支持開發(fā)語言。2.2.3ServiceService(服務)是一個應用程序組件,它可以在后端執(zhí)行長期運行的操作,而無需用戶界面。服務可以由其他應用程序組件(如Activity)啟動,一旦啟動,服務將一直在后臺運行,即使啟動服務的組件(Activity)已被銷毀也不會有影響。此外,組件可以綁定到要與之交互的服務,甚至可以執(zhí)行進程間通信(IPC)。例如,服務可以處理網絡事務、播放音樂、執(zhí)行文件I/O或與內容提供程序交互,所有這些都可以在后臺完成。2.2.4MVC開發(fā)模式隨著當前的系統(tǒng)越來越大,每個方面的功能也越來越復雜。為了使系統(tǒng)的開發(fā)更加簡單,有必要采用MVC開發(fā)模式來規(guī)劃系統(tǒng)的各個模塊。MVC是一種使用MVC(ModelViewController模型-視圖-控制器)設計創(chuàng)建Web應用程序開發(fā)的設計模式:M:Model模型層,系統(tǒng)開發(fā)基本的業(yè)務數據以及業(yè)務邏輯都屬于模型層。V:View視圖層,為用戶展示數據用的。C:Controller控制器,通常會使用SERVLET來完成控制層的工作。MVC分層的思想有利于管理復雜的應用程序,使每個層次的代碼分明,并使每個層次分工明確。2.3本章小結本章主要對我們音樂App的設計與開發(fā)中所使用到的技術進行基本的介紹。為我們音樂App進一步的開發(fā)進行技術上的說明,對系統(tǒng)建設過程中所需的理論基礎進行詳細的研究與分析,為我們以后音樂App的實現提供技術上的支持。需求分析3.1編寫目的音樂App需求分析主要是為了提出系統(tǒng)應該具備的功能模塊和我們預期需要完成的目標。需求分析是通過了解用戶的需求來確定系統(tǒng)的功能性需求和非功能性需求。功能性需求是解釋音樂系統(tǒng)的具體功能和功能完成后要達到的目的。非功能性需求是指除了業(yè)務需求之外,管理系統(tǒng)還為用戶提供的一些特性,這些特性當然是功能性需求之外的一些需求,其中包括相關標準、系統(tǒng)要求的質量特性,包括一些性能需求、安全需求、可維護性需求等需求。系統(tǒng)相關需求分析是系統(tǒng)開發(fā)的重要環(huán)節(jié),是系統(tǒng)設計和開發(fā)的基礎,它是以后進行系統(tǒng)測試的重要依據和基礎,因此編寫需求分析的目的是成為以后的維護說明文檔。3.2總體需求在智能手機時代,各種各樣的軟件應用影響著用戶的視覺效果,特別是基于Android系統(tǒng)的移動設備呈指數級增長,因為Android系統(tǒng)的音樂播放器功能單一,界面單調,因此,設計一款基于Android手機且擁有豐富的音樂庫和多種界面的音樂App,無疑可以滿足許多音樂愛好者的需求。3.3功能性需求根據相關調研得出手機音樂軟件的具體需求,具體情況如下:3.3.1功能性需求(1)進入退出功能需求用戶可以順利的進入或退出App。(2)播放暫停功能的需求用戶可以播放任意一首歌曲與暫停任意一首歌曲。(3)下一首上一首的功能需求用戶可以隨時切換上一首或下一首。(4)音質的功能需求用戶可以選擇多種音質。(5)收藏的功能需求用戶可以收藏自己喜歡的歌曲。(6)下載的功能需求用戶可以下載歌曲。(7)播放模式的功能需求用戶可以選擇歌單循環(huán)、單曲循環(huán)和隨機播放。(8)添加到歌單的功能需求用戶可以添加歌曲到自己建立的歌單。(9)歌詞及其搜索設置的功能需求用戶可以搜索歌曲的歌詞。3.4非功能性需求非功能性需求將決定用戶對軟件使用的體驗或者軟件的品質等相關問題。以下列舉幾個較為重要的非功能性需求3.4.1界面美觀需求這個需求主要描述對系統(tǒng)外觀的一種期望,這個需求需要系統(tǒng)達到一個符合規(guī)定的外觀。音樂App應該具有界面簡潔、端莊、簡約、精美等特點,給人一種專業(yè)氣息的體驗。包括按鈕、展示界面等都需要符合音樂軟件的氛圍??梢詤⒖计渌魳稟pp中的設計風格進行設計。3.4.2易操作性需求易操作性會使系統(tǒng)使用起來更加的簡易,對于用戶使用本App時可以實現“一看就會”的使用情況。讓用戶可以很快的操作App,而不是需要花很多的時間和經歷來熟悉App的操作。3.4.3界面交互需求用戶是否喜歡某產品的衡量標準之一就是是否有簡捷且友好的交互界面,同時要保證界面簡潔。3.5可行性分析3.5.1技術可行性分析音樂App是基于安卓系統(tǒng)的一款音樂播放App,主要是用java技術與Kotlin技術進行開發(fā),對技術要求還是比較高,因此需要開發(fā)人員有相對熟練的安卓開發(fā)經驗以及想對熟悉的數據操作經驗,要用到了Service、Fragment等技術,現針對主要技術進行技術可行性分析。本音樂App數據庫采用安卓第三方小型數據庫litepal,litepal是一款開源的數據庫,具有空間輕便、開發(fā)簡易與操作方便的特點,非常適合本次音樂App的開發(fā)。本次音樂App的后臺音樂數據均來自于API(應用程序編程接口),API是一些預定義的功能,或指軟件系統(tǒng)的不同組件的銜接協(xié)議。其目的是為應用程序和開發(fā)人員提供訪問一組基于特定軟件或硬件的例程的能力,而無需了解內部工作機制的細節(jié)或訪問源代碼,API還具有共享、標準、去集中化、開放性和模塊化等優(yōu)點,非常適用于本次音樂App的開發(fā)與建設。3.5.2經濟可行性分析音樂App的開發(fā)是由開發(fā)者自己開發(fā),不需要購買其他軟件或者端口之類的,而且在本次音樂App的開發(fā)之前所做的市場調研及對其他的音樂App比較,發(fā)現音樂App的市場潛力巨大,不存在開發(fā)出來沒有消費者使用的可能,所有開發(fā)成功后的經濟收入都是沒有任何疑問的,本次音樂App開發(fā)是通過開發(fā)者自己的努力和勤奮,大部分的工作都是根據自己的思考,面對短時間內自身沒有辦法去搞定的情況時,向導師請教或者上網瀏覽資料進行獨立研究,所以對于音樂App系統(tǒng)的開發(fā)在經濟上是完全可行的,沒有任何額外的費用支出。使用的Java技術與Kotlin技術是比較成熟且普遍的技術,因此音樂App項目在經濟上是可行的。從人力資源、硬件設備資源、服務器資源等方面考慮,音樂App系統(tǒng)開發(fā)資源可以說是十分充足的。3.5.3進度可行性分析制定明確的進度表,保證音樂App項目的按時完成,對于沒有按時完成的任務需要減少項目的作用域,增加項目按時完成的可行性。要保證音樂App項目能夠如期完成,必須要對項目每個模塊進行時間控制,對沒有在正常時間內完成的任務及時做出調整。在項目開工前,制定詳細的項目計劃,確定開發(fā)的這個項目那些決定性的關鍵,嚴格把關、留意決定性因素上的進展和流程,并實時進行調整和改變。3.6本章小結系統(tǒng)開發(fā)的需求分析與可行性分析尤為重要,我們需要徹底了解用戶的需求和用戶的問題。本章介紹了音樂App的一些基本信息,這些信息在本系統(tǒng)的設計中起著重要的作用,本章將為以下總體設計和詳細設計提供完整的文檔支持,描述系統(tǒng)所需的各種功能。系統(tǒng)的總體設計4.1系統(tǒng)的總體結構設計4.1.1音樂App功能結構圖圖4-1音樂App功能結構圖4.1.2功能結構描述本音樂App大體分為我的、發(fā)現、搜索、音樂任務欄、音樂播放與更多。(1)我的模塊我的模塊主要設計好的功能有“我的收藏”、“下載”與“歌單”。其中,“我的收藏”里實現的功能有:用戶收藏好的音樂,在我的收藏中搜索自己收藏好的音樂,對收藏好的音樂進行批量添加到歌單與批量下載,對收藏好的音樂進行按歌曲名、按歌手名與按專輯名排序,對收藏好的音樂條目進行下一首播放、添加到歌單、查看專輯與查看歌手?!跋螺d”實現的功能有:顯示用戶已經下載好的音樂,在下載中搜索自己下載好的歌曲,刪除用戶下載的歌曲,顯示正在下載歌曲的進度,對下載好的音樂條目進行下一首播放、添加到歌單、查看專輯與查看歌手?!案鑶巍睂崿F的功能有:新建歌單及新建歌單命名,刪除或者批量刪除歌單,重命名歌單,歌單內搜索音樂,對歌單里的音樂進行批量添加到歌單與批量下載,對歌單里的音樂進行按歌曲名、按歌手名與按專輯名排序,對歌單里的音樂條目進行下一首播放、添加到歌單、查看專輯與查看歌手。(2)發(fā)現模塊發(fā)現模塊主要設計好的功能有歌手列表里的“熱門歌手”與“按條件篩選歌手”。其中,“按條件篩選歌手”實現的功能有:按照歌手的地區(qū)、性別、組合、音樂分類與名字首字母來進行歌手的篩選,篩選后顯示出相應的歌手給用戶選擇?!盁衢T歌手”實現的功能有:最近熱門的歌手顯示,點擊任意一個歌手即可進入到歌手歌曲列表,在歌曲列表中任意點擊一首歌曲就可以進行播放,可以查看歌手的簡介,可以對歌曲列表里的音樂進行批量添加到歌單與批量下載,對歌曲列表里的音樂條目可以進行下一首播放、添加到歌單、查看專輯、查看歌手與下載歌曲。(3)搜索模塊搜索模塊主要設計好的功能有“搜索歌手與歌曲”與“搜索歷史”。其中,“搜索歌手與歌曲”實現的功能有:用戶搜索任意一個歌手與歌曲都會將準確的歌手與歌曲顯示出來,如果搜索的是歌手就顯示歌手的歌曲條目,如果搜索歌曲就顯示歌曲條目,點擊任意一首歌都可以播放,對歌曲列表里的音樂條目可以進行下一首播放、添加到歌單、查看專輯、查看歌手與下載歌曲?!八阉鳉v史”實現的功能有:用戶每次搜索不相同的歌手與歌曲都會形成搜索歷史,用戶可以清空搜索歷史,也可以單獨刪除任意一條搜索歷史。(4)音樂任務欄模塊音樂任務欄模塊主要設計好的功能有“播放暫?!薄ⅰ吧弦皇着c下一首”、“桌面歌詞”與“關閉音樂App”。其中,“播放暫?!睂崿F的功能有:用戶點擊播放按鈕,音樂播放,點擊暫停按鈕,音樂暫停。“上一首與下一首”實現的功能有:用戶點擊上一首按鈕,上一首歌曲播放,點擊下一首按鈕,下一首歌曲播放?!瓣P閉音樂App”實現的功能有:用戶點擊關閉按鈕,音樂App就被關閉,結束音樂App的所有進程。“桌面歌詞”實現的功能有:在音樂播放時點擊桌面歌詞按鈕桌面歌詞才會被啟動,在音樂暫停時點擊桌面歌詞按鈕桌面歌詞不會被啟動,桌面歌詞可以實現上一首與下一首音樂的播放、播放與暫停、鎖定桌面歌詞、關閉桌面歌詞與設置桌面歌詞的大小與歌詞顏色。(5)更多模塊更多模塊主要設計好的功能有“關于”、“設置”與“退出”。其中,“設置”實現的功能有:用戶點擊設置進入設置頁面,設置內包含桌面歌詞請求懸浮窗權限、開啟夜間模式、下載目錄與清除緩存;只有用戶點擊桌面歌詞請求懸浮窗權限才能開啟懸浮窗權限,才能讓桌面歌詞功能成功實現;用戶點擊開啟夜間模式,音樂App的主題顏色就會變成暗色系,適合在夜間進行瀏覽與使用,有利于保護用戶的眼睛;下載目錄里有歌曲下載成功后所在的存儲路徑,方便用戶查找歌曲下載到了哪里;用戶點擊清除緩存即可清除音樂App所有的圖片緩存,提高圖片加載速度,減少音樂App對手機內存的占用。“關于”實現了本款音樂App的軟件版本號的顯示,并展示對用戶的歡迎使用的感謝用語,使用戶玩的開心,心情愉悅;“退出”實現了用戶點擊退出按鈕后,音樂App就被關閉,結束音樂App的所有進程。(6)音樂播放模塊音樂播放模塊主要設計好的功能有“播放暫?!薄ⅰ吧弦皇着c下一首”、“收藏音樂”、“選擇播放模式”、“下載音樂”、“添加音樂到歌單”、“音樂進度條”、“音質選擇”、“歌詞”與“更多操作”。其中,“播放暫?!睂崿F的功能有:用戶點擊播放按鈕,音樂播放,點擊暫停按鈕,音樂暫停?!吧弦皇着c下一首”實現的功能有:用戶點擊上一首按鈕,上一首歌曲播放,點擊下一首按鈕,下一首歌曲播放?!笆詹匾魳贰睂崿F的功能有:用戶點擊收藏按鈕即可收藏音樂,再次點擊收藏按鈕即可取消收藏音樂?!斑x擇播放模式”實現的功能有:用戶點擊播放模式按鈕可以任意切換到循環(huán)播放、單曲播放與隨機播放?!跋螺d音樂”實現的功能有:用戶點擊下載按鈕即可選擇標準品質、較高品質、HQ品質與無損品質四種品質任意一種進行下載。“添加音樂到歌單”實現的功能有:用戶點擊添加音樂到歌單按鈕即可將音樂添加到任意一個歌單,用戶還可以立即新建一個歌單再將音樂加入到歌單?!耙魳愤M度條”實現的功能有:用戶播放音樂時,進度條顯示音樂總時長以及音樂播放進度,用戶可以隨意拉動進度條,進度條拉到哪里音樂就在哪里開始播放?!耙糍|選擇”實現的功能有:用戶點擊播放音樂,默認音質都是標準品質,用戶可以點擊音質選擇按鈕,選擇標準品質、較高品質、HQ品質與無損品質四種品質任意一種進行播放。“更多操作”實現的功能有:用戶點擊更多操作按鈕可以對歌曲進行下一首播放、添加到歌單、查看專輯、查看歌手與下載歌曲?!案柙~”實現的功能有:用戶在播放頁面向左滑動即可進入歌詞顯示模塊,用戶可以隨意滑動歌詞到任意一個位置點擊歌詞,然后歌曲就在用戶點擊歌詞的地方開始播放,用戶如果對系統(tǒng)匹配的歌詞不滿意可以在線搜索歌詞,并將搜索到的歌詞應用到歌詞顯示中去,用戶如果對歌詞字體大小與歌詞顏色不滿意的話,都可以進行調整。4.2系統(tǒng)的開發(fā)模式設計在開發(fā)模式下,該音樂App采用MVC(Model-View-Control模型-視圖-控制)模式開發(fā),MVC開發(fā)模式具有高重用性、低耦合性、快速部署性和高可維護性等優(yōu)點,有利于本次音樂App的設計與實現,有利于軟件的工程管理等,其實施難度一般。需要利用的知識點和技術點一般是主流開發(fā)技術,可以逐步掌握和合理利用,非常適合本次音樂App的設計。由于涉及的技術范圍很廣,有必要更多地利用文檔和教程進行學習和實踐,最終目標是獲得良好的人機交互體驗。4.3設備要求4.3.1硬件設備PC計算機內存4.00GB64位系統(tǒng),基于X64的處理器4.3.2支持軟件操作系統(tǒng)軟件Windows10數據庫軟件LitePal、MySQL集成開發(fā)軟件androidstudio4.4音樂App的模塊劃分 本次設計的音樂APP模塊劃分為我的模塊、發(fā)現模塊、搜索模塊、任務欄模塊、音樂播放模塊與更多模塊共計六個模塊:圖4-2音樂App模塊劃分4.5數據庫的設計 本次音樂App的數據庫開發(fā)使用了litepal,litepal是一款開源的數據庫,具有空間輕便、開發(fā)簡易的特點,非常適合本次音樂App的開發(fā)。本次音樂App數據庫開發(fā)的數據表如下所示。4.5.1表格:music音樂表字段:表4-1音樂表列名名稱數據類型字段類型默認值是否主鍵id數據庫存儲idintegerintegernull是type歌曲類型本地/網絡texttextnull否mid歌曲idtexttextnull否title音樂標題texttextnull否artist歌手texttextnull否album專輯texttextnull否artistId專輯idtexttextnull否albumId專輯idtexttextnull否trackNumber專輯內歌曲個數integerintegernull否duration持續(xù)時間integerintegernull否isLove收藏integerintegernull否isOnline本地/網絡integerintegernull否uri音樂路徑texttextnull否lyric本地/網絡音樂歌詞地址texttextnull否coverUri本地/網絡專輯封面路徑texttextnull否coverBig網絡專輯封面texttextnull否coverSmall網絡small封面texttextnull否fileName文件名texttextnull否fileSize文件大小integerintegernull否year發(fā)行日期texttextnull否date更新日期integerintegernull否isCp在線歌曲是否限制播放,false可以播放integerintegernull否isDl在線歌曲是否付費歌曲,false不能下載integerintegernull否collectId收藏idtexttextnull否quality音樂品質,默認標準模式integerintegernull否hqHQ品質integerintegernull否sq較高品質integerintegernull否high無損品質integerintegernull否hasMv是否有MVintegerintegernull否4.5.2表格:playlist收藏及歌單表字段:表4-2收藏及本地歌單表列名名稱數據類型字段類型默認值是否主鍵id數據庫存儲idintegerintegernull是pid歌單idtexttextnull否name歌單名texttextnull否total歌曲數量integerintegernull否updateDate更新日期integerintegernull否updateFrequency更新頻率texttextnull否date創(chuàng)建日期integerintegernull否des描述texttextnull否order排列順序texttextnull否coverUrl封面texttextnull否type類型,本地歌單,播放歷史,我的收藏texttextnull否playCount播放次數integerintegernull否4.5.3表格:tasksmanagermodel音樂下載表字段:表4-3音樂下載表列名名稱數據類型字段類型默認值是否主鍵id數據庫存儲idintegerintegernull是mid歌曲idtexttextnull否name下載歌曲名texttextnull否url下載網址texttextnull否path下載路徑texttextnull否finish下載完成integerintegernull否4.5.4表格:musictoplaylist收藏的音樂及歌單內音樂表字段:表4-4收藏的音樂及歌單內音樂表列名名稱數據類型字段類型默認值是否主鍵id數據庫存儲idintegerintegernull是pid歌單idtexttextnull否mid歌曲idtexttextnull否total歌曲數量integerintegernull否updateDate更新日期integerintegernull否createDate創(chuàng)建日期integerintegernull否4.5.5表格:searchhistorybean搜索歷史表字段:表4-5搜索歷史表列名名稱數據類型字段類型默認值是否主鍵id數據庫存儲idintegerintegernull是title音樂標題texttextnull否4.6業(yè)務流程與數據流程4.6.1業(yè)務流程用戶點擊音樂App后,首先進入歡迎等待頁面,再跳轉到音樂App的“我的”頁面,點擊收藏可以展現用戶收藏的音樂,點擊下載可以展現用戶下載的音樂,用戶還可以新建歌單;用戶點擊發(fā)現頁面,可以進入歌手列表查看歌手;用戶點擊音樂后音樂開始播放同時進入音樂播放界面,用戶可以進行播放暫停、上一首下一首、收藏下載以及歌詞顯示等操作;用戶進入更多界面可以設置與退出音樂App。圖4-3業(yè)務流程圖4.6.2數據流程(1)音樂數據來源本次音樂App的后臺音樂數據均來自于API,API實現方法如下:封裝QQ音樂API,通過BaseApiImpl文件,調用js方法拼接API請求地址,然后AjaxHandler文件收到請求地址,再通過okhhtp請求,獲取返回數據,然后在回到js組裝返回數據。最后返回一個json字符串,在BaseApiImpl文件中回調方法中gson解析成具體對象,并將接口數據集中到MusicApi類中管理。音樂播放API接口app.native.js,使用DSbridge解決Android跨域問題,實現Android與js交互。具體接口實現在BaseApiImpl文件中。(2)音樂數據流程頂層數據流是最抽象的一層,它包含用戶點擊音樂與音樂App播放音樂,播放的音樂數據均來源與數據庫及API,用戶向音樂App獲取音樂數據,向音樂App輸入用戶音樂信息(如音樂收藏、音樂下載與音樂歌單等),音樂App向用戶顯示信息數據與播放音樂數據。圖4-4頂層數據流圖在中間層數據流中,用戶通過點擊在線音樂、音樂收藏、音樂下載、本地歌單及音樂搜索歷史向數據庫及API獲取數據;用戶點擊在線音樂,后臺通過API獲取音樂數據,音樂數據包括音樂、封面、音樂時長及歌詞等數據;用戶點擊音樂收藏,系統(tǒng)后臺會給收藏的音樂一個編碼,將其寫入數據庫音樂收藏表,實現音樂收藏,本地歌單也是同等原理實現;用戶點擊音樂下載,系統(tǒng)后臺通過API獲取音樂下載地址并實現下載。圖4-5中層數據流圖在底層數據流中,數據庫及API可以響應用戶的數據請求,將用戶需要的音樂數據讀取并發(fā)送給用戶,使用戶可以在音樂App上播放音樂。圖4-6底層數據流圖4.7界面布局與音頻播放設計4.7.1界面布局設計本次音樂App的UI布局大多是采用線性布局(LinearLayout)來進行設計,之所以大多是采用線性布局,是因為線性布局具有使用簡單,操作方便的特點,方便設計;音樂App的布局設計的比較簡潔明了,使用戶一看就會操作,字體背景顏色都采用統(tǒng)一的色調,使其不突兀,更具有觀賞性、良好的人機交互性。因為本次音樂App所需要設計實現的布局比較多,因此比較多的使用在不同的布局中共享使用同一布局文件的方法以節(jié)省設計制作時間與充分利用資源,并統(tǒng)一命名所需顏色的色號,方便使用。4.7.2音頻播放設計本次音樂App的音頻設計采用了安卓MediaPlayer類,MediaPlayer類是安卓設計中控制音視頻媒體與文件播放的,在本次音樂App的設計與實現中占有舉足輕重的地位;MediaPlayer類里的方法有很多,但最主要答方法有:getCurrentPosition()方法獲取當前音樂播放的位置,getDuration()方法獲取音樂的總時長,booleanisPlaying()方法獲取音樂是否在播放,voidpause()方法暫停播放音樂,stop()方法停止播放音樂等,我將使用這些方法來實現音樂App的播放、暫停等多種功能的實現。4.8本章小結 本章主要是說明音樂App的總體設計,對系統(tǒng)進行總體模塊進行劃分,大概描述系統(tǒng)開發(fā)的總體內容情況,并設計好數據庫后臺,理清業(yè)務流程與數據流程。第5章系統(tǒng)的詳細設計5.1項目結構5.1.1目錄結構圖5-1目錄結構api包為接口類集合;assets包為數據庫配置數據庫管理;bean包為數據庫訪問操縱、數據庫連接信息;common包為部分工具類;ui包為前端控制相關;data包為部分數據庫操作、部分歌單操作;player包為歌單及Service操作相關;utils包為其他相關;assets包為數據庫;res包為前端布局。5.1.2Service設計與實現Service是安卓四大組件之一,可以在后臺長時間運行,即使用戶切換應用仍然可以在后臺繼續(xù)運行,因此,Service非常適合應用于本次音樂App的開發(fā)中去。我將通過Service實現音樂播放不被打斷,Service運行時播放音樂,Service被停止運行時音樂就會停止播放,選擇Service服務,新建Service,命名為MusicPlayerService,繼承Service類實現自定義Service:publicclassMusicPlayerServiceextendsService{}通過Service連接Ui類,在ui類中點擊暫停與播放的時候調用Service里面暫停與播放的方法,在MusicPlayerService中啟動Service服務,執(zhí)行onStartCommand()方法:publicintonStartCommand(Intentintent,intflags,intstartId){},與使用onBind()方法綁定Service:publicIBinderonBind(Intentintent){},Service使用onCreate()方法初始化音樂播放服務:publicvoidonCreate(){

super.onCreate();

LogUtil.e(TAG,"onCreate");

//初始化音樂播放服務

initMediaPlayer();

}Service需要調用FloatLyricViewManagerMediaSessionManagerAudioAndFocusManager里的方法://對象引用

privateFloatLyricViewManagermFloatLyricViewManager;//桌面歌詞管理類

privateMediaSessionManagermediaSessionManager;//MediaSession管理類

privateAudioAndFocusManageraudioAndFocusManager;//音頻管理類在initConfig方法初始化:privatevoidinitConfig(){mFloatLyricViewManager=newFloatLyricViewManager(this);

//初始化和設置

mediaSessionManager=newMediaSessionManager(mBindStub,this,mMainHandler);

audioAndFocusManager=newAudioAndFocusManager(this,mHandler);}創(chuàng)建一個MusicPlayerHandler類,寫入播放暫停等方法,實現播放音樂、暫停播放等功能publicclassMusicPlayerHandlerextendsHandler{}解除綁定Service設置監(jiān)聽音樂播放完成,停止Service//Service活動生命周期是在onUnbind()方法返回后結束

publicbooleanonUnbind(Intentintent){

}進行程序結束時的清理工作,應該在OnDestroy()中,否則就有可能會出現內存泄漏的危險了。

publicvoidonDestroy(){}5.2進入、啟動與退出模塊5.2.1進入(1)界面設計:(a)進入效果(b)我的主頁效果圖5-2進入主頁界面(2)實現思路:點擊音樂App應用,進入音樂App主界面時,設計一個歡迎頁面WelcomeActivity及其布局文件activity_welcome,并實現停留兩秒自動跳轉進入主界面;具體實現是采用intent()方法實現跳轉,采用postDelayed()方法實現停留2秒。5.2.2退出(1)界面設計:圖5-3退出界面實現思路:在“更多”頁面點擊“退出”按鈕,然后就會退出音樂App,這個功能是通過采用finish()方法結束進程來實現的。5.2.3啟動(1)界面設計:圖5-4啟動界面(2)實現思路:當進入了主界面MainActivity后,獲取FragmentManager,在活動中直接通過調用getFragmentManager()方法得到啟動MainFragment,并進入MainFragment頁面,在MainFragment對應布局文件frag_main中實現頂部藍色布局,通過addFragment()方法實現“我的”與“發(fā)現”兩個界面的共存。5.3音樂播放模塊5.3.1音樂播放(1)界面設計:圖5-5音樂播放界面(2)實現思路:當用戶點擊播放按鈕以后,系統(tǒng)后臺會通過onCreate()方法創(chuàng)建initMediaPlayer服務,就會通過后臺initMediaPlayer()方法初始化音樂播放服務,播放當前歌曲,AndroidVideoCache緩存設置,邊播邊緩存,通過playCurrentAndNext()方法播放當前音樂,最后通過play()方法實現音樂播放。5.3.2音樂暫停播放(1)界面設計:圖5-6音樂暫停界面(2)實現思路:當點擊暫停按鈕后,后臺就會通過pause()方法來實現暫停功能的實現。5.3.3切換下一首與上一首(1)界面設計:圖5-7音樂切換界面(2)實現思路:當用戶點擊上一首按鈕時,后臺會首先通過getPreviousPosition()方法來獲取上一首音樂的位置,再通過使用prev()方法來實現切換上一首音樂的播放;當用戶點擊下一首按鈕時,后臺會首先通過getNextPosition()方法來獲取下一首音樂的位置,再通過使用next()方法來實現切換到下一首音樂的播放。5.3.4收藏與添加到歌單(1)界面設計:(a)音樂收藏界面效果(b)添加到歌單效果圖5-8收藏與添加到歌單界面(2)實現思路:當用戶點擊了收藏按鈕(即心形按鈕),后臺會通過collectMusic()方法將歌曲添加到數據庫musiclake1中的Playlist表,然后通過setImageResource()方法更新收藏狀態(tài),使心形按鈕變成紅色,即表示收藏成功;同理,當用戶再次點擊心形按鈕時就可以取消收藏。當用戶點擊添加到歌單的按鈕時,后臺會通過addToPlaylist()方法將歌曲添加到本地歌單。5.3.5改變播放模式(1)界面設計:(a)隨機播放效果(b)順序播放效果(c)單曲循環(huán)效果圖5-9改變音樂播放模式(2)實現思路:當用戶點擊播放模式按鈕時,后臺通過updatePlayMode()方法切換播放模式,并通過執(zhí)行ToastUtils類顯示切換后的播放模式吐司,播放模式總共有三種,分別是循環(huán)播放、單曲播放與隨機播放,后臺系統(tǒng)通過PlayQueueManager()方法定義playingModeId類來實現默認播放模式為循環(huán)播放。5.3.6下載歌曲(1)界面設計:(a)音質選擇效果(b)下載效果圖5-10下載歌曲(2)實現思路:當用戶點擊下載按鈕時,后臺通過downloadMusic()方法調用QualitySelectDialog類的initItems()方法實現彈出下載歌曲音質選擇,音質可選擇標準品質、較高品質、HQ品質與無損品質,選擇品質后點擊下載歌曲后會彈出通過MaterialDialog()方法實現的下載歌曲彈窗,點擊確定后會通過getMusicDownloadUrl()方法獲取該歌曲的下載地址并開始下載,下載成功后會顯示“歌名+下載成功”的吐司提示,如果用戶重復下載則會顯示“歌名+已在下載列表中...”。5.3.7音質切換(1)界面設計:圖5-11音質切換(2)實現思路:當用戶點擊音質按鈕時,后臺通過調用QualitySelectDialog類的initItems()方法與TranslateAnimation()方法實現自下而上彈出歌曲音質選擇菜單欄,音質可選擇標準品質、較高品質、HQ品質與無損品質,用戶選擇品質后,系統(tǒng)通過后臺initMediaPlayer()方法初始化音樂播放服務,播放當前音質歌曲,通過playCurrentAndNext()方法播放當前音樂,最后通過play()方法實現音樂播放。5.3.8進度條(1)界面設計:(a)進度條效果(b)歌詞進度條效果圖5-12進度條(2)實現思路:當歌曲開始播放,系統(tǒng)后臺通過getDuration方法獲取正在播放的歌曲的總時長,并通過getCurrentPosition()方法獲取正在播放歌曲的進度,再通過seekTo()方法實現歌曲進度的快進與后退。5.3.9歌詞(1)界面設計:(a)歌詞效果(b)選擇效果(c)歌詞搜索(d)字體大小效果圖5-13歌詞(2)實現思路:當用戶劃到歌詞呈現頁面時,系統(tǒng)后臺會通過searchLyric()方法自動搜索歌詞,如何沒有搜索到歌詞的話,會彈出“沒有搜索到+歌曲名+相關歌詞”的吐司,如果有搜索到,則系統(tǒng)后臺將通過initLyricList()方法初始化歌詞,使歌詞匹配歌曲播放進度,當用戶點擊歌詞按鈕時,會自下而上彈出一個菜單欄,菜單欄內有兩個按鈕,分別是“在線搜詞”與“字體樣式”,點擊在線搜詞會顯示搜索出來的歌詞的結果,點擊任意一個搜索出來的歌詞結果,就會彈出“歌詞修改成功”的吐司,點擊字體樣式則可以修改字體大小與字體顏色。5.3.10封面播放轉動(1)界面設計:(a)封面轉動前(b)封面轉動后圖5-14封面轉動(2)實現思路:當用戶開始播放歌曲時,系統(tǒng)后臺通過initAlbumPic()方法初始化旋轉動畫,通過startRotateAnimation方法切換歌曲,開始旋轉動畫,從而實現歌曲播放時封面隨著轉動;當用戶暫停播放歌曲時,系統(tǒng)后臺通過stopRotateAnimation()方法停止封面旋轉,當再次播放歌曲時系統(tǒng)后臺通過resumeRotateAnimation()方法實現封面繼續(xù)旋轉。5.3.11播放更多(1)界面設計:圖5-15更多選擇(2)實現思路:當用戶點擊播放更多后,系統(tǒng)后臺通過ItemAdapter()方法自下而上彈出更多菜單欄,菜單欄內有“下一首播放”、“添加到歌單”、“查看專輯”與“查看歌手”可供用戶選擇的功能。當用戶點擊“下一首播放”后,系統(tǒng)后臺通過nextPlay()方法實現下一首播放這一首歌;當用戶點擊添加到歌單的按鈕時,后臺會通過addToPlaylist()方法將歌曲添加到本地歌單;當用戶點擊“查看專輯”時,系統(tǒng)后臺會通過turnToAlbum()方法跳轉到該音樂所屬專輯;當用戶點擊“查看歌手”時,系統(tǒng)后臺會通過turnToArtist()方法打開歌手列表。5.4音樂搜索模塊5.4.1在線搜索(1)界面設計:(a)搜索界面效果(b)搜索效果圖5-16在線搜索(2)實現思路:當用戶點擊搜索按鈕時,系統(tǒng)后臺就會彈出搜索頁面,用戶輸入好后點擊搜索后,系統(tǒng)后臺通過search()方法進行接口搜索,再通過setupViewPager()方法將搜索到的結果以列表的形式展現出來。5.4.2搜索歷史與刪除搜索歷史(1)界面設計:(a)無搜索歷史(b)搜索歷史圖5-17搜索歷史(2)實現思路:當用戶輸入搜索內容后點擊搜索按鈕時,系統(tǒng)后臺會將用戶輸入的內容通過saveOrUpdate()方法寫入musiclake數據庫SearchHistoryBean搜索歷史表內,然后再用getSearchHistory()方法與where()方法獲取數據庫搜索歷史,而后通過showSearchHistory()方法顯示搜索歷史。當用戶點擊具體搜索歷史后面的“x”按鈕后,系統(tǒng)后臺就會通過deleteAllAsync()方法刪除該搜索歷史條目,當用戶點擊右上方的垃圾桶按鈕后,系統(tǒng)后臺會通過deleteAll()方法刪除所有的搜索歷史。5.4.3歌單搜索(1)界面設計:(a)歌單搜索界面(b)搜索效果圖5-18歌單搜索(2)實現思路:當用戶在歌單內點擊搜索按鈕后,系統(tǒng)后臺就會跳轉到歌單內搜索頁面,用戶輸入搜索內容后,系統(tǒng)后臺通過showSearchOnStart()方法自動匹配相符合的搜索歌曲展現出來。5.5通知欄模塊5.5.1通知欄(1)界面設計:圖5-19通知欄(2)實現思路:當用戶播放音樂時,系統(tǒng)后臺會通過isPlaying()方法獲取當前音樂的播放狀態(tài),再用releaseServiceUiAndStop()方法釋放通知欄,然后再使用initNotify()方法初始化通知欄,再使用updateNotification()方法更新通知欄信息;當用戶點擊通知欄背景時,系統(tǒng)后臺會通過Intent()方法跳轉到當前音樂的播放界面;當用戶切換音樂時,系統(tǒng)后臺會通過isChange()方法確認是否改變歌曲信息,然后通過isPlaying()方法獲取當前音樂的播放狀態(tài);當用戶點擊通知欄的關閉按鈕時,系統(tǒng)后臺會通過cancelNotification()方法isRunningForeground類結束音樂App的進程并關閉音樂App。5.5.2桌面歌詞(1)界面設計:(a)桌面歌詞效果(b)調整歌詞效果圖5-20桌面歌詞(2)實現思路:當用戶點擊通知欄的“詞”按鈕時,系統(tǒng)后臺就會通過showDesktopLyric()方法顯示桌面歌詞,并通過Timwr()方法與scheduleAtFixedRate()開啟定時器定時刷新桌面歌詞,實現每隔0.5秒刷新一次,再通過updateLyric()方法實現正在播放時刷新;在歌詞顯示欄里還可以設置字體大小與顏色、鎖定歌詞、關閉歌詞欄、切換上下一首與播放暫停。5.6用戶我的模塊5.6.1我的界面(1)界面設計:圖5-21我的界面(2)實現思路:當用戶進入我的界面時,系統(tǒng)后臺就會通過updatePlaylist()方法自動更新本地歌單列表,如果歌單列表為空則顯示“暫無歌單,快去新建吧!”;并顯示收藏列表、下載列表與本地歌曲列表。5.6.2我的收藏(1)界面設計:圖5-22我的收藏(2)實現思路:當用戶點擊“我的收藏”時,系統(tǒng)后臺會通過getMusicList()方法獲取數據庫里所有收藏歌曲,點擊播放歌單按鈕時,會通過saveOrUpdateMusic()方法播放收藏列表內的歌曲。5.6.3下載(1)界面設計:圖5-23下載(2)實現思路:當用戶進入下載界面后,系統(tǒng)后臺通過getDownloadList()方法獲取已下載列表,通過getDownloadingList()方法獲取下載列表,通過clearDownloadList()方法清空下載列表,通過updateTask()方法更新數據庫TasksManagerModel下載表下載任務狀態(tài)。5.6.4本地歌單(1)界面設計:(a)新建本地歌單(b)歌單建好效果圖5-24本地歌單(2)實現思路:當用戶點擊新建歌單的按鈕時,系統(tǒng)后臺就會彈出新建歌單框,輸入歌單名后,點擊確定即通過createPlaylist()方法新建好一個歌單;當用戶進入我的界面時,系統(tǒng)后臺通過setNewData()方法與getAllPlaylist()方法獲取加載本地歌單列表,再通過if語句判斷歌單列表,如本地歌單列表為空則顯示“空空如也”。當用戶點擊進入歌單后,系統(tǒng)后臺會通過getMusicList()方法掃描歌單歌曲;當用戶點擊添加歌曲到歌單的按鈕時,后臺會通過addToPlaylist()方法將歌曲添加到本地歌單,用戶點擊重命名歌單后通過renamePlaylist類重命名歌單,點擊刪除歌單會通過deletePlaylist()方法實現刪除歌單。5.7發(fā)現模塊5.7.1歌手列表(1)界面設計:(a)發(fā)現頁面(b)歌手選擇(c)歌手歌單圖5-25歌手列表(2)實現思路:當用戶點擊”歌手列表”后,系統(tǒng)后臺會通過initViews()方法初始化歌手列表,然后通過updateArtistList()方法更新歌手分類;當用戶點擊任一一個歌手后,系統(tǒng)后臺通過showArtistList()方法顯示歌手歌曲。5.8更多模塊5.8.1設置(1)界面設計:(a)更多頁面(b)設置選擇圖5-26設置(2)實現思路:當用戶點擊“清除緩存”時,系統(tǒng)后臺就會通過cleanApplicationData()方法實現清除所有圖片緩存;當用戶點擊“桌面歌詞”時,系統(tǒng)后臺就會通過checkLyricPermission()方法來實現檢查桌面歌詞所需的權限。5.8.2退出音樂App(1)界面設計:圖5-27退出App(2)實現思路:當用戶點擊“退出”時,系統(tǒng)后臺會通過finish()方法實現退出音樂App。5.9音樂API5.9.1API本音樂App通過應用程序接口獲取網絡音樂數據,具體接口如下:QQ音樂Api接口定義:QQMusicApiServiceImpl5.9.2DSbridge使用通過BaseApiImpl,調用js方法拼接api請求地址,然后AjaxHandler收到請求地址,再通過okhhtp請求,獲取返回數據,然后在回到js組裝返回數據。最后返回一個json字符串,在BaseApiImpl回調方法中gson解析成具體對象。5.10本章小結本章主要是說明音樂App的開發(fā)程序,對系統(tǒng)進行代碼編寫,按模塊進行程序的編寫,描述系統(tǒng)輸入處理輸出的詳細運行流程。第6章系統(tǒng)的測試6.1進入退出模塊6.1.1進入退出模塊測試(1)圖片:圖6-1進入退出測試表格:表6-SEQ表6-\*ARABIC1進入退出模塊測試表用例編號測試點內容描述預期結果實際結果結論1進入音樂App用戶在手機上點擊微音樂App圖標,進入微音樂App顯示歡迎頁面,跳轉到我的主頁面成功進入,跳轉到我的主頁面通過2退出音樂App用戶在微音樂App上點擊退出按鈕音樂App終止運行音樂App終止運行通過6.2主頁我的與發(fā)現模塊6.2.1我的模塊測試(1)圖片:圖6-2我的測試表格:表6-SEQ表6-\*ARABIC2我的測試表用例編號測試點內容描述預期結果實際結果結論1我的收藏用戶點擊進入我的收藏內,查看自己收藏的歌收藏歌曲均可正常顯示與正常播放正常顯示正常播放通過2下載用戶點擊進入下載,查看自己下載的歌曲已下載的歌與下載中的歌均正常顯示與正常播放正常顯示正常播放通過3本地歌單用戶點擊新建按鈕新建歌單,用戶點擊本地歌單進入本地歌單新建歌單成功,進入本地歌單成功,歌單內歌曲均正常播放正常顯示新建歌單成功,進入歌單成功,歌曲正常播放正常顯示通過6.2.2發(fā)現模塊測試(1)圖片:圖6-3歌手列表測試(2)表格:表6-SEQ表6-\*ARABIC3歌手列表測試表用例編號測試點內容描述預期結果實際結果結論1歌手列表用戶進入發(fā)現頁面,點擊歌手列表按鈕進入歌手列表,用戶點擊一名歌手進入歌手歌曲列表,點擊任意一首歌曲進行播放正確顯示歌手,正確顯示歌手歌曲列表,音樂播放正常正確顯示歌手,正確顯示歌手歌曲列表,音樂播放正常通過2歌手篩選用戶對歌手進行有條件的篩選,篩選好后點擊歌手進入歌手歌曲列表,點擊任意一首歌曲進行播放正確顯示篩選后的歌手,正確顯示歌手歌曲列表,音樂播放正常正確顯示篩選后的歌手,正確顯示歌手歌曲列表,音樂播放正常通過6.3音樂播放模塊6.3.1音樂播放模塊測試(1)圖片:(a)音樂播放效果測試(b)歌詞測試圖6-4音樂播放測試(2)表格:表6-SEQ表6-\*ARABIC4音樂播放模塊測試表用例編號測試點內容描述預期結果實際結果結論1音樂播放用戶進入音樂播放頁后點擊音樂的播放按鈕與暫停按鈕正確播放音樂與暫停播放音樂,播放音樂與暫停音樂成功通過2切換音樂用戶任意切換上一首音樂與下一首音樂正確切換上一首音樂與下一首音樂成功切換上一首音樂與下一首音樂通過3播放模式用戶隨意切換循環(huán)播放、單曲播放、隨機播放切換音樂播放模式正確成功循環(huán)切換播放模式通過4播放音質用戶點擊標準品質、較高品質、HQ品質與無損品質的音樂音質按鈕正確切換播放音樂的音質成功切換對應音樂音質通過5播放進度用戶播放音樂并拖動音樂進度條,歌曲總時長啟動進度條正常移動,歌曲總時長無誤,音樂與進度條完美吻合進度條正常移動,歌曲總時長無誤,音樂與進度條完美吻合通過6歌曲歌詞歌詞與歌詞顏色大小切換歌詞顏色與大小成功切換歌詞顏色與大小通過7收藏歌曲用戶點擊收藏歌曲按鈕成功收藏歌曲成功收藏歌曲通過8下載歌曲用戶選擇下載音質進行下載音樂下載成功音樂下載成功通過9添加到歌單用戶添加音樂到本地歌單添加音樂到歌單成功添加音樂到歌單成功通過10更多用戶點擊下一首播放、查看專輯與歌手正確播放下一首,歌手與專輯查看無誤正確播放下一首,歌手與專輯查看無誤通過6.4搜索音樂模塊6.4.1搜索音樂模塊測試(1)圖片:(a)測試效果(b)搜索效果圖6-5搜索音樂測試表格:表6-SEQ表6-\*ARABIC5搜索音樂模塊測試表用例編號測試點內容描述預期結果實際結果結論1音樂搜索用戶搜索音樂正確顯示搜索結果正確顯示搜索結果通過2音樂搜索歷史用戶刪除搜索歷史正確顯示搜索歷史,成功刪除搜索歷史正確顯示搜索歷史,成功刪除搜索歷史通過3歌單內搜索用戶搜索歌單內音樂成功搜索歌單內音樂成功搜索歌單內音樂通過6.5設置模塊6.5.1設置模塊測試(1)圖片:(a)設置前效果(b)設置后效果圖6-6設置測試表格:表6-SEQ表6-\*ARABIC6設置模塊測試表用例編號測試點內容描述預期結果實際結果結論1桌面歌詞用戶請求懸浮窗權限正確獲取手機懸浮窗權限正確獲取手機懸浮窗權限通過2開啟夜間模式用戶切換夜間模式與正常模式夜間模式與正常模式互相切換正確夜間模式與正常模式互相切換正確通過3清除緩存用戶點擊清除所有圖片緩存清除緩存成功清除緩存成功通過4下載目錄用戶查看下載歌曲目錄下載目錄顯示正確下載目錄顯示正確通過6.6本章小結本章主要介紹了音樂App的測試數據,對系統(tǒng)數據進行了測試,發(fā)現并修正了系統(tǒng)中的錯誤或偏差,提高了音樂App系統(tǒng)的性能。從測試結果來看,本文開發(fā)的音樂App在功能需求方面達到了預期的效果,很好地為用戶提供了聽音樂的需求,另外,在非功能需求方面,也具有良好的穩(wěn)定性,能夠在一定程度上承受用戶的暴力使用,不會輕易出現卡頓、崩潰等影響用戶體驗的現象。第7章系統(tǒng)特色和創(chuàng)新7.1系統(tǒng)特色在開發(fā)模式下,該音樂App采用MVC(Model-View-Control模型-視圖-控制)模式開發(fā),具有高重用性、低耦合性、快速部署性和高可維護性等優(yōu)點,有利于軟件的工程管理等,其實施難度一般。需要利用的知識點和技術點一般是主流開發(fā)技術,可以逐步掌握和合理利用。由于涉及的技術范圍很廣,有必要更多地利用文檔和教程進行學習和實踐,最終目標是獲得良好的人機交互體驗。7.2系統(tǒng)創(chuàng)新這款音樂App是一款功能非常豐富的App,具有在線播放音樂功能、本地音樂播放功能等,讓用戶可以更加個性化地玩音樂、聽音樂,豐富用戶的精神世界。第8章總結在分析國內外現有Android平臺音樂App的基礎上,結合自己對市場的調查,得出了本文音樂App的性能和功能要求,進行了系統(tǒng)的總體設計,并對各個模塊進行了詳細的設計,對數據庫和消息處理機制等關鍵技術進行了探討。以Android為平臺,以JAVA為主導語言,實現了UI界面和功能。最后,對系統(tǒng)的功能和性能進行了測試,并與市場上主流的音樂播放軟件進行了比較。測試表明,該音樂播放軟件界面清晰簡單,操作方便,手機資源占用少,響應速度快,達到了預期目標,具有較大的市場空間。對于此處音樂App的完成,作為開發(fā)者的我來說可以說是非常開心的,在學習的過程中主要是通過書本和上網學習一些知識和開發(fā)技巧,這一次是通過自己所學習的理論知識加以運用實踐,將學習到的知識真正的運用和融會貫通。通過這次自己設計的音樂App,讓自己遇到很多之前無法通過自己完成的難題,但是通過導師和同學們的幫助,還是能夠順利地化解這些難題,并且通過這些難題也幫助我對軟件知識的綜合運用及使用的技巧。還有就是通過畢業(yè)設計的完成,讓我學會了如何跟老師和學生之間的更好交流溝通,這對我以后進入到社會是一個很好的磨練。通過自己這段時間的努力,完成這次畢業(yè)設計,主要是對我大學這幾年所學知識的進行綜合的檢測,我學到了很多知識,不只是書本知識,還有就是對于書本知識的實踐應用,在學習書本知識的同時,掌握了課本上沒有的技術知識和其他專業(yè)課程知識,對于本次音樂App的實現,是近年來自己首次完成設計的一個系統(tǒng)。在項目的設計過程中,我克服了各種困難,并且在面對這些困難,我積極的面對,想辦法解決問題,并且更好的掌握了理論知識和動手操作實踐能力。雖然此款音樂App雖取得了一定的成果,但還需要進一步完善,在今后的工作中,可以從以下幾個方面著手進行研究:(1)在功能方面,沒有實現用戶管理功能。未來可以添加注冊、登錄和修改密碼等功能,使音樂App的功能更加的全面與完善。(2)在界面上,更多地參考時下盛行音樂App的格調,如QQ音樂,在界面設計上缺乏創(chuàng)新和個性化,在未來,可以嘗試一個全新的用戶界面整體布局和設計,以形成一個獨特風格的音樂App。5353參考文獻 高夢園.基于安卓的多元化云音樂App的設計與實現[D].秦皇島:燕山大學碩士學位論文,2018:11-23.\t"/qq_19431333/article/details/_blank"xingfeng_coder.深入理解Service(一)——服務生命周期[J/OL].CSDN技術社區(qū),2016.12.[3] 蘇航.基于Android的音樂播放器軟件的設計與實現[D].成都:電子科技大學碩士學位論文,2016:12-20.[4]pifoo.4.2.0Android四大組件之-Service概述[J/OL].簡書,2015.10.[5]南山巔上.Android中Service(服務)詳解[J/OL].CSDN技術社區(qū),2017.2.[6]郭霖.第一行代碼——Android(第2版)[M].人民郵電出版社,2016.11.[7]劉敏.基于Android平臺的軟件行為分析系統(tǒng)的設計與實現[D].北京:北京郵電大學碩士學位論文,2014:6-20.[8]趙志榮.清華開發(fā)者書庫Android開發(fā)從0到1[M].清華大學出版社,2017.07.[9]切切歆語.AndroidMVC,MVP和MVVM架構設計模式[J/OL].博客園,2018.3.[10]崔毅明.基于Android平臺的多功能音樂播放器的設計與實現[D].長春:吉林大學碩士學位論文,2015:15-33.[11]夏明鈺.基于Android的校園音樂應用的設計與實現[D].武漢:華中科技大學碩士學位論文,2015:28-41.聲明致謝 在本次畢業(yè)設計中感謝指導老師和同學的幫助,他們在發(fā)現問題、分析問題和解決問題上提供了不少的外部協(xié)助,最終憑著自己的能力完成了這次任務。附錄 附錄一:數據庫設計腳本附錄二:系統(tǒng)源碼

捷鍵與一些電腦小技巧HYPERLINKwinkey+d:

這是高手最常用的第一快捷組合鍵。這個快捷鍵組合可以將桌面上的所有窗口瞬間最小化,無論是聊天的窗口還是游戲的窗口……只要再次按下這個組合鍵,剛才的所有窗口都回來了,而且激活的也正是你最小化之前在使用的窗口!

--這個就是winkeywinkey+f:

不用再去移動鼠標點“開始→搜索→文件和文件夾”了,在任何狀態(tài)下,只要一按winkey+f就會彈出搜索窗口。

winkey+r:

在我們的文章中,你經常會看到這樣的操作提示:“點擊‘開始→運行’,打開‘運行’對話框……”。其實,還有一個更簡單的辦法,就是按winkey+r!

alt+tab:

如果打開的窗口太多,這個組合鍵就非常有用了,它可以在一個窗口中顯示當前打開的所有窗口的名稱和圖標●,選中自己希望要打開的窗口,松開這個組合鍵就可以了。而alt+tab+shift鍵則可以反向顯示當前打開的窗口。

winkey+e:

當你需要打開資源管理器找文件的時候,這個快捷鍵會讓你感覺非?!八?!再也不用騰出一只手去摸鼠標了!

小提示:

winkey指的是鍵盤上刻有windows徽標的鍵●。winkey主要出現在104鍵和107鍵的鍵盤中。104鍵盤又稱win95鍵盤,這種鍵盤在原來101鍵盤的左右兩邊、ctrl和alt鍵之間增加了兩個windwos鍵和一個屬性關聯鍵。107鍵盤又稱為win98鍵盤,比104鍵多了睡眠、喚醒、開機等電源管理鍵,這3個鍵大部分位于鍵盤的右上方。

再補充點

F1顯示當前程序或者windows的幫助內容。

F2當你選中一個文件的話,這意味著“重命名”

F3當你在桌面上的時候是打開“查找:所有文件”對話框

F10或ALT激活當前程序的菜單欄

windows鍵或CTRL+ESC打開開始菜單

CTRL+ALT+DELETE在win9x中打開關閉程序對話框

DELETE刪除被選擇的選擇項目,如果是文件,將被放入回收站

SHIFT+DELETE刪除被選擇的選擇項目,如果是文件,將被直接刪除而不是

放入回收站

CTRL+N新建一個新的文件

CTRL+O打開“打開文件”對話框

CTRL+P打開“打印”對話框

CTRL+S保存當前操作的文件

CTRL+X剪切被選擇的項目到剪貼板

CTRL+INSERT或CTRL+C復制被選擇的項目到剪貼板

SHIFT+INSERT或CTRL+V粘貼剪貼板中的內容到當前位置

ALT+BACKSPACE或CTRL+Z撤銷上一步的操作

ALT+SHIFT+BACKSPACE重做上一步被撤銷的操作

Windows鍵+D:最小化或恢復windows窗口

Windows鍵+U:打開“輔助工具管理器”

Windows鍵+CTRL+M重新將恢復上一項操作前窗口的大小和位置

Windows鍵+E打開資源管理器

Windows鍵+F打開“查找:所有文件”對話框

Windows鍵+R打開“運行”對話框

Windows鍵+BREAK打開“系統(tǒng)屬性”對話框

Windows鍵+CTRL+F打開“查找:計算機”對話框

SHIFT+F10或鼠標右擊打開當前活動項目的快捷菜單

SHIFT在放入CD的時候按下不放,可以跳過自動播放CD。在打開wo

rd的時候按下不放,可以跳過自啟動的宏

ALT+F4關閉當前應用程序

ALT+SPACEBAR打開程序最左上角的菜單

ALT+TAB切換當前程序

ALT+ESC切換當前程序

ALT+ENTER將windows下運行的MSDOS窗口在窗口和全屏幕狀態(tài)間切換

PRINTSCREEN將當前屏幕以圖象方式拷貝到剪貼板

ALT+PRINTSCREEN將當前活動程序窗口以圖象方式拷貝到剪貼板

CTRL+F4關閉當前應用程序中的當前文本(如word中)

CTRL+F6切換到當前應用程序中的下一個文本(加shift可以跳到前

一個窗口)

在IE中:

ALT+RIGHTARROW顯示前一頁(前進鍵)

ALT+LEFTARROW顯示后一頁(后退鍵)

CTRL+TAB在頁面上的各框架中切換(加shift反向)

F5刷新

CTRL+F5強行刷新1.打開“我的電腦”-“工具”-“文件夾選項”-“查看”-在“顯示所有文件和文件夾”選項前打勾-“確定”

2.刪除以下文件夾中的內容:

x:\DocumentsandSettings\用戶名\Cookies\下的所有文件(保留index文件)

x:\DocumentsandSettings\用戶名\LocalSettings\Temp\下的所有文件(用戶臨時文件)

x:\DocumentsandSettings\用戶名\LocalSettings\TemporaryInternetFiles\下的所有文件(頁面文件)

x:\DocumentsandSettings\用戶名\LocalSettings\History\下的所有文件(歷史紀錄)

x:\DocumentsandSettings\用戶名\Recent\下的所有文件(最近瀏覽文件的快捷方式)

x:\WINDOWS\Temp\下的所有文件(臨時文件)

x:\WINDOWS\ServicePackFiles(升級sp1或sp2后的備份文件)

x:\WINDOWS\DriverCache\i386下的壓縮文件(驅動程序的備份文件)

x:\WINDOWS\SoftwareDistribution\download下的所有文件

3.如果對系統(tǒng)進行過windoesupdade升級

溫馨提示

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

評論

0/150

提交評論