基于Android的音頻管理系統(tǒng)_第1頁
基于Android的音頻管理系統(tǒng)_第2頁
基于Android的音頻管理系統(tǒng)_第3頁
基于Android的音頻管理系統(tǒng)_第4頁
基于Android的音頻管理系統(tǒng)_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要在這個智能手機技術(shù)和通訊技術(shù)飛速發(fā)展的時代,人們的生活越發(fā)地離不開智能手機,并且貫穿在人們的工作,生活,娛樂等各個方面。負責開發(fā)手機軟件的公司,會根據(jù)市場需求,開發(fā)各種手機軟件來滿足人們生活的需要,而Android系統(tǒng)在只能手機市場的占有率達到了71%,也就是每10個擁有手機的人里面就有7個人是使用安卓手機。我相信聽音樂是每個人的興趣之一,而看資訊則是人們每天在這信息時代里不可缺少的一部分,所以我打算將兩者的核心功能相結(jié)合,來滿足有需要的人群。本項目的主要目的是致力于開發(fā)一款聽音樂,看MV,看資訊結(jié)合于一體的一款音樂app,將安卓客戶端與Bmob云端數(shù)據(jù)庫相結(jié)合。讓用戶享受一種全新的體驗,在同一個app里,一邊聽音樂,一邊看音樂相關(guān)的資訊,了解音樂圈的大小事。在這里可以知道官方發(fā)布的新聞,可以了解外界媒體介紹的新聞,還可以直接了解自己喜歡的歌手發(fā)布的動態(tài),在瀏覽新專輯的介紹時直接試聽,在瀏覽明星八卦時試聽該歌手的熱曲,創(chuàng)建屬于自己的個性歌單,享受音樂給我們帶來的快樂。關(guān)鍵詞:安卓Bmob后端云手機應(yīng)用聽音樂瀏覽資訊

AbstractInthiseraofrapiddevelopmentofsmartphonetechnologyandcommunicationtechnology,people'slifeisincreasinglyinseparablefromsmartphone,andthroughoutpeople'swork,life,entertainmentandotheraspects.Thecompanyinchargeofdevelopingmobilephonesoftwarewilldevelopvariousmobilephonesoftwaretomeetpeople'sneedsaccordingtothemarketdemand.However,Androidsystemoccupies71%ofthemobilephonemarket,whichmeansthat7outofevery10peoplewithmobilephonesuseAndroidphones.Ibelievethatlisteningtomusicisoneofeveryone'sinterests,whilereadinginformationisanindispensablepartofPeople'sDailylifeinthisinformationage,soIplantocombinethetwocorefunctionstomeettheneedsofthepopulation.Themainpurposeofthisprojectistodevelopamusicappthatcombineslisteningtomusic,watchingMVandwatchinginformation.combiningandroidclientwithBmobclouddatabase.Letusersenjoyabrandnewexperience,inthesameapp,whilelisteningtomusic,whilewatchingmusic-relatedinformation,tounderstandthemusicindustry.Hereyoucanknowtheofficialpress,introductionofthenewsmediacanlearnabouttheoutsideworld,canalsodirectunderstandingoftheirfavoritesingerreleasedbythedynamic,directauditionwhenbrowsingtheintroductionofthenewalbum,inbrowsingthestargossipplayingaroundwiththesinger'shitsong,tocreatetheirownpersonalityplaylists,enjoymusicbringsushappiness.KeyWords:AndroidBmobCloudMobileApplicationListentothemusicBrowseinformation

目錄TOC\o"1-3"\h\u第一章緒論 緒論1.1研究背景在現(xiàn)今國內(nèi)的手機市場上,使用Android系統(tǒng)的手機約占據(jù)總體的85%,而IOS系統(tǒng)占比約為14%,剩下的1%是其它各種少見的系統(tǒng)。安卓系統(tǒng)秉承其免費的系統(tǒng)以及開源的方式受到國內(nèi)智能手機制造商的強烈追捧,正因其操作系統(tǒng)免費的優(yōu)點使得手機的制作成本很低,從而安卓系統(tǒng)的智能手機直接壟斷國內(nèi)中低端手機市場,也同時的大大促進了中國智能手機的發(fā)展。而開源的系統(tǒng)給我們帶來巨大的便利,我們可以根據(jù)自己的想法和需求修改代碼,無形中大大促進了軟件和系統(tǒng)的發(fā)展。正是這種人人都能進行開發(fā)的狀態(tài),各式各樣的安卓app才會源源不斷的涌現(xiàn)出來。1.2研究現(xiàn)狀如今市面上有各種五花八門的手機app,針對同一種功能從而衍生出來各種app,企圖在軟件市場上爭奪一席之地,比如在近幾年迅速躥紅的短視頻軟件,抖音和快手等短視頻軟件,它們都是在短視頻領(lǐng)域衍生出來的并且在市場上具有一定地位的手機軟件。在國內(nèi)的音樂app領(lǐng)域,居于領(lǐng)頭地位的app有QQ音樂,酷狗音樂,網(wǎng)易云音樂,蝦米音樂等音樂app,根據(jù)我對這幾款app的調(diào)查,思考它們各自吸引用戶手段,第一在于音樂的版權(quán),比如一些爆紅的單曲,或者歌手,他們可能會采取對該單曲或歌手的版權(quán)進行買斷,從而達到吸引用戶的目的,但是這種手段可能會花費大量的金錢作為投資,需要冒一定的風險。第二,與音樂制作人或者團隊簽下合約,要求其在自己的app發(fā)布動態(tài),從而吸引粉絲的關(guān)注,增加用戶量。第三,隨著網(wǎng)絡(luò)直播的發(fā)展,近幾年來音樂app陸續(xù)出現(xiàn)一些簽約音樂主播,在各自的平臺進行網(wǎng)絡(luò)直播,吸引觀眾和用戶。第四,使用音樂app的用戶年齡段大約在12-40歲之間,所以app的UI界面設(shè)計也非常重要,精美的界面更加能吸引用戶。第五,歌曲是否齊全,歌曲的種類是否足夠,是一款音樂app最核心的部分,因為聽歌是用戶打開音樂app的目的。以上幾點,前面舉例的音樂app都做得非常不錯。但是如果有自己喜歡的歌手要舉辦演唱會,卻不知道在哪里舉辦,什么時候舉行,在哪里可以售票,這樣就會陷入一個尷尬的地步,錯過最佳的購票時機。如果喜歡的歌手要舉辦粉絲見面會,如果喜歡的樂團要發(fā)新專輯,如果喜歡的外國歌手要來中國,為了避免錯過第一手消息,假如這些愿望都能在同一款app里面同時實現(xiàn),那將是愛音樂的朋友們的一個好消息。1.3設(shè)備環(huán)境設(shè)備環(huán)境:華碩筆記本電腦Windows10系統(tǒng)JRE1.8.0_152Javaversion1.8.0_192-eaAndroidStudio3.4.1版本OpenJDK64-bitseverVM安卓虛擬機Pixel2API281.4關(guān)鍵技術(shù)1.4.1Android操作系統(tǒng)概述Android(安卓),是由Google公司開發(fā)的操作系統(tǒng)。Android是一種基于Linux操作系統(tǒng)的開放式源代碼的操作系統(tǒng)?,F(xiàn)在主要使用于移動設(shè)備,如智能手機,平板電腦,智能手表和智能手環(huán)等,由Google公司和開放手機聯(lián)盟領(lǐng)導及開發(fā)。Android操作系統(tǒng)的創(chuàng)始人是AndyRubin(安迪·魯賓),起初主要運用在智能手機上,并且在2008年9月23日正式發(fā)行。后來Android逐漸擴展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機、游戲機、智能手表和智能手環(huán)等。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2013年的第四季度,Android平臺手機的全球市場份額已經(jīng)達到78.1%,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達到10億臺。在2020年3月,谷歌將會發(fā)布Android11版本,正式邁向新時代。隨著經(jīng)濟的發(fā)展以及智能手機的普及,智能手機逐漸地融入人們的生活當中,開發(fā)一款滿足用戶需求,用戶群體更加廣泛的軟件,正是本項目開發(fā)的目標。1.4.2Android體系架構(gòu)Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。圖2.1Android系統(tǒng)架構(gòu)從架構(gòu)圖看,Android分為四個層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運行庫層以及Linux內(nèi)核層。豐富而又可擴展的視圖(Views),內(nèi)容提供器(ContentProviders),資源管理器(ResourceManager),通知管理器(NotificationManager)還有活動管理器(ActivityManager)Android包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過Android應(yīng)用程序框架為開發(fā)者提供服務(wù)。1.4.3Bmob后端云Bmob后端云專注于為移動應(yīng)用提供一整套后端云服務(wù),幫助開發(fā)者免去幾乎所有的服務(wù)器端編碼的工作量,成倍降低開發(fā)成本和開發(fā)時間。輕松搭建應(yīng)用數(shù)據(jù)庫,支持可視化操作,提供可視化的云端數(shù)據(jù)表設(shè)計界面,輕松建庫建表。支持10種不同數(shù)據(jù)類型存儲:如字符串,整型,數(shù)組等。支持各種文件上傳和存儲,CDN加速更快更穩(wěn)定,文件服務(wù)可以存儲圖片、視頻、音頻、文檔等信息。通過提供的API接口和多語言SDK,為用戶提供快速上傳、安全可靠的數(shù)據(jù)存儲服務(wù)。配合CDN加速服務(wù)提高文件訪問的響應(yīng)速度與可用性,實現(xiàn)用戶全站加速更快捷。本次開發(fā)使用的是Bmob后端云的云端數(shù)據(jù)庫服務(wù),我們將創(chuàng)建自己的云端數(shù)據(jù)庫。本項目采用的套餐為公有云集群的開發(fā)版免費套餐,數(shù)據(jù)庫的容量有限制,建表個數(shù)限制為20個,表中列數(shù)限制為20個。

系統(tǒng)分析2.1可行性分析2.1.1技術(shù)可行性分析本項目使用的是AndroidStudio3.0版本開發(fā)工具,開源且免費,文檔齊全,可用于Android開發(fā)。此應(yīng)用大量使用recycleview,在項目中導入新版本的recycleview,能解決各種兼容性問題和性能問題,可滿足開發(fā)需求。本項目采用云端數(shù)據(jù)庫后臺管理,Bmob后端云能夠提供可視化的云端數(shù)據(jù)庫服務(wù),亦能與AndroidStudio3.0版本相契合,性能良好,兼容性佳,于Android開發(fā)文檔齊全,遇到問題都可在開發(fā)文檔中查詢并解決,若沒能自行解決方可詢問客服,可見Bmob云端數(shù)據(jù)庫能夠滿足開發(fā)需求。本項目欲實現(xiàn)廣告圖片輪播,圖片模糊效果,滑動標簽欄,底部導航欄,頂部導航欄,搜索欄,音樂播放器,視頻播放器,這些功能既可采用Android自帶控件,亦可引用第三方控件,按需求選用即可行。為了優(yōu)化UI體驗,特此采用MaterialDesign,遂引用Toolbar(帶ActionBar的頂部工具欄),DrawerLayout(抽屜布局),CardView(卡片式布局),AppBarLayout(應(yīng)用欄布局),CollapsingToolbarLayout(可折疊式標題欄),SwipeRefreshLayout(下拉刷新)等部件,以美化UI布局控件,提升用戶體驗。2.1.2經(jīng)濟可行性分析AndroidStudio開發(fā)工具的開發(fā)環(huán)境為開源代碼且不收費,大大減輕了開發(fā)成本。而Bmob云端數(shù)據(jù)庫采用的是學生個人免費的套餐,雖有性能限制,但也能滿足開發(fā)需求,也不存在經(jīng)濟問題。硬件方面,安卓智能手機普及廣,且AndroidStudio提供安卓模擬器,在軟件開發(fā)過程中測試反面也不會受到機能限制。2.1.3運行可行性分析本項目采用Bmob云端數(shù)據(jù)庫,不占用手機資源。而音樂播放器采用兩種方式,一是按照云端數(shù)據(jù)庫提供的音樂播放資源地址,通過網(wǎng)絡(luò)訪問進行播放,二是檢索手機內(nèi)存,得出播放列表,播放本機音頻資源。視頻播放也是采用云端數(shù)據(jù)庫提供的視頻播放地址,通過網(wǎng)絡(luò)訪問進行播放。這三者皆倚仗網(wǎng)絡(luò),在當今社會,網(wǎng)絡(luò)發(fā)達,網(wǎng)絡(luò)問題不足為懼。Bmob后端云與Android完美結(jié)合,也不存在問題。綜上所述,此應(yīng)用運行方案可行。2.2需求分析本項目主要包含以下六大模塊,分別是用戶模塊,音樂模塊,視頻模塊,資訊模塊,商城模塊還有其它模塊。用戶模塊依據(jù)云端數(shù)據(jù)庫模擬用戶的登錄和注冊的操作,而音樂模塊則包含許多分類模塊,播放列表,播放界面。視頻模塊則由視頻列表作導向,跳轉(zhuǎn)至各個視頻界面進行播放。資訊模塊和商城模塊都有分類,以及內(nèi)容詳細等界面。而其它模塊則包含各種零碎的功能模塊。圖2.1主要模塊2.2.1用戶模塊分析用戶模塊包含四大主要功能,分別是用戶注冊,用戶登錄,找回密碼,用戶信息。用戶注冊和用戶登錄兩功能的實現(xiàn)方法為利用Bmob后端云在Androidstudio的數(shù)據(jù)庫語句進行判斷,查詢用戶名,方可進行登錄和注冊。用戶信息則是查詢該用戶的基本信息,然后以文字或圖片的形式顯示出來,用戶在賬戶界面可以編輯用戶的基本信息,有設(shè)置頭像,手機號碼,電子郵箱等信息,如果忘記密碼,可以通過設(shè)置的手機號碼,電子郵箱找回密碼。圖2.2用戶模塊2.2.2音樂模塊分析音樂模塊包含此項目的大部分內(nèi)容,分別有本地音樂,歌單列表,歌手列表,專輯列表,排行榜單五大模塊。本地音樂功能為搜索本機內(nèi)存,得出音樂播放列表,點擊條目方可進行播放,無需訪問網(wǎng)絡(luò),若本機無音頻文件則沒有歌曲可播放。歌單列表內(nèi)有按歌曲風格進行分類,有流行音樂,電子音樂,還有說唱音樂三大類,點擊歌曲條目進入播放界面,方可播放歌曲。歌手列表當中則以華語,歐美,日韓,還有其它,按此四大語種進行分類,點擊歌手條目進入歌手主頁,瀏覽歌手信息與歌手歌曲列表,點擊歌曲條目進入播放列表進行播放。專輯列表按照數(shù)字專輯與實體專輯進行分類,點擊條目進入專輯信息界面,點擊歌曲條目可試聽專輯。排行榜單則由UK周榜,BillBoard周榜,抖音周榜等進行歌曲排名(榜單排名由各自官方信息得出),點擊榜單內(nèi)歌曲條目跳轉(zhuǎn)播放界面,方可播放歌曲。在歌單列表,歌手列表,專輯列表中的分類,都以頂部導航欄輔以數(shù)據(jù)庫語句(addWhereEqualTo)進行判斷分類,排行榜單的分類都有各自的JavaBean和recycleview的適配器,在點擊條目后的界面則由Switchcase判斷前一個界面?zhèn)鱽淼年P(guān)鍵詞,選取需要的數(shù)據(jù)庫,顯示對應(yīng)的排行榜表單。在在線音樂播放界面點擊收藏按鈕,將喜歡的歌收藏到收藏歌單,可供隨時欣賞。圖2.3音樂模塊2.2.3視頻模塊分析視頻模塊設(shè)有視頻列表,點擊視頻條目進入播放界面,通過查詢云端數(shù)據(jù)庫中的視頻網(wǎng)絡(luò)地址,在播放界面播放視頻。若有站外原視頻地址,則可點擊鏈接跳轉(zhuǎn)至瀏覽器中訪問原文地址,在站外播放。圖2.4視頻模塊2.2.4資訊模塊分析資訊模塊分作六大分區(qū),有推薦資訊,官方資訊,八卦資訊,專輯資訊,數(shù)碼資訊以及原創(chuàng)資訊,利用頂部導航欄,加以數(shù)據(jù)庫語句(addWhereEqualTo)判斷來分類。點擊資訊條目跳轉(zhuǎn),查看資訊詳細內(nèi)容,在內(nèi)容下方會注明資訊來源,點擊鏈接即可跳轉(zhuǎn)至瀏覽器訪問原文。圖2.5資訊模塊2.2.5商城模塊分析商場模塊分為三大類,有專輯,數(shù)碼和演出購票。在專輯購買中分有數(shù)字專輯和實體專輯,在數(shù)碼設(shè)備購買中分有頭戴式耳機,入耳式耳機和音箱,在演出購票中有分有演唱會,音樂會,還有舞臺劇。專輯,數(shù)碼和演出都以recycleview顯示,讀取云端數(shù)據(jù)庫獲取數(shù)據(jù),商品詳細分類由頂部導航欄,利用數(shù)據(jù)庫語句(addWhereEqualTo)判斷做分類。點擊各自的條目跳轉(zhuǎn)查看商品詳細消息,內(nèi)容下方注明商品來源,并設(shè)有鏈接,點擊跳轉(zhuǎn)至瀏覽器方可購買(此商城的商品均為轉(zhuǎn)載商品信息,如推薦的耳機,或即將上演的演唱會,提醒愛音樂之友前往購票)。圖2.6商城模塊

系統(tǒng)設(shè)計3.1UI設(shè)計3.1.1主界面設(shè)計主界面由一個activity和四個fragment組成,在activity中設(shè)置底部導航,控制四個fragment,點擊底部導航欄中的條目進行界面切換,分別是首頁,視頻,音樂,和用戶界面。在首頁的上方是圖片滑動輪播控件,設(shè)有廣告圖片輪播,點擊跳轉(zhuǎn)至瀏覽器,接著是按鈕條目,分別跳轉(zhuǎn)至資訊,歌單,歌手,商城,還有排行榜五個界面,接著是歌單推薦,新專輯推薦的recycleview,引用GridLayoutManager,三個條目為一行,利用數(shù)據(jù)庫語句limit(6),獲取六個對象,顯示圖片封面和文字標題,每個表單都有各自的適配器,數(shù)據(jù)庫表還有JavaBean。視頻界面為recycleview讀取Video表中的數(shù)據(jù),顯示圖片封面和視頻文字標題作為條目,同樣有獨自的適配器,數(shù)據(jù)庫表還有JavaBean。音樂界面設(shè)有本地音樂的入口,點擊顯示本地音樂列表,點擊條目播放歌曲。用戶界面設(shè)有登錄入口,點擊跳轉(zhuǎn),輸入用戶名和密碼,驗證通過則登錄成功,調(diào)取頭像等用戶數(shù)據(jù)。圖3.1主界面3.1.2分類列表界面設(shè)計在本項目中大量使用分類列表結(jié)構(gòu)的界面,其組成由一個activity和若干個fragment(根據(jù)需求設(shè)置fragment個數(shù)),運用到分類列表的界面有歌手界面,歌單界面,數(shù)碼商品界面,演出購票界面,專輯界面還有資訊界面。在activity上端設(shè)置頂部導航欄,點擊條目進行界面切換,各個fragment設(shè)有recycleview,利用Bmob數(shù)據(jù)庫語句(addWhereEqualTo)判斷表中數(shù)據(jù)分類,條目布局設(shè)計款式各異,但都遵循圖文結(jié)合的設(shè)計,既有線性布局,還有網(wǎng)格布局。圖3.2分類列表界面3.1.3詳細信息界面設(shè)計在點擊列表條目后跳轉(zhuǎn)詳細信息界面,其構(gòu)成有recycleview,image,textview,佐以MaterialDesign為設(shè)計框架,設(shè)置滑動頂部工具欄,讀取數(shù)據(jù)庫數(shù)據(jù)放入textview,image,recycleview中顯示。圖3.3詳細信息界面3.1.4音樂播放界面設(shè)計音樂播放界面分為兩種,一種是中心為歌曲所屬專輯的封面圖,界面上方為歌曲名稱還有歌手名,下方為歌曲播放控件,暫停,播放,還有進度條,另一種是以列表的形式列出歌曲,下方是控制器。圖3.4在線音樂播放圖3.5本地音樂播放3.1.5視頻播放界面設(shè)計視頻播放界面使用VideoView播放視頻,調(diào)取數(shù)據(jù)庫中的視頻播放地址,導入VideoView中,通過訪問網(wǎng)絡(luò)進行播放,旋轉(zhuǎn)手機屏幕便可全屏觀看。圖3.6視頻播放界面3.1.6用戶登錄界面設(shè)計用戶登錄界面設(shè)有兩個edittext,一個用于輸入賬號,另一個用于輸入密碼,將這兩個字符串用數(shù)據(jù)庫語句判斷查詢,(addWhereEqualTo)查詢表中是否存在該用戶名以及該用戶名對應(yīng)的密碼,若返回的數(shù)據(jù)條目大于零,則用戶登錄成功。(用戶名唯一,用戶ID唯一且自增)用戶注冊界面和忘記密碼界面的整體設(shè)計與用戶登錄界面大致相同,都由edittext和跳轉(zhuǎn)按鈕組成,而用戶登錄界面則擁有用戶頭像的ImageView,還有CheckBox用于記住密碼功能,當CheckBox為true時,如果登錄成功,則將用戶名,密碼,還有頭像保存在SharedPreferences中,當在下次登錄時能讓用戶省去輸入賬號密碼的時間,得以快速登錄。圖3.7登錄界面3.2數(shù)據(jù)庫設(shè)計Bmob后端云數(shù)據(jù)庫支持的數(shù)據(jù)類型:表3.1數(shù)據(jù)類型控制臺類型支持的JAVA類型說明StringString字符串類型BooleanBoolean布爾類型NumberInteger,F(xiàn)loat,Short,Byte,Double,Long,Character對應(yīng)數(shù)據(jù)庫的Number類型,要求是封裝類ArrayList數(shù)組類型FileBmobFileBmob特有類型,用來標識文件類型GeoPointBmobGeoPointBmob特有類型,用來標識地理位置DateBmobDateBmob特有類型,用來標識日期類型Pointer特定的繼承自BmobObject的對象Bmob特有類型,用來標識指針類型RelationBmobRelationBmob特有類型,用來標識數(shù)據(jù)關(guān)聯(lián)如果在Bmob后端云中設(shè)置的數(shù)據(jù)類型為String,則JavaBean中對應(yīng)的也是String,如果在后端云設(shè)置為Number,則JavaBean中對應(yīng)的會有Integer,F(xiàn)loat等多種數(shù)據(jù)類型。Bmob后端云中的列數(shù)據(jù)無法設(shè)置數(shù)據(jù)長度,所以在數(shù)據(jù)庫設(shè)計中不作數(shù)據(jù)長度限制。Bmob基本數(shù)據(jù)類型,每個新建的表中自動生成的4列數(shù)據(jù)。表3.2基本數(shù)據(jù)屬性解釋objectId數(shù)據(jù)唯一標識createdAt數(shù)據(jù)創(chuàng)建時間updatedAt數(shù)據(jù)更新時間ACL數(shù)據(jù)控制訪問限制自動生成,自動更新的4列數(shù)據(jù),無法刪除,也不需要在JavaBean中定義。3.2.1用戶表表名稱:User用于用戶注冊,登錄,找回密碼,編輯個人信息等功能。用戶首次注冊時頭像默認為0,手機號和郵箱都為空,需要在信息編輯頁面設(shè)置。當頭像為0時則是默認頭像,通過選用預設(shè)的頭像則替換頭像數(shù)值,現(xiàn)支持10個預設(shè)的頭像,分別對應(yīng)的1-10的數(shù)字,收藏歌單則是每位用戶自定義的歌曲列表,在試聽歌曲的時候,如果是喜歡的歌曲的話,點擊收藏就會添加該歌曲的id(Song表的歌曲id)到數(shù)組列表中,在我的收藏中顯示收藏的歌曲列表。表3.3用戶表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerUserName用戶名String唯一StringPassWord密碼StringStringHeadImage頭像Number默認值為0IntegerMobilePhoneNumber手機號碼StringStringEmail電子郵箱StringStringLoveSong收藏歌單ArrayList在項目中創(chuàng)建JavaBean,類名要與Bmob后端云項目中表名相一致(區(qū)分大小寫),并繼承BmobObject,數(shù)據(jù)名也要與Bmob后端云表中的列名相一致,然后自動生成getter和setter。圖3.8User表對應(yīng)的JavaBean18張數(shù)據(jù)表對應(yīng)18個JavaBean的類圖3.918個JavaBean3.2.2專輯表表名稱:Album用于商城中的專輯購買功能,封面為圖片的Uri地址,源自網(wǎng)絡(luò),類型則用于頂部導航欄的分類(本App的商城均作為導購功能,不設(shè)有任何支付功能)。在專輯列表條目中顯示專輯名稱,作者和封面。表3.4專輯表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerAlbumType專輯類型StringStringAlbumName專輯名稱StringStringAlbumArtist專輯作者StringStringAlbumCover專輯封面StringString3.2.3廣告表表名稱:Advertising用于app設(shè)置的廣告,鏈接用于點擊跳轉(zhuǎn)至瀏覽器所對應(yīng)的網(wǎng)址,封面也是Uri地址。表3.5廣告表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerAdLink廣告鏈接StringStringAdName廣告名稱StringStringAdInfo廣告信息StringStringAlbumCover廣告封面StringString3.2.4歌曲表表名稱:Song用于歌曲列表,覆蓋的領(lǐng)域有歌手個人頁面的歌曲列表,排行榜中的歌曲列表,歌單中的歌曲列表,專輯中的歌曲列表。還有就是用于歌曲列表跳轉(zhuǎn)之后的歌曲播放界面,歌曲資源和歌曲封面都為Uri地址。在列表中的各個條目顯示歌曲名稱和作者。表3.6歌曲表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerArtist歌曲作者StringStringSongCover歌曲封面StringStringSongName歌曲名稱StringStringSongRes歌曲資源StringStringAlbum歌曲專輯StringString3.2.5文章表表名稱:Article用于資訊功能,其中文章分區(qū)類型用于頂部導航欄分類,文章發(fā)表日期用于列表的排序(按日期數(shù)值排序,從大到小),文章封面和鏈接都為Uri地址,鏈接則用于跳轉(zhuǎn)瀏覽器網(wǎng)址,顯示原文地址和內(nèi)容。在文章列表的各個條目中顯示文章標題,發(fā)表日期,和封面。表3.7文章表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerArticleTitle文章標題StringStringArticleType文章分區(qū)類型StringStringArticleDate文章發(fā)表日期StringStringArticleCover文章封面StringStringArticleContent文章正文StringStringArticleLink文章鏈接StringString3.2.6藝人表表名稱:Artist用于歌手列表,歌手類型用于頂部導航欄的分類,照片則是Uri地址,歌手名稱則用于關(guān)聯(lián)Song表中對應(yīng)歌手名的歌曲。在歌手列表的各個條目中顯示歌手名稱和照片。表3.8藝人表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerArtistName歌手名稱StringStringArticleType歌手類型StringStringArticlePhoto歌手照片StringString3.2.7藝人排名表表名稱:ArtistRank用于歌手列表界面中的一個歌手排行的列表,照片同樣是Uri地址,歌手名稱也同樣是用于關(guān)聯(lián)Song表中對應(yīng)歌手名的歌曲,Id不僅用于辨識數(shù)據(jù),同樣是按Id大小為順序(Id為1的就是排名第一的歌手,以此類推,從小到大排序)。在歌手排名列表各個條目顯示歌手名稱和照片。表3.9藝人排名表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型Id排名Number主鍵IntegerArtistName歌手名稱StringStringArticlePhoto歌手照片StringString3.2.8數(shù)碼表表名稱:Digital用于商城中的數(shù)碼商品導購功能,數(shù)碼分區(qū)類型是頂部導航欄的分類,圖片是Uri地址,鏈接也是Uri地址,用于跳轉(zhuǎn)至瀏覽器原文地址進行購買(本App的商城均作為導購功能,不設(shè)有任何支付功能),其余的數(shù)據(jù)則為數(shù)碼商品的基本信息,供用戶查看。在數(shù)碼商品列表各個條目的數(shù)碼名稱,規(guī)格和圖片。表3.10數(shù)碼表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerPrice價格NumberFloatDigitalName數(shù)碼名稱StringStringDigitalType數(shù)碼分區(qū)類型StringStringDigitalImage數(shù)碼圖片StringStringSpecification數(shù)碼規(guī)格StringStringDescription數(shù)碼描述StringStringDigitalLink數(shù)碼購買鏈接StringString3.2.9演出表表名稱:LiveShow用于商城中演出的購票功能,頂部導航欄按演出類型進行分類,購票地址為信息提供的原文地址,用戶點擊跳轉(zhuǎn)至瀏覽器進行購買(本App的商城均作為導購功能,不設(shè)有任何支付功能),封面是Uri地址,其余的是該演出的基本信息,如時間,地點,人物等。在演出購票列表的條目中顯示演出名稱,藝人和封面。表3.11演出表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerLiveShowArtist演出藝人StringStringLiveShowName演出名稱StringStringLiveShowType演出類型StringStringLiveShowCover演出封面StringStringLiveShowDate演出日期StringStringLiveShowLink購票地址StringStringPrice價格StringStringDuration演出時長NumberIntegerLiveShowLocation演出地址StringString3.2.10排行榜表表名稱:Rank用于排行榜功能,封面為Uri地址,每條數(shù)據(jù)對應(yīng)一個榜單的名稱和封面。在排行榜列表各個條目的排行榜名稱和封面。表3.12排行榜表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerRankName排行榜名稱StringStringRankCover排行榜封面StringString3.2.11歌單表表名稱:SongList用于歌單功能的列表,歌曲列表以歌曲的數(shù)字ID組成的數(shù)組,關(guān)聯(lián)Song表中Id匹配的歌曲,在列表中點擊播放,歌單類型用于頂部導航欄的分類功能,歌單封面是Uri地址。在歌單列表各個條目顯示歌單名稱和歌單封面。表3.13歌單表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerSongListName歌單名稱StringStringSongListType歌單類型StringStringSongListCover歌單封面StringStringSongListId歌曲列表IDArrayList3.2.12歌曲榜單表(六個)表名稱:Rank_NewSong,Rank_HotSong,Rank_Original,Rank_UK,Rank_Billborad,Rank_DouYin其中包括新歌榜單,熱歌榜單,原創(chuàng)歌曲榜單,UK周榜,Billboard周榜,抖音周榜,這六個榜單結(jié)構(gòu)相同。歌曲名對應(yīng)Song表中名稱相對應(yīng)的歌曲,表名對應(yīng)Rank表中的Rank名稱和封面。表3.14歌曲榜單表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerAlbumName專輯名稱StringStringSongName歌曲名稱StringStringArtistName藝人名稱StringString3.2.13視頻表表名稱:Video用于視頻播放功能,視頻的封面,標題和藝人名稱對應(yīng)顯示在列表的條目中,點擊跳轉(zhuǎn)后視頻鏈接則是視頻播放器中的Uri地址。表3.15視頻表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerVideoArtist視頻藝人StringStringVideoTitle視頻標題StringStringVideoCover視頻封面StringStringVideoLink視頻鏈接StringString

系統(tǒng)實現(xiàn)4.1Bmob后端云的應(yīng)用4.1.1注冊Bmob后端云賬號在網(wǎng)址欄輸入進入Bmob后端云官方網(wǎng)站,點擊右上角的“注冊”,在跳轉(zhuǎn)頁面后輸入姓名,郵箱,還有設(shè)置密碼,點擊確認后到剛才所填寫的郵箱確認郵件即可激活Bmob賬號,也可以選擇第三方賬號進行登錄,如使用手機微信掃描二維碼進行微信登錄。4.1.2創(chuàng)建Bmob后端云應(yīng)用在注冊完賬號后,點擊右上角條目進入控制臺,接著點擊左上角創(chuàng)建應(yīng)用,輸入應(yīng)用名稱,選擇免費開發(fā)版。進入應(yīng)用,點擊左上角添加表,創(chuàng)建表,添加列數(shù)據(jù),可以導入數(shù)據(jù)。圖4.1進入應(yīng)用控制臺4.1.3導入Bmob后端云SDK在控制臺左側(cè)點擊設(shè)置,找到應(yīng)用密鑰,復制第一條ApplicationID已備后用。導入Bmob后端云SDK的方法有兩種,一種為手動導入,另一種為自動導入,我在此項目中使用的是自動導入(手動導入的方法在Bmob后端云官網(wǎng)的開發(fā)文檔中可以查看)。在Project的build.gradle文件中添加Bmob的maven倉庫地址,在app的build.gradle文件中添加依賴文件,在應(yīng)用程序的AndroidManifest.xml文件中添加相應(yīng)的權(quán)限。圖4.2添加權(quán)限在Activity的onCreat()方法中加入應(yīng)用密鑰,進行初始化應(yīng)用數(shù)據(jù)。4.2主界面模塊在build.gradle中添加依賴庫文件。圖4.3依賴庫文件4.2.1載入界面 先讓LoadingActivity繼承Activity,然后在onCreate方法中,在setContentView前添加視窗請求,調(diào)用requestWindowFeature()方發(fā)和getWindow().setFlags(),去除標題欄,隨后設(shè)置Handler(),添加Intent意圖延時跳轉(zhuǎn),跳轉(zhuǎn)后銷毀Activity,進入登錄界面。載入界面布局僅有ImageView,作為載入畫面。圖4.4載入畫面4.2.2登錄界面在LoginActivity.java的onCreate中定義各控件,并調(diào)用SharedPreferences,與CheckBox綁定,作為記住密碼功能,當勾選記住密碼且登錄成功時保存EditText中的賬號,密碼于SharedPreferences中,且將頭像,郵箱,和手機號碼保存到SharedPreferences中以備后用。圖4.5記住密碼功能利用Bmob后端云的數(shù)據(jù)庫語句判斷賬號和密碼。點擊確認后將賬號和密碼中的內(nèi)容是否為空,若是則彈出文字提示“內(nèi)容不能為空”,不再繼續(xù)進行語句,若都不為空,則進行判斷,是否存在一條數(shù)據(jù)的用戶名和密碼與輸入內(nèi)容相一致,若返回的數(shù)據(jù)條目不為0,則判斷記住密碼是否為真,若是則將其用戶資料保存到SharedPreferences中,若不是則不保存,隨后彈出文字提示“登錄成功”,延時1秒跳轉(zhuǎn)至主界面,若賬號密碼驗證沒有通過,則彈出文字提示“登錄失敗”,不做保存和跳轉(zhuǎn)操作。與登錄界面相類似的還有注冊頁面和忘記密碼頁面,在注冊界面中輸入賬號和密碼,點擊確認之后,判斷輸入框中內(nèi)容為非空,則將數(shù)據(jù)交到數(shù)據(jù)庫中判斷是否存在,如果提交的用戶名不存在,則將新的用戶名連同密碼一起添加到數(shù)據(jù)庫表中,插入一條新數(shù)據(jù),隨后跳轉(zhuǎn)至登錄界面,銷毀本活動。如果用戶名已在用戶表中存在,則彈出文字提示“該用戶已存在,注冊失敗”。在忘記密碼界面輸入用戶名,手機號碼,郵箱地址,還有新密碼,點擊確認之后,如果驗證成功,則將新密碼替換舊密碼,彈出文字提示“修改密碼成功”,如果驗證不成功,則彈出文字提示“驗證信息不正確”,如果新密碼前后兩次輸入不一致,則彈出文字提示“密碼兩次輸入結(jié)果不一致”,如果輸入框中有空白的,則彈出文字提示“內(nèi)容不能為空”,只有驗證通過,才會彈出文字提示“修改密碼成功,準備跳轉(zhuǎn)”,延遲兩秒后跳轉(zhuǎn)至登錄界面。右上角按鈕為跳轉(zhuǎn)至忘記密碼界面,左上角為跳轉(zhuǎn)至注冊界面。登錄功能,注冊功能,還有忘記密碼功能的驗證方法都是利用Bmob數(shù)據(jù)庫的查詢語句,查詢User表中是否存在與輸入條件相匹配的數(shù)據(jù),然后再進行或添加,或修改表數(shù)據(jù)的操作,三個界面可以自由的互相跳轉(zhuǎn),在三個界面分別操作之后,銷毀自身并跳轉(zhuǎn)。圖4.6登錄界面運行4.2.3主界面首先在主界面中定義四個Fragment。在onCreate()方法中引用addToList()方法,initView()方法和initFragment(),還有將四個Fragment加入到List中。在addToList()方法中判斷fragment是否為空,若不是則將fragment添加至fragment列表中。在initView()方法中定義各控件,F(xiàn)rameLayout為Fragment容器,四個RadioButton綁定點擊監(jiān)聽,作為底部導航欄。在initFragment()方法中初始化Fragment,將ExploreFragment設(shè)置為首頁。添加Fragment和顯示Fragment的兩個方法,避免fragment重疊等Bug。點擊監(jiān)聽方法的定義,點擊相應(yīng)的按鈕切換至相應(yīng)的Fragment,通過addFragment()和showFragment()方法,向列表中添加Fragment同時顯示Fragment。圖4.7底部導航欄點擊監(jiān)聽保存Fragment狀態(tài)的方法。該fragment不為空時,保存該fragment的狀態(tài)。圖4.8底部導航欄設(shè)計4.2.4發(fā)現(xiàn)界面圖片輪播功能,首先聲明以下三個元素,其中兩個是List,一個用于導航的圓點,一個是輪播的圖片和標題等數(shù)據(jù)列表。設(shè)置圖片輪播數(shù)組,利用第三方Fresco,加載高分辨率的圖片,并在onCreate()方法初始化Fresco。創(chuàng)建initEvent()方法,初始化圖片數(shù)據(jù)。創(chuàng)建三個方法,addDot(),fromResToDrawable(),還有addDots()方法。addDot()方法動態(tài)添加一個點,linearLayout添加到LinearLayout布局,backgount設(shè)置,小點的Id。fromResToDrawable()方法資源圖片轉(zhuǎn)Drawable,context上下文,resId資源ID,retur返回Drawable圖像。addDots()方法添加多個輪播小點到橫向線性布局,linearLayout線性橫向布局,backgount小點資源圖標,number數(shù)量,返回小點View集合歌單推薦和新歌速遞的兩個recycleview引用GridLayoutManager,使用網(wǎng)格布局,三個條目為一行,然后分別從SongList表和Album表查詢數(shù)據(jù),且分別使用HomeNewSongListAdapter和HomeNewSongAdapter兩個適配器,圖4.9RecycleView導航欄中的五個圖標,分別設(shè)置點擊監(jiān)聽,實現(xiàn)跳轉(zhuǎn)至各個頁面。其中一個適配器,與常見的RecycleView的適配器沒有什么區(qū)別。圖4.10發(fā)現(xiàn)界面運行4.2.5視頻界面在onCreate()方法定義視頻列表RecycleView,從Video表中查詢數(shù)據(jù),將數(shù)據(jù)添加到適配器中,由適配器將數(shù)據(jù)添加到RV條目中。布局設(shè)計只有一個RV。圖4.11視頻界面運行4.2.6音樂界面下面是音樂界面的布局,實現(xiàn)了本地音樂和我的收藏兩個功能,點擊本地音樂條目進行跳轉(zhuǎn),進入本地音樂播放界面,點擊我的收藏則進入自定義的收藏歌曲列表。聲明控件,簡單的點擊監(jiān)聽實現(xiàn)跳轉(zhuǎn)。圖4.12音樂界面運行4.2.7賬號界面在onCreate()方法中從SharedPreferences中讀取數(shù)據(jù),讀取用戶名和頭像。然后將編輯按鈕設(shè)置點擊監(jiān)聽實現(xiàn)跳轉(zhuǎn)。圖4.13賬號界面運行4.3分類界面本項目中有很多利用頂部導航欄和數(shù)據(jù)庫語句進行分類,RV按分類顯示的界面,我將其命名為分類界面,這些界面有資訊界面,專輯界面,數(shù)碼界面,演出界面,歌手界面,歌單界面,下面將以資訊界面為例,講解實現(xiàn)方法。4.3.1資訊界面首先它們都與主界面類似,都由一個activity和若干個fragment組成,在主activity中設(shè)有頂部導航欄,而子fragment中設(shè)有RV,利用數(shù)據(jù)庫語句和適配器實現(xiàn)數(shù)據(jù)分類,然后添加至RV列表條目中。Activity中的Java代碼結(jié)構(gòu)與4.2.4中一致,這里不再作詳解。布局的左上角為返回按鈕,點擊即返回至ExploreFragment,在返回按鈕下方的就是頂部導航欄,點擊相應(yīng)的條目,即可切換至對應(yīng)分類的fragment。圖4.14資訊主activity的布局設(shè)計在各個fragment界面中設(shè)有各自的分類語句,其實也只是很簡單的數(shù)據(jù)庫語句與頂部導航fragment相結(jié)合。首先初始化Bmob后端云應(yīng)用,然后引用Article表,查詢ArticleType等于“專輯”的數(shù)據(jù),即分類為專輯的數(shù)據(jù),然后按日期以倒序的方式排序,放入對應(yīng)的適配器中形成相應(yīng)的條目并顯示。與頂部導航欄相對應(yīng),6個條目分別對應(yīng)6個Fragment。文章中的內(nèi)容來源均來自于網(wǎng)絡(luò),如有類似或有誤,敬請見諒,本項目僅用于學習。圖4.15資訊界面運行4.3.2其余的分類界面其余的分類界面結(jié)構(gòu)與4.3.1所講解的沒有太大的區(qū)別。歌單分類對應(yīng)的是SongList表,演出分類對應(yīng)的是LiveShow表,數(shù)碼分類對應(yīng)的是Digital表,歌手分類對應(yīng)的是Artist表,專輯分類對應(yīng)的是Album表。圖4.16其余分類界面舉例展示4.4正文界面本項目中,在點擊RV條目后跳轉(zhuǎn)的界面我統(tǒng)一命名為正文界面。運用到正文界面有演出購票信息界面,數(shù)碼購買信息界面,專輯信息界面,歌手信息界面,歌單信息界面,資訊詳細界面,排行榜信息界面等,下面舉例說明演出購票信息界面。4.4.1演出詳細界面詳細信息界面運用了MetalDesign設(shè)計理念,運用到了折疊標題欄,應(yīng)用標題欄等控件,下面是界面布局設(shè)計。圖4.17演出詳細界面布局聲明的字符串“id”為上一個界面的RV中的條目傳送過來的LiveShow表中的id,用getIntent()來接收,隨后就是聲明activity中的各個控件,利用Bmob數(shù)據(jù)庫語句查詢對應(yīng)id的行數(shù)據(jù),將查詢得到的數(shù)據(jù)一一寫入各控件中。圖片的Uri則需調(diào)用重寫的getBitmap()方法,將Uri地址放入BitmapFactory()轉(zhuǎn)化為Bitmap,再由Bitmap轉(zhuǎn)為Image,而鏈接則設(shè)置了點擊監(jiān)聽跳轉(zhuǎn)瀏覽器至原文地址,這樣信息就讀取完成了。將數(shù)據(jù)庫中獲取的圖片Uri地址放入BitmapFactory,并設(shè)置網(wǎng)絡(luò)連接超時設(shè)置,用try和catch環(huán)繞,并拋出異常,如轉(zhuǎn)換成功就將Bitmap回傳。圖4.18演出購票界面運行圖4.19跳轉(zhuǎn)至瀏覽器界面4.4.2其余的正文界面其余的正文界面展示,基本都是和4.4.1的方法一樣,將對應(yīng)的數(shù)據(jù)表數(shù)據(jù)讀取出來,再放入布局的控件中,或是TextView,或是ImageView,亦或是RecycleView,組成各自的正文界面。圖4.20其余的正文界面4.5其它功能界面其他功能界面中包闊許多零散的界面,沒有結(jié)構(gòu)套用,大多為承擔重要作用的界面,這些界面有:用戶信息編輯界面(頭像,郵箱,電話設(shè)置),在線音樂播放界面,本地音樂播放界面,網(wǎng)絡(luò)視頻界面,排行榜界面,商城界面,搜索界面。4.5.1用戶信息編輯界面在onCreate()方法中調(diào)用SharedPreferences中保存的用戶名和頭像,郵箱和電話,分別顯示在那三個條目中,并且在點擊條目跳轉(zhuǎn)時攜帶數(shù)據(jù)跳轉(zhuǎn),并且在返回時攜帶更新后的數(shù)據(jù)。在點擊保存按鈕時查詢User表,查找到表中對應(yīng)的用戶的ObjectId,然后再根據(jù)ObjectId更新表中的用戶頭像,郵箱,和電話,并且更新SharedPreferences中保存的數(shù)據(jù)。跳轉(zhuǎn)使用startActivityForResult,按結(jié)果碼和請求碼發(fā)送請求和接收結(jié)果。下面是用戶信息編輯界面的布局,首先是左上角的返回按鈕,點擊之后返回至上個界面(不作保存),然后就是三個條目,分別是頭像,郵箱,和電話,點擊后跳轉(zhuǎn)至編輯界面,再修改完信息后,點擊保存按鈕才算修改成功,保存后跳轉(zhuǎn)回首頁。點擊用戶信息界面的編輯按鈕,跳轉(zhuǎn)至用戶信息編輯界面。圖4.21用戶信息編輯界面運行在onCreate()方法中聲明各控件和工具欄,并且接收上個界面?zhèn)鱽眍^像數(shù)據(jù),并顯示出來。然后重寫onCreateOptionsMenu()方法,實例化自定義菜單,然后設(shè)置條目點擊監(jiān)聽,返回攜帶數(shù)據(jù),還有根據(jù)頭像條目點擊后更新頭像。圖4.22頭像編輯界面布局點擊右上角菜單按鈕展開菜單條目,點擊相應(yīng)的條目顯示對應(yīng)的頭像,并顯示出來,然后點擊左上角返回按鈕即可將頭像數(shù)據(jù)攜帶返回上一個界面。圖4.23選取小熊貓頭像在郵箱編輯界面,只有返回按鈕和EditText,將傳過來數(shù)據(jù)顯示在EditText中,在修改過后點擊左上角返回并攜帶數(shù)據(jù)。郵箱和電話編輯界面沒太多差別。圖4.24編輯界面運行圖4.25更新頭像4.5.2在線音樂播放界面在點擊各歌曲列表中的條目即可跳轉(zhuǎn)音樂播放界面,從列表條目傳送歌曲名”name”,根據(jù)歌曲名查詢Song表中歌名相匹配的歌曲,讀取其封面并顯示,讀取其歌曲資源地址,并進入準備播放狀態(tài),聲明VideoView并引用MediaController。除此之外還要重寫MediaController的setMediaPlayer(),show(),hide(),和dispatchKeyEvent()方法。根據(jù)登錄的用戶,查詢User表中該用戶的收藏歌單,判斷目前界面的歌曲是否存在于收藏歌單中,如果是的話激活CheckBox按鈕,如果不是則反之,然后設(shè)置CheckBox的點擊監(jiān)聽,存在兩種執(zhí)行方式,一種是添加收藏,另一種是取消收藏,通過更改該用戶在User表中LoveSong列的數(shù)據(jù),實現(xiàn)歌曲收藏的操作,執(zhí)行操作時伴隨著吐司提示。左上角是返回鍵,頂部為歌曲名,中心是封面圖,右上角為自定義樣式的CheckBox,用于歌曲收藏。圖4.26音樂播放界面布局從吳亦凡的歌手個人頁面中點擊《大碗寬面》這首歌的條目,即可跳轉(zhuǎn)至音樂播放界面,點擊播放播放按鈕即可播放歌曲,可以通過拖動進度條進行快進或后退。此時右上角的愛心為未激活的狀態(tài),如果點擊它就可以把歌曲添加到收藏的歌單中,可供以后可以隨時欣賞這首歌,如果再次點擊右上角則會取消收藏。圖4.27音樂播放界面運行4.5.3歌曲收藏列表從SharedPreferences中獲取登錄的用戶名,查詢User表中對應(yīng)的用戶,得到他的收藏歌單,然后查詢Song表中歌曲id相匹配的歌曲,生成列表,這里用到了addWhereContainedIn()方法,是專門用于多個結(jié)果的判斷語句,所以用于判斷列表時非常適用。圖4.28收藏歌單運行布局的只有左上角的返回按鈕以及正文部分的歌曲列表RV,RV的布局以及適配器也是引用之前的布局和適配器。點擊《大碗寬面》的條目跳轉(zhuǎn)進入播放界面,此時收藏按鈕正處于激活狀態(tài),再次點擊收藏按鈕就可以取消收藏。4.5.4商城界面從Advertising表中讀取數(shù)據(jù),將圖片顯示出來,共6張圖片。商城界面由首頁的導航欄點擊商城按鈕后跳轉(zhuǎn),商城界面實質(zhì)為專輯界面,演出界面和數(shù)碼界面的中轉(zhuǎn)界面。下面是商城界面的布局,左上角是返回按鈕,點擊返回上一個界面,接著就是廣告圖片輪播控件,實現(xiàn)方法與4.2.4所說的一致,然后就是導航欄中的三個按鈕,分別跳轉(zhuǎn)至專輯界面,數(shù)碼界面和演出界面,再接著就是一些音樂產(chǎn)品的廣告圖片鏈接,點擊后跳轉(zhuǎn)至瀏覽器中的原文地址。圖4.29商城界面運行4.5.5排行榜界面由于都是各種Image和Text,所以在onCreate()需要一一對各控件進行聲明。初始化應(yīng)用,然后查詢Rank_NewSong表中的前三個數(shù)據(jù),得到新歌榜中的前三名,顯示在新歌榜單封面對應(yīng)的布局的文字中,以此類推,重復以下操作,看似繁瑣,實則方便管理,方便數(shù)據(jù)庫表的更新。這是查詢Rank表中的數(shù)據(jù)并顯示各榜單封面,然后設(shè)置各Layout的點擊監(jiān)聽跳轉(zhuǎn),攜帶歌單封面對應(yīng)的行“id”,用于下一個界面讀取對應(yīng)的表數(shù)據(jù)。下面是排行榜界面的布局,雖然排行榜的布局與RV相似,但是為了管理方便,每個排行榜都有各自的數(shù)據(jù)庫表和JavaBean,所以在代碼設(shè)計上設(shè)計成每一個獨立的Layout,由封面圖片和文字組成,6張封面圖來自Rank表,榜一榜二榜三的文字信息來自各自的表數(shù)據(jù),如新歌表的數(shù)據(jù)來自Rank_New表。左上角按鈕為返回上一界面。點擊各個條目實現(xiàn)跳轉(zhuǎn)各排行榜單列表。圖片中的榜單數(shù)據(jù)均為本人虛構(gòu)的數(shù)據(jù),不具有真實性。圖4.30排行榜界面運行4.5.6本地音樂播放界面本地音樂播放功能我參考了網(wǎng)上的一個博主提供的一個音樂播放框架,本人將其修改過后運用到項目當中,稍后會在參考文獻處列出原文地址。下面我們開始分析這個本地音樂播放界面的具體實現(xiàn)方法。由于代碼過于繁多,接下來不會一一說明。首先要實現(xiàn)掃描本地音樂功能,將手機中存放的音樂進行抽象,所以我們需要創(chuàng)建一個javabean。自動生成getter和setter方法然后創(chuàng)建一個工具類,對手機內(nèi)存進行掃描,將掃描得到的音頻文件放入List中,其中會過濾掉短音頻,不加入到列表中。圖4.31歌曲工具類根據(jù)本地音樂播放界面的ListView編寫一個適配器,MyAdapter繼承自BaseAdapter。此處的ListView條目布局不予展示,很常見,僅顯示序號,歌曲名,歌手名,歌曲長度的文字說明。下面是本地音樂播放界面的布局,右上角按鈕為控制播放模式,一共有3種播放模式,默認是單曲循環(huán),每當點擊一次按鈕就會切換模式并改變圖標的同時出示吐司,另外兩種播放模式分別是順序播放和隨機播放。文字部分則隨著播放的歌曲而改變,主體為ListView,是掃描手機內(nèi)存得出的歌曲列表,點擊條目即可播放,下方為控制按鈕,有進度條,播放暫停等控制按鈕。圖4.32本地音樂播放界面布局首先是實現(xiàn)歌曲的播放,當點擊ListView條目時,初始化歌名,歌手名和進度條,切換播放按鈕的圖片,唱片開始轉(zhuǎn)動。對ListView條目的點擊監(jiān)聽。圖4.33ListView點擊監(jiān)聽播放模式的切換,就是右上角播放模式按鈕的點擊監(jiān)聽。上一首和下一首按鈕的點擊監(jiān)聽,在切換歌曲時,判斷當前選用的播放模式,當播放模式是隨機播放的時候,切換歌曲時也是隨機切換,如果不是,則按順序切換,當歌曲播放完畢時,按照播放模式自動切換,自定義SeekBar,對歌曲播放的進度的活動監(jiān)聽。圖4.34播放音樂以上就是本地音樂界面的主要方法(省略了部分方法沒有展示,還刪減了大部分原有的功能,留下了最基礎(chǔ)的音樂播放功能),下面是運行截圖。圖4.35本地音樂播放運行4.5.7視頻播放界面視頻播放界面的布局,以黑色背景的FrameLayout為容器,容器中是用于播放視頻的VideoView。在java文件中接收由上一個界面?zhèn)鱽淼囊曨lid,然后通過數(shù)據(jù)庫語句在Video表中查詢Id相匹配的視頻,獲取其視頻播放地址,放入VideoView控件中播放,VideoView加載原生MediaController進行控制。點擊條目跳轉(zhuǎn)播放對應(yīng)的視頻,當手機是豎屏的時候為中心小窗口播放,當手機是橫屏時就成為全屏播放,幾秒后控制器自動收起,點擊屏幕控制器自動彈出,可以進行暫停,快進,倒退,拖動進度條的操作。圖4.36豎屏播放圖4.37橫屏播放4.5.8搜索框雖然我在項目中設(shè)有搜索框功能,但是還沒有應(yīng)用到實際運作中。下面就簡單展示一下搜索框功能。首先在搜索框界面布局中使用第三方控件SearchView。接著在Activity中加入以下代碼就算完成了,只是初始化搜索框變量,綁定控件,設(shè)置點擊監(jiān)聽而已。因為核心代碼部分已經(jīng)由導包所完成了。(此第三方控件的依賴庫導入已經(jīng)在上文中展示)。在輸入框內(nèi)輸入內(nèi)容,當輸入框內(nèi)有內(nèi)容時,右側(cè)會顯示清除按鈕,點擊右側(cè)清除按鈕就會清除輸入框內(nèi)的文本內(nèi)容,點擊小鍵盤右下角的回車按鈕就會生成搜索記錄,并顯示在搜索框下方,點擊“清除搜索歷史”按鈕就會清除搜索記錄。圖4.38搜索框功能運行

結(jié)論和未來方向5.1研究成果在本項目中主要實現(xiàn)了以Android為客戶端,Bmob后端云為云端后臺管理系統(tǒng),通過在Android連接Bmob云端數(shù)據(jù)庫,在Bmob后端云平臺的網(wǎng)頁上,對數(shù)據(jù)庫表進行可視化操作,實現(xiàn)實時更新的效果,用戶能夠在客戶端體驗到實時更新的音樂相關(guān)的資訊新聞,歌手藝人的動態(tài)八卦,最新發(fā)布的歌曲,專輯,演唱會,還有視頻MV,數(shù)碼產(chǎn)品的推薦文章。如果用戶安裝了此應(yīng)用,就能夠體驗到基本的本地音樂播放器的功能,把存放在手機內(nèi)存和SD卡中的音頻文件列出來形成播放列表,用戶可以自由的播放音樂,于此同時,瀏覽最新發(fā)布的音樂資訊,流行藝人的動態(tài),小道的八卦消息,專輯發(fā)布的消息,數(shù)碼產(chǎn)品的測試推薦帖,現(xiàn)場演出的購票信息,最受歡迎的歌手榜單,還有試聽各大排行榜單的熱曲,各國明星歌手的熱曲,最新專輯的新曲,遇到自己喜歡的歌曲,可以收藏到自己的歌單中,以后隨時可以播放。此應(yīng)用既可以當作音樂播放器使用,同時也是一個瀏覽資訊的好地方,聽音樂和看資訊兩不誤。經(jīng)過了這次獨立完成一個功能完整Android項目,讓我學到了很多以前從來沒有了解過的知識,要完成一個完整的App,需要考慮的很多方面大大小小的事情,大到整個應(yīng)用的結(jié)構(gòu)規(guī)劃,小到一個界面的布局,都需要慎重的考慮和斟酌,進行多次的修改才能定下初始的模板,隨著后面的開發(fā),前面所寫的界面也會隨有大大小小的修改。在開發(fā)過程中遇到的困難也是很常見,比如一些粗心大意的小錯誤,在運行的時候就會報錯,在查看logcat之后就能輕松解決,縱使是再小的Bug,心里未免會感到失落和焦慮。當遇到重大的技術(shù)難題時,往往不能馬上解決,時而用上一個下午的時間上網(wǎng)查資料,分析代碼,時而花上一兩天的時間,也未必能夠完美解決問題,雖然為此非常的苦惱,但是每當解決問題的時候,都會感到很開心并且會給自己加油鼓勁。5.2問題缺陷和改善缺陷:本項目的在線音樂播放的資源均來自于網(wǎng)絡(luò),該資源地址會在一天內(nèi)失效,失效后需要重新獲取地址才能正常播放,所以要經(jīng)常進行維護,手動獲取地址然后進行更新。解決:最好的解決方法是將音頻文件上傳到Bmob后端云服務(wù)器,但由于涉及相關(guān)法律,作者需要出示相關(guān)證明和域名進行登記,現(xiàn)今缺少域名服務(wù)器,所以暫時無法解決。缺陷:音樂播放界面和視頻播放界面功能比較簡陋。解決:暫時無法解決,還需學習自定義控件,自定義播放器,或者使用第三方播放器。缺陷:沒有把歌曲與其配套的MV視頻進行關(guān)聯(lián)。解決:暫時無法解決。缺陷:用戶與用戶之間缺少互動,沒有評論功能。解決:暫時無法解決,Bmob后端云的資源容量不足,且工作量比較龐大。缺陷:界面布局不夠精美。解決:需要繼續(xù)學習,嘗試開發(fā)更多自定義控件。5.3未來方向在未來希望能夠建立一個專用的服務(wù)器,存放各種歌曲的音頻和視頻,可供App進行播放,以及開發(fā)功能強大的音頻播放器和視頻播放器。在資訊新聞方面能夠繼續(xù)發(fā)展更多的模塊,能夠覆蓋更多音樂相關(guān)的領(lǐng)域,發(fā)布更多有趣的新聞資訊。在歌曲,視頻,資訊等各方面實現(xiàn)用戶的評論功能,加強用戶之間的互動。在音樂這一領(lǐng)域的功能做好,展現(xiàn)應(yīng)用自身的優(yōu)點,發(fā)展自己的長處,在應(yīng)用市場上散發(fā)自己獨特的光芒。

參考文獻郭霖,《第一行代碼》——Android(第二版)[M],人民郵電出版社,2016-12-01Bmob后端云,Android開發(fā)文檔[Z],Bmob開發(fā)文檔中心/data/android/develop_doc/#4,2019-04-22黃慶慶,安卓開發(fā)個人小作品(3)-多功能音樂播放器[Z],CSDN博客/hq942845204/article/details/80148187,2018-04-30XeonYu,fragment重疊的完美解決方案[Z],CSDN博客/yuzhiqiang_1993/article/details/75014591,2017-07-15憂郁白襯衫,AndroidViewPager實現(xiàn)圖片標題輪播和點擊事件[Z],博客園/luhuan/p/8047098.html,2018-09-27Carson_Ho,Android開源實戰(zhàn):一個簡單&好用的搜索框(含歷史搜索記錄)[Z],簡書/p/590f00025de3,2017-08-23王國輝,Android開發(fā)從入門到精通(項目案例版)[Z],/video/av22836860,2018-05-01

致謝這次的畢業(yè)設(shè)計,是我在大學四年內(nèi)做過的功能最強大,界面最精美,工作量最大,技術(shù)層面最廣泛,結(jié)構(gòu)最完整的項目了,既是對自己的一個挑戰(zhàn),也是對自己的一個證明。在最后,要感謝大學四年來老師們的辛勤教導,讓我學到了豐富的專業(yè)知識,養(yǎng)成了良好的編碼習慣。在這次的畢業(yè)設(shè)計進行過程中,指導老師給予了我良好的建議,有助于我完成這次的畢業(yè)設(shè)計開發(fā)和畢業(yè)論文的編寫,再一次感謝。

電腦無法識別U盤該怎么辦HYPERLINK電腦無法識別U盤怎么辦?打開我的電腦上單擊右鍵,在快捷菜單里,選擇“管理”,打開“計算機管理”窗口。在計算機管理窗口里,選擇“存儲”下面的“磁盤管理”,如果看得到?jīng)]有盤符的U盤,那么在這個U盤上按鼠標右鍵,選擇“更改驅(qū)動器名稱和路徑”選項,就打開了“更改……的驅(qū)動器號和路徑”對話框。再點擊“更改”按鈕,打開“更改驅(qū)動器號和路徑”的對話框,在“指定以下驅(qū)動器號”的右邊下拉列表里,選擇你希望分配給U盤的驅(qū)動器號,盡可能靠后選擇,比如X、Y、Z,選擇好后,單擊確定按鈕,回到上一次“更改……的驅(qū)動器號和路徑”對話框窗口,再一次單擊確定,就回到“計算機管理”窗口。至此,如果一切正常,就給U盤單獨設(shè)置了一個長久使用的驅(qū)動器號,并卻,不受虛擬驅(qū)動器的影響了。建議將U盤插到電腦上,看任務(wù)欄中是否顯示圖標,如果顯示,在我的電腦點右鍵查看屬性——高級——硬件——設(shè)備管理器——查看里面是否有問號的設(shè)備,在問號設(shè)備上點右鍵——更新驅(qū)動程序然后下一步——否暫時不連接到網(wǎng)絡(luò)——下一步自動安裝軟件(推薦)就可以了另外:系統(tǒng)不認U盤的幾種處理方法1.禁用主板usb設(shè)備。管理員在CMOS設(shè)置里將USB設(shè)備禁用,并且設(shè)置BIOS密碼,這樣U盤插到電腦上以后,電腦也不會識別。這種方法有它的局限性,就是不僅禁用了U盤,同時也禁用了其他的usb設(shè)備,比如usb鼠標,usb光驅(qū)等。所以這種方法管理員一般不會用,除非這臺電腦非常重要,值得他舍棄掉整個usb總線的功能。但是這種屏蔽也可以破解,即便設(shè)置了密碼。整個BIOS設(shè)置都存放在CMOS芯片里,而COMS的記憶作用是靠主板上的一個電容供電的。電容的電來源于主板電池,所以,只要把主板電池卸下來,用一根導線將原來裝電池的地方正負極短接,瞬間就能清空整個CMOS設(shè)置,包括BIOS的密碼。隨后只需安回電池,自己重新設(shè)置一下CMOS,就可以使用usb設(shè)備了。(當然,這需要打開機箱,一般眾目睽睽之下不大適用~~)2.修改注冊表項,禁用usb移動存儲設(shè)備。打開注冊表文件,依次展開"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbehci”雙擊右面的“Start”鍵,把編輯窗口中的“數(shù)值數(shù)據(jù)”改為“4”,把基數(shù)選擇為“十六進制”就可以了。改好后注銷一下就可以看見效果了。為了防止別人用相同的方法來破解,我們可以刪除或者改名注冊表編輯器程序。提示:“Start”這個鍵是USB設(shè)備的工作開關(guān),默認設(shè)置為“3”表示手動,“2”是表示自動,“4”是表示停用。3.在computermanagement里將removablestorage的使用權(quán)限禁止。computermanagement是一個windows管理組件,可以在控制面板——管理工具——計算機管理打開。在該工具窗口中storage——removablestorage——property中,general項,可以控制系統(tǒng)托盤是否顯示security則可以管理移動存儲設(shè)備的使用權(quán)限。在security中將普通用戶的使用權(quán)限降低,就可以達到禁用u盤的目的。破解的方法也很簡單,管理員降低普通用戶移動存儲設(shè)備的使用權(quán)限,但未必禁用computermanagement的使用權(quán)限。普通用戶可以通過這個工具解除usb移動存儲設(shè)備的使用權(quán)限限制。另外,值得一提的是,如果u盤插到電腦上后可以驅(qū)動,但是我的電腦里卻沒有盤符,很有可能是管理員改動了u盤的默認盤符,使得我的電腦不能識別。這種情況,可以在movablestorage中看到u盤驅(qū)動器??梢栽趗盤驅(qū)動器屬性設(shè)置里為u盤重新分配一個盤符,再重新插拔一次u盤,就可以在我的電腦里看到u盤的盤符了。一、首先可以將該U盤換到別的機器上,看使用是否正常。如果排除了硬件損壞的可能,一般就是軟件方面有問題。在WindowsXP+SP1操作系統(tǒng)下,有些USB2.0設(shè)備的確常常出現(xiàn)工作不穩(wěn)定的問題,可以試試安裝設(shè)備自帶的USB2.0驅(qū)動程序。另外最好不要使用USB延長線,防止因為供電不足而造成不穩(wěn)定現(xiàn)象。如果仍無效,可以在主板BIOS設(shè)定中,將USB接口強行設(shè)置為USB1.1傳輸速率。二、(適用于WIN98)啟動計算機,進入主板BIOS設(shè)置,檢查BIOS中USB的相關(guān)選項是否已經(jīng)打開:OnChipUSB設(shè)定為Enabled;USBController設(shè)定為Enabled;PNPOSInstalled設(shè)定為Yes;AssignIRQForUSB設(shè)成Enabled。要正常使用USB設(shè)備首先要開啟USB接口,在主板BIOS里可以進行此項工作,一般來說只需在BIOS中進入ChipsetFeatures設(shè)置,并將USBKeyborad/MouseLegacy選項設(shè)定為Enable,就能夠保證在操作系統(tǒng)下使用USB鍵盤了。這些選項的作用是打開主板芯片組對USB設(shè)備的完全支持,為系統(tǒng)識別USB設(shè)備做準備工作。三、USB口接觸不好處理辦法:拔下,等十秒鐘再插上USB口,使接觸完好;五、閃存盤驅(qū)動程序沒有安裝完成(WIN98系統(tǒng)下)處理辦法:鼠標點“我的電腦”,選擇屬性找到“通用串行總線”,刪除其中的USBMASSSTORAGE項,再點擊“刷新”,然后按照提示重新安裝一次驅(qū)動程序。六、接其它USB設(shè)備(如掃描儀、打印機、數(shù)碼相機)時可以正常使用,接優(yōu)盤時閃指示燈不亮,不能夠使用。1、檢查優(yōu)盤與電腦的聯(lián)接是否正常,并換用其它USB接口測試。2、檢查設(shè)備管理器,看是否出現(xiàn)”通用總線設(shè)備控制器”條目,如果沒有,請將電腦主板BIOS中USB接口條目*激活(ENABLE)。3、如果電腦安裝過其它類型USB設(shè)備,卸載該設(shè)備驅(qū)動程序,并首先安裝優(yōu)盤驅(qū)動程序。4、到其它電腦試用此優(yōu)盤,確認是否優(yōu)盤不良。七、啟動型優(yōu)盤在的電腦上無法實現(xiàn)啟動,可能是主板型號不支持。如何判斷一塊主板是否支持閃存盤啟動系統(tǒng)啟動型優(yōu)盤是采用模擬USB軟驅(qū)和USB硬盤的方式啟動電腦的。只要電腦主板支持USB設(shè)備啟動,即BIOS的啟動選項中有USB-FDD、USB-HDD或是其它類似的選項,就可以使用啟動型優(yōu)盤啟動電腦。八、第一次在電腦上使用優(yōu)盤,未出現(xiàn)提示發(fā)現(xiàn)新硬件的窗口,驅(qū)動程序無法安裝的原因可能是:1、主板usbcontroller未啟用解決辦法:在電腦主板BIOS中啟用此功能。2、usbcontroller已經(jīng)啟用但運行不正常解決辦法:在設(shè)備管理器中刪除”通用串行控制器”下的相關(guān)設(shè)備并刷新。3、優(yōu)盤被電腦識別異常,在設(shè)備管理器中表現(xiàn)為帶有黃色?或!的”其它設(shè)備”或“未知設(shè)備”。解決辦法:刪除此設(shè)備并刷新。九、大容量的U盤(例如兼具MP3播放器或錄音功能的U盤)或移動硬盤在電腦上無法正常使用,雖然系統(tǒng)提示找到了未知的USB設(shè)備,但無法正確識別U盤或移動硬盤。原因可能是:1.USB接口供電不足:系統(tǒng)為每個USB接口分配了500mA的最大輸出電流,一般的U盤只需要100mA的工作電流,因此在使用過程中不會出現(xiàn)什么問題。大多數(shù)移動硬盤所使用的是普通的2.5英寸硬盤,其工作電流介于500mA~1000mA之間,此時假如僅僅通過USB接口供電,當系統(tǒng)中并無其他USB設(shè)備時,那么還是可以勉強使用的,但如果電壓不穩(wěn)的話,就隨時可能出現(xiàn)供電不足的問題。特別是使用支持USB2.0的移動硬盤時,情況最為嚴重。另外,如果你的筆記本電腦使用電池供電,那么USB接口所分配的電量就更小了。2.使用了外接的USB擴展卡:在筆記本電腦中使用USB2.0的U盤或移動硬盤時,如果筆記本電腦不支持USB2.0技術(shù),一般必須通過PCMCIA卡轉(zhuǎn)USB2.0的擴展卡來間接實現(xiàn)支持,這些擴展卡基本上都采用NEC公司的D720100AGMUSB控制芯片,少則提供兩個USB2.0接口,多則提供五個USB2.0接口,對一般用戶而言足夠使用了。由于PCMICA接口提供的電源功率比板載USB接口要小,這樣就會由于供電不足而導致移動硬盤工作的出現(xiàn)問題。解決方案:1.它從USB連接線上接移動硬盤的一端引出一根轉(zhuǎn)接線,可以插入電腦背后的PS/2接口取電,這里可以比USB接口提供更大的電流輸出。2.利用電源補償線(也稱“鍵盤取電線”),如果U盤或移動硬盤的包裝盒中提供了選配的電源適配器,你就可以直接使用外接電源,這樣就可以從根本上避免供電不足的情況發(fā)生了前置USB線接錯。當主板上的USB線和機箱上的前置USB接口對應(yīng)相接時把正負接反就會發(fā)生這類故障,這也是相當危險的,因為正負接反很可

溫馨提示

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

評論

0/150

提交評論