版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要在這個(gè)智能手機(jī)技術(shù)和通訊技術(shù)飛速發(fā)展的時(shí)代,人們的生活越發(fā)地離不開智能手機(jī),并且貫穿在人們的工作,生活,娛樂等各個(gè)方面。負(fù)責(zé)開發(fā)手機(jī)軟件的公司,會(huì)根據(jù)市場(chǎng)需求,開發(fā)各種手機(jī)軟件來滿足人們生活的需要,而Android系統(tǒng)在只能手機(jī)市場(chǎng)的占有率達(dá)到了71%,也就是每10個(gè)擁有手機(jī)的人里面就有7個(gè)人是使用安卓手機(jī)。我相信聽音樂是每個(gè)人的興趣之一,而看資訊則是人們每天在這信息時(shí)代里不可缺少的一部分,所以我打算將兩者的核心功能相結(jié)合,來滿足有需要的人群。本項(xiàng)目的主要目的是致力于開發(fā)一款聽音樂,看MV,看資訊結(jié)合于一體的一款音樂app,將安卓客戶端與Bmob云端數(shù)據(jù)庫(kù)相結(jié)合。讓用戶享受一種全新的體驗(yàn),在同一個(gè)app里,一邊聽音樂,一邊看音樂相關(guān)的資訊,了解音樂圈的大小事。在這里可以知道官方發(fā)布的新聞,可以了解外界媒體介紹的新聞,還可以直接了解自己喜歡的歌手發(fā)布的動(dòng)態(tài),在瀏覽新專輯的介紹時(shí)直接試聽,在瀏覽明星八卦時(shí)試聽該歌手的熱曲,創(chuàng)建屬于自己的個(gè)性歌單,享受音樂給我們帶來的快樂。關(guān)鍵詞:安卓Bmob后端云手機(jī)應(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)今國(guó)內(nèi)的手機(jī)市場(chǎng)上,使用Android系統(tǒng)的手機(jī)約占據(jù)總體的85%,而IOS系統(tǒng)占比約為14%,剩下的1%是其它各種少見的系統(tǒng)。安卓系統(tǒng)秉承其免費(fèi)的系統(tǒng)以及開源的方式受到國(guó)內(nèi)智能手機(jī)制造商的強(qiáng)烈追捧,正因其操作系統(tǒng)免費(fèi)的優(yōu)點(diǎn)使得手機(jī)的制作成本很低,從而安卓系統(tǒng)的智能手機(jī)直接壟斷國(guó)內(nèi)中低端手機(jī)市場(chǎng),也同時(shí)的大大促進(jìn)了中國(guó)智能手機(jī)的發(fā)展。而開源的系統(tǒng)給我們帶來巨大的便利,我們可以根據(jù)自己的想法和需求修改代碼,無形中大大促進(jìn)了軟件和系統(tǒng)的發(fā)展。正是這種人人都能進(jìn)行開發(fā)的狀態(tài),各式各樣的安卓app才會(huì)源源不斷的涌現(xiàn)出來。1.2研究現(xiàn)狀如今市面上有各種五花八門的手機(jī)app,針對(duì)同一種功能從而衍生出來各種app,企圖在軟件市場(chǎng)上爭(zhēng)奪一席之地,比如在近幾年迅速躥紅的短視頻軟件,抖音和快手等短視頻軟件,它們都是在短視頻領(lǐng)域衍生出來的并且在市場(chǎng)上具有一定地位的手機(jī)軟件。在國(guó)內(nèi)的音樂app領(lǐng)域,居于領(lǐng)頭地位的app有QQ音樂,酷狗音樂,網(wǎng)易云音樂,蝦米音樂等音樂app,根據(jù)我對(duì)這幾款app的調(diào)查,思考它們各自吸引用戶手段,第一在于音樂的版權(quán),比如一些爆紅的單曲,或者歌手,他們可能會(huì)采取對(duì)該單曲或歌手的版權(quán)進(jìn)行買斷,從而達(dá)到吸引用戶的目的,但是這種手段可能會(huì)花費(fèi)大量的金錢作為投資,需要冒一定的風(fēng)險(xiǎn)。第二,與音樂制作人或者團(tuán)隊(duì)簽下合約,要求其在自己的app發(fā)布動(dòng)態(tài),從而吸引粉絲的關(guān)注,增加用戶量。第三,隨著網(wǎng)絡(luò)直播的發(fā)展,近幾年來音樂app陸續(xù)出現(xiàn)一些簽約音樂主播,在各自的平臺(tái)進(jìn)行網(wǎng)絡(luò)直播,吸引觀眾和用戶。第四,使用音樂app的用戶年齡段大約在12-40歲之間,所以app的UI界面設(shè)計(jì)也非常重要,精美的界面更加能吸引用戶。第五,歌曲是否齊全,歌曲的種類是否足夠,是一款音樂app最核心的部分,因?yàn)槁牳枋怯脩舸蜷_音樂app的目的。以上幾點(diǎn),前面舉例的音樂app都做得非常不錯(cuò)。但是如果有自己喜歡的歌手要舉辦演唱會(huì),卻不知道在哪里舉辦,什么時(shí)候舉行,在哪里可以售票,這樣就會(huì)陷入一個(gè)尷尬的地步,錯(cuò)過最佳的購(gòu)票時(shí)機(jī)。如果喜歡的歌手要舉辦粉絲見面會(huì),如果喜歡的樂團(tuán)要發(fā)新專輯,如果喜歡的外國(guó)歌手要來中國(guó),為了避免錯(cuò)過第一手消息,假如這些愿望都能在同一款app里面同時(shí)實(shí)現(xiàn),那將是愛音樂的朋友們的一個(gè)好消息。1.3設(shè)備環(huán)境設(shè)備環(huán)境:華碩筆記本電腦Windows10系統(tǒng)JRE1.8.0_152Javaversion1.8.0_192-eaAndroidStudio3.4.1版本OpenJDK64-bitseverVM安卓虛擬機(jī)Pixel2API281.4關(guān)鍵技術(shù)1.4.1Android操作系統(tǒng)概述Android(安卓),是由Google公司開發(fā)的操作系統(tǒng)。Android是一種基于Linux操作系統(tǒng)的開放式源代碼的操作系統(tǒng)?,F(xiàn)在主要使用于移動(dòng)設(shè)備,如智能手機(jī),平板電腦,智能手表和智能手環(huán)等,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。Android操作系統(tǒng)的創(chuàng)始人是AndyRubin(安迪·魯賓),起初主要運(yùn)用在智能手機(jī)上,并且在2008年9月23日正式發(fā)行。后來Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)、智能手表和智能手環(huán)等。2011年第一季度,Android在全球的市場(chǎng)份額首次超過塞班系統(tǒng),躍居全球第一。2013年的第四季度,Android平臺(tái)手機(jī)的全球市場(chǎng)份額已經(jīng)達(dá)到78.1%,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到10億臺(tái)。在2020年3月,谷歌將會(huì)發(fā)布Android11版本,正式邁向新時(shí)代。隨著經(jīng)濟(jì)的發(fā)展以及智能手機(jī)的普及,智能手機(jī)逐漸地融入人們的生活當(dāng)中,開發(fā)一款滿足用戶需求,用戶群體更加廣泛的軟件,正是本項(xiàng)目開發(fā)的目標(biāo)。1.4.2Android體系架構(gòu)Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。圖2.1Android系統(tǒng)架構(gòu)從架構(gòu)圖看,Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層以及Linux內(nèi)核層。豐富而又可擴(kuò)展的視圖(Views),內(nèi)容提供器(ContentProviders),資源管理器(ResourceManager),通知管理器(NotificationManager)還有活動(dòng)管理器(ActivityManager)Android包含一些C/C++庫(kù),這些庫(kù)能被Android系統(tǒng)中不同的組件使用。它們通過Android應(yīng)用程序框架為開發(fā)者提供服務(wù)。1.4.3Bmob后端云Bmob后端云專注于為移動(dòng)應(yīng)用提供一整套后端云服務(wù),幫助開發(fā)者免去幾乎所有的服務(wù)器端編碼的工作量,成倍降低開發(fā)成本和開發(fā)時(shí)間。輕松搭建應(yīng)用數(shù)據(jù)庫(kù),支持可視化操作,提供可視化的云端數(shù)據(jù)表設(shè)計(jì)界面,輕松建庫(kù)建表。支持10種不同數(shù)據(jù)類型存儲(chǔ):如字符串,整型,數(shù)組等。支持各種文件上傳和存儲(chǔ),CDN加速更快更穩(wěn)定,文件服務(wù)可以存儲(chǔ)圖片、視頻、音頻、文檔等信息。通過提供的API接口和多語(yǔ)言SDK,為用戶提供快速上傳、安全可靠的數(shù)據(jù)存儲(chǔ)服務(wù)。配合CDN加速服務(wù)提高文件訪問的響應(yīng)速度與可用性,實(shí)現(xiàn)用戶全站加速更快捷。本次開發(fā)使用的是Bmob后端云的云端數(shù)據(jù)庫(kù)服務(wù),我們將創(chuàng)建自己的云端數(shù)據(jù)庫(kù)。本項(xiàng)目采用的套餐為公有云集群的開發(fā)版免費(fèi)套餐,數(shù)據(jù)庫(kù)的容量有限制,建表個(gè)數(shù)限制為20個(gè),表中列數(shù)限制為20個(gè)。
系統(tǒng)分析2.1可行性分析2.1.1技術(shù)可行性分析本項(xiàng)目使用的是AndroidStudio3.0版本開發(fā)工具,開源且免費(fèi),文檔齊全,可用于Android開發(fā)。此應(yīng)用大量使用recycleview,在項(xiàng)目中導(dǎo)入新版本的recycleview,能解決各種兼容性問題和性能問題,可滿足開發(fā)需求。本項(xiàng)目采用云端數(shù)據(jù)庫(kù)后臺(tái)管理,Bmob后端云能夠提供可視化的云端數(shù)據(jù)庫(kù)服務(wù),亦能與AndroidStudio3.0版本相契合,性能良好,兼容性佳,于Android開發(fā)文檔齊全,遇到問題都可在開發(fā)文檔中查詢并解決,若沒能自行解決方可詢問客服,可見Bmob云端數(shù)據(jù)庫(kù)能夠滿足開發(fā)需求。本項(xiàng)目欲實(shí)現(xiàn)廣告圖片輪播,圖片模糊效果,滑動(dòng)標(biāo)簽欄,底部導(dǎo)航欄,頂部導(dǎo)航欄,搜索欄,音樂播放器,視頻播放器,這些功能既可采用Android自帶控件,亦可引用第三方控件,按需求選用即可行。為了優(yōu)化UI體驗(yàn),特此采用MaterialDesign,遂引用Toolbar(帶ActionBar的頂部工具欄),DrawerLayout(抽屜布局),CardView(卡片式布局),AppBarLayout(應(yīng)用欄布局),CollapsingToolbarLayout(可折疊式標(biāo)題欄),SwipeRefreshLayout(下拉刷新)等部件,以美化UI布局控件,提升用戶體驗(yàn)。2.1.2經(jīng)濟(jì)可行性分析AndroidStudio開發(fā)工具的開發(fā)環(huán)境為開源代碼且不收費(fèi),大大減輕了開發(fā)成本。而Bmob云端數(shù)據(jù)庫(kù)采用的是學(xué)生個(gè)人免費(fèi)的套餐,雖有性能限制,但也能滿足開發(fā)需求,也不存在經(jīng)濟(jì)問題。硬件方面,安卓智能手機(jī)普及廣,且AndroidStudio提供安卓模擬器,在軟件開發(fā)過程中測(cè)試反面也不會(huì)受到機(jī)能限制。2.1.3運(yùn)行可行性分析本項(xiàng)目采用Bmob云端數(shù)據(jù)庫(kù),不占用手機(jī)資源。而音樂播放器采用兩種方式,一是按照云端數(shù)據(jù)庫(kù)提供的音樂播放資源地址,通過網(wǎng)絡(luò)訪問進(jìn)行播放,二是檢索手機(jī)內(nèi)存,得出播放列表,播放本機(jī)音頻資源。視頻播放也是采用云端數(shù)據(jù)庫(kù)提供的視頻播放地址,通過網(wǎng)絡(luò)訪問進(jìn)行播放。這三者皆倚仗網(wǎng)絡(luò),在當(dāng)今社會(huì),網(wǎng)絡(luò)發(fā)達(dá),網(wǎng)絡(luò)問題不足為懼。Bmob后端云與Android完美結(jié)合,也不存在問題。綜上所述,此應(yīng)用運(yùn)行方案可行。2.2需求分析本項(xiàng)目主要包含以下六大模塊,分別是用戶模塊,音樂模塊,視頻模塊,資訊模塊,商城模塊還有其它模塊。用戶模塊依據(jù)云端數(shù)據(jù)庫(kù)模擬用戶的登錄和注冊(cè)的操作,而音樂模塊則包含許多分類模塊,播放列表,播放界面。視頻模塊則由視頻列表作導(dǎo)向,跳轉(zhuǎn)至各個(gè)視頻界面進(jìn)行播放。資訊模塊和商城模塊都有分類,以及內(nèi)容詳細(xì)等界面。而其它模塊則包含各種零碎的功能模塊。圖2.1主要模塊2.2.1用戶模塊分析用戶模塊包含四大主要功能,分別是用戶注冊(cè),用戶登錄,找回密碼,用戶信息。用戶注冊(cè)和用戶登錄兩功能的實(shí)現(xiàn)方法為利用Bmob后端云在Androidstudio的數(shù)據(jù)庫(kù)語(yǔ)句進(jìn)行判斷,查詢用戶名,方可進(jìn)行登錄和注冊(cè)。用戶信息則是查詢?cè)撚脩舻幕拘畔ⅲ缓笠晕淖只驁D片的形式顯示出來,用戶在賬戶界面可以編輯用戶的基本信息,有設(shè)置頭像,手機(jī)號(hào)碼,電子郵箱等信息,如果忘記密碼,可以通過設(shè)置的手機(jī)號(hào)碼,電子郵箱找回密碼。圖2.2用戶模塊2.2.2音樂模塊分析音樂模塊包含此項(xiàng)目的大部分內(nèi)容,分別有本地音樂,歌單列表,歌手列表,專輯列表,排行榜單五大模塊。本地音樂功能為搜索本機(jī)內(nèi)存,得出音樂播放列表,點(diǎn)擊條目方可進(jìn)行播放,無需訪問網(wǎng)絡(luò),若本機(jī)無音頻文件則沒有歌曲可播放。歌單列表內(nèi)有按歌曲風(fēng)格進(jìn)行分類,有流行音樂,電子音樂,還有說唱音樂三大類,點(diǎn)擊歌曲條目進(jìn)入播放界面,方可播放歌曲。歌手列表當(dāng)中則以華語(yǔ),歐美,日韓,還有其它,按此四大語(yǔ)種進(jìn)行分類,點(diǎn)擊歌手條目進(jìn)入歌手主頁(yè),瀏覽歌手信息與歌手歌曲列表,點(diǎn)擊歌曲條目進(jìn)入播放列表進(jìn)行播放。專輯列表按照數(shù)字專輯與實(shí)體專輯進(jìn)行分類,點(diǎn)擊條目進(jìn)入專輯信息界面,點(diǎn)擊歌曲條目可試聽專輯。排行榜單則由UK周榜,BillBoard周榜,抖音周榜等進(jìn)行歌曲排名(榜單排名由各自官方信息得出),點(diǎn)擊榜單內(nèi)歌曲條目跳轉(zhuǎn)播放界面,方可播放歌曲。在歌單列表,歌手列表,專輯列表中的分類,都以頂部導(dǎo)航欄輔以數(shù)據(jù)庫(kù)語(yǔ)句(addWhereEqualTo)進(jìn)行判斷分類,排行榜單的分類都有各自的JavaBean和recycleview的適配器,在點(diǎn)擊條目后的界面則由Switchcase判斷前一個(gè)界面?zhèn)鱽淼年P(guān)鍵詞,選取需要的數(shù)據(jù)庫(kù),顯示對(duì)應(yīng)的排行榜表單。在在線音樂播放界面點(diǎn)擊收藏按鈕,將喜歡的歌收藏到收藏歌單,可供隨時(shí)欣賞。圖2.3音樂模塊2.2.3視頻模塊分析視頻模塊設(shè)有視頻列表,點(diǎn)擊視頻條目進(jìn)入播放界面,通過查詢?cè)贫藬?shù)據(jù)庫(kù)中的視頻網(wǎng)絡(luò)地址,在播放界面播放視頻。若有站外原視頻地址,則可點(diǎn)擊鏈接跳轉(zhuǎn)至瀏覽器中訪問原文地址,在站外播放。圖2.4視頻模塊2.2.4資訊模塊分析資訊模塊分作六大分區(qū),有推薦資訊,官方資訊,八卦資訊,專輯資訊,數(shù)碼資訊以及原創(chuàng)資訊,利用頂部導(dǎo)航欄,加以數(shù)據(jù)庫(kù)語(yǔ)句(addWhereEqualTo)判斷來分類。點(diǎn)擊資訊條目跳轉(zhuǎn),查看資訊詳細(xì)內(nèi)容,在內(nèi)容下方會(huì)注明資訊來源,點(diǎn)擊鏈接即可跳轉(zhuǎn)至瀏覽器訪問原文。圖2.5資訊模塊2.2.5商城模塊分析商場(chǎng)模塊分為三大類,有專輯,數(shù)碼和演出購(gòu)票。在專輯購(gòu)買中分有數(shù)字專輯和實(shí)體專輯,在數(shù)碼設(shè)備購(gòu)買中分有頭戴式耳機(jī),入耳式耳機(jī)和音箱,在演出購(gòu)票中有分有演唱會(huì),音樂會(huì),還有舞臺(tái)劇。專輯,數(shù)碼和演出都以recycleview顯示,讀取云端數(shù)據(jù)庫(kù)獲取數(shù)據(jù),商品詳細(xì)分類由頂部導(dǎo)航欄,利用數(shù)據(jù)庫(kù)語(yǔ)句(addWhereEqualTo)判斷做分類。點(diǎn)擊各自的條目跳轉(zhuǎn)查看商品詳細(xì)消息,內(nèi)容下方注明商品來源,并設(shè)有鏈接,點(diǎn)擊跳轉(zhuǎn)至瀏覽器方可購(gòu)買(此商城的商品均為轉(zhuǎn)載商品信息,如推薦的耳機(jī),或即將上演的演唱會(huì),提醒愛音樂之友前往購(gòu)票)。圖2.6商城模塊
系統(tǒng)設(shè)計(jì)3.1UI設(shè)計(jì)3.1.1主界面設(shè)計(jì)主界面由一個(gè)activity和四個(gè)fragment組成,在activity中設(shè)置底部導(dǎo)航,控制四個(gè)fragment,點(diǎn)擊底部導(dǎo)航欄中的條目進(jìn)行界面切換,分別是首頁(yè),視頻,音樂,和用戶界面。在首頁(yè)的上方是圖片滑動(dòng)輪播控件,設(shè)有廣告圖片輪播,點(diǎn)擊跳轉(zhuǎn)至瀏覽器,接著是按鈕條目,分別跳轉(zhuǎn)至資訊,歌單,歌手,商城,還有排行榜五個(gè)界面,接著是歌單推薦,新專輯推薦的recycleview,引用GridLayoutManager,三個(gè)條目為一行,利用數(shù)據(jù)庫(kù)語(yǔ)句limit(6),獲取六個(gè)對(duì)象,顯示圖片封面和文字標(biāo)題,每個(gè)表單都有各自的適配器,數(shù)據(jù)庫(kù)表還有JavaBean。視頻界面為recycleview讀取Video表中的數(shù)據(jù),顯示圖片封面和視頻文字標(biāo)題作為條目,同樣有獨(dú)自的適配器,數(shù)據(jù)庫(kù)表還有JavaBean。音樂界面設(shè)有本地音樂的入口,點(diǎn)擊顯示本地音樂列表,點(diǎn)擊條目播放歌曲。用戶界面設(shè)有登錄入口,點(diǎn)擊跳轉(zhuǎn),輸入用戶名和密碼,驗(yàn)證通過則登錄成功,調(diào)取頭像等用戶數(shù)據(jù)。圖3.1主界面3.1.2分類列表界面設(shè)計(jì)在本項(xiàng)目中大量使用分類列表結(jié)構(gòu)的界面,其組成由一個(gè)activity和若干個(gè)fragment(根據(jù)需求設(shè)置fragment個(gè)數(shù)),運(yùn)用到分類列表的界面有歌手界面,歌單界面,數(shù)碼商品界面,演出購(gòu)票界面,專輯界面還有資訊界面。在activity上端設(shè)置頂部導(dǎo)航欄,點(diǎn)擊條目進(jìn)行界面切換,各個(gè)fragment設(shè)有recycleview,利用Bmob數(shù)據(jù)庫(kù)語(yǔ)句(addWhereEqualTo)判斷表中數(shù)據(jù)分類,條目布局設(shè)計(jì)款式各異,但都遵循圖文結(jié)合的設(shè)計(jì),既有線性布局,還有網(wǎng)格布局。圖3.2分類列表界面3.1.3詳細(xì)信息界面設(shè)計(jì)在點(diǎn)擊列表?xiàng)l目后跳轉(zhuǎn)詳細(xì)信息界面,其構(gòu)成有recycleview,image,textview,佐以MaterialDesign為設(shè)計(jì)框架,設(shè)置滑動(dòng)頂部工具欄,讀取數(shù)據(jù)庫(kù)數(shù)據(jù)放入textview,image,recycleview中顯示。圖3.3詳細(xì)信息界面3.1.4音樂播放界面設(shè)計(jì)音樂播放界面分為兩種,一種是中心為歌曲所屬專輯的封面圖,界面上方為歌曲名稱還有歌手名,下方為歌曲播放控件,暫停,播放,還有進(jìn)度條,另一種是以列表的形式列出歌曲,下方是控制器。圖3.4在線音樂播放圖3.5本地音樂播放3.1.5視頻播放界面設(shè)計(jì)視頻播放界面使用VideoView播放視頻,調(diào)取數(shù)據(jù)庫(kù)中的視頻播放地址,導(dǎo)入VideoView中,通過訪問網(wǎng)絡(luò)進(jìn)行播放,旋轉(zhuǎn)手機(jī)屏幕便可全屏觀看。圖3.6視頻播放界面3.1.6用戶登錄界面設(shè)計(jì)用戶登錄界面設(shè)有兩個(gè)edittext,一個(gè)用于輸入賬號(hào),另一個(gè)用于輸入密碼,將這兩個(gè)字符串用數(shù)據(jù)庫(kù)語(yǔ)句判斷查詢,(addWhereEqualTo)查詢表中是否存在該用戶名以及該用戶名對(duì)應(yīng)的密碼,若返回的數(shù)據(jù)條目大于零,則用戶登錄成功。(用戶名唯一,用戶ID唯一且自增)用戶注冊(cè)界面和忘記密碼界面的整體設(shè)計(jì)與用戶登錄界面大致相同,都由edittext和跳轉(zhuǎn)按鈕組成,而用戶登錄界面則擁有用戶頭像的ImageView,還有CheckBox用于記住密碼功能,當(dāng)CheckBox為true時(shí),如果登錄成功,則將用戶名,密碼,還有頭像保存在SharedPreferences中,當(dāng)在下次登錄時(shí)能讓用戶省去輸入賬號(hào)密碼的時(shí)間,得以快速登錄。圖3.7登錄界面3.2數(shù)據(jù)庫(kù)設(shè)計(jì)Bmob后端云數(shù)據(jù)庫(kù)支持的數(shù)據(jù)類型:表3.1數(shù)據(jù)類型控制臺(tái)類型支持的JAVA類型說明StringString字符串類型BooleanBoolean布爾類型NumberInteger,F(xiàn)loat,Short,Byte,Double,Long,Character對(duì)應(yīng)數(shù)據(jù)庫(kù)的Number類型,要求是封裝類ArrayList數(shù)組類型FileBmobFileBmob特有類型,用來標(biāo)識(shí)文件類型GeoPointBmobGeoPointBmob特有類型,用來標(biāo)識(shí)地理位置DateBmobDateBmob特有類型,用來標(biāo)識(shí)日期類型Pointer特定的繼承自BmobObject的對(duì)象Bmob特有類型,用來標(biāo)識(shí)指針類型RelationBmobRelationBmob特有類型,用來標(biāo)識(shí)數(shù)據(jù)關(guān)聯(lián)如果在Bmob后端云中設(shè)置的數(shù)據(jù)類型為String,則JavaBean中對(duì)應(yīng)的也是String,如果在后端云設(shè)置為Number,則JavaBean中對(duì)應(yīng)的會(huì)有Integer,F(xiàn)loat等多種數(shù)據(jù)類型。Bmob后端云中的列數(shù)據(jù)無法設(shè)置數(shù)據(jù)長(zhǎng)度,所以在數(shù)據(jù)庫(kù)設(shè)計(jì)中不作數(shù)據(jù)長(zhǎng)度限制。Bmob基本數(shù)據(jù)類型,每個(gè)新建的表中自動(dòng)生成的4列數(shù)據(jù)。表3.2基本數(shù)據(jù)屬性解釋objectId數(shù)據(jù)唯一標(biāo)識(shí)createdAt數(shù)據(jù)創(chuàng)建時(shí)間updatedAt數(shù)據(jù)更新時(shí)間ACL數(shù)據(jù)控制訪問限制自動(dòng)生成,自動(dòng)更新的4列數(shù)據(jù),無法刪除,也不需要在JavaBean中定義。3.2.1用戶表表名稱:User用于用戶注冊(cè),登錄,找回密碼,編輯個(gè)人信息等功能。用戶首次注冊(cè)時(shí)頭像默認(rèn)為0,手機(jī)號(hào)和郵箱都為空,需要在信息編輯頁(yè)面設(shè)置。當(dāng)頭像為0時(shí)則是默認(rèn)頭像,通過選用預(yù)設(shè)的頭像則替換頭像數(shù)值,現(xiàn)支持10個(gè)預(yù)設(shè)的頭像,分別對(duì)應(yīng)的1-10的數(shù)字,收藏歌單則是每位用戶自定義的歌曲列表,在試聽歌曲的時(shí)候,如果是喜歡的歌曲的話,點(diǎn)擊收藏就會(huì)添加該歌曲的id(Song表的歌曲id)到數(shù)組列表中,在我的收藏中顯示收藏的歌曲列表。表3.3用戶表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerUserName用戶名String唯一StringPassWord密碼StringStringHeadImage頭像Number默認(rèn)值為0IntegerMobilePhoneNumber手機(jī)號(hào)碼StringStringEmail電子郵箱StringStringLoveSong收藏歌單ArrayList在項(xiàng)目中創(chuàng)建JavaBean,類名要與Bmob后端云項(xiàng)目中表名相一致(區(qū)分大小寫),并繼承BmobObject,數(shù)據(jù)名也要與Bmob后端云表中的列名相一致,然后自動(dòng)生成getter和setter。圖3.8User表對(duì)應(yīng)的JavaBean18張數(shù)據(jù)表對(duì)應(yīng)18個(gè)JavaBean的類圖3.918個(gè)JavaBean3.2.2專輯表表名稱:Album用于商城中的專輯購(gòu)買功能,封面為圖片的Uri地址,源自網(wǎng)絡(luò),類型則用于頂部導(dǎo)航欄的分類(本App的商城均作為導(dǎo)購(gòu)功能,不設(shè)有任何支付功能)。在專輯列表?xiàng)l目中顯示專輯名稱,作者和封面。表3.4專輯表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerAlbumType專輯類型StringStringAlbumName專輯名稱StringStringAlbumArtist專輯作者StringStringAlbumCover專輯封面StringString3.2.3廣告表表名稱:Advertising用于app設(shè)置的廣告,鏈接用于點(diǎn)擊跳轉(zhuǎn)至瀏覽器所對(duì)應(yīng)的網(wǎng)址,封面也是Uri地址。表3.5廣告表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerAdLink廣告鏈接StringStringAdName廣告名稱StringStringAdInfo廣告信息StringStringAlbumCover廣告封面StringString3.2.4歌曲表表名稱:Song用于歌曲列表,覆蓋的領(lǐng)域有歌手個(gè)人頁(yè)面的歌曲列表,排行榜中的歌曲列表,歌單中的歌曲列表,專輯中的歌曲列表。還有就是用于歌曲列表跳轉(zhuǎn)之后的歌曲播放界面,歌曲資源和歌曲封面都為Uri地址。在列表中的各個(gè)條目顯示歌曲名稱和作者。表3.6歌曲表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerArtist歌曲作者StringStringSongCover歌曲封面StringStringSongName歌曲名稱StringStringSongRes歌曲資源StringStringAlbum歌曲專輯StringString3.2.5文章表表名稱:Article用于資訊功能,其中文章分區(qū)類型用于頂部導(dǎo)航欄分類,文章發(fā)表日期用于列表的排序(按日期數(shù)值排序,從大到?。?,文章封面和鏈接都為Uri地址,鏈接則用于跳轉(zhuǎn)瀏覽器網(wǎng)址,顯示原文地址和內(nèi)容。在文章列表的各個(gè)條目中顯示文章標(biāo)題,發(fā)表日期,和封面。表3.7文章表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerArticleTitle文章標(biāo)題StringStringArticleType文章分區(qū)類型StringStringArticleDate文章發(fā)表日期StringStringArticleCover文章封面StringStringArticleContent文章正文StringStringArticleLink文章鏈接StringString3.2.6藝人表表名稱:Artist用于歌手列表,歌手類型用于頂部導(dǎo)航欄的分類,照片則是Uri地址,歌手名稱則用于關(guān)聯(lián)Song表中對(duì)應(yīng)歌手名的歌曲。在歌手列表的各個(gè)條目中顯示歌手名稱和照片。表3.8藝人表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerArtistName歌手名稱StringStringArticleType歌手類型StringStringArticlePhoto歌手照片StringString3.2.7藝人排名表表名稱:ArtistRank用于歌手列表界面中的一個(gè)歌手排行的列表,照片同樣是Uri地址,歌手名稱也同樣是用于關(guān)聯(lián)Song表中對(duì)應(yīng)歌手名的歌曲,Id不僅用于辨識(shí)數(shù)據(jù),同樣是按Id大小為順序(Id為1的就是排名第一的歌手,以此類推,從小到大排序)。在歌手排名列表各個(gè)條目顯示歌手名稱和照片。表3.9藝人排名表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型Id排名Number主鍵IntegerArtistName歌手名稱StringStringArticlePhoto歌手照片StringString3.2.8數(shù)碼表表名稱:Digital用于商城中的數(shù)碼商品導(dǎo)購(gòu)功能,數(shù)碼分區(qū)類型是頂部導(dǎo)航欄的分類,圖片是Uri地址,鏈接也是Uri地址,用于跳轉(zhuǎn)至瀏覽器原文地址進(jìn)行購(gòu)買(本App的商城均作為導(dǎo)購(gòu)功能,不設(shè)有任何支付功能),其余的數(shù)據(jù)則為數(shù)碼商品的基本信息,供用戶查看。在數(shù)碼商品列表各個(gè)條目的數(shù)碼名稱,規(guī)格和圖片。表3.10數(shù)碼表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerPrice價(jià)格NumberFloatDigitalName數(shù)碼名稱StringStringDigitalType數(shù)碼分區(qū)類型StringStringDigitalImage數(shù)碼圖片StringStringSpecification數(shù)碼規(guī)格StringStringDescription數(shù)碼描述StringStringDigitalLink數(shù)碼購(gòu)買鏈接StringString3.2.9演出表表名稱:LiveShow用于商城中演出的購(gòu)票功能,頂部導(dǎo)航欄按演出類型進(jìn)行分類,購(gòu)票地址為信息提供的原文地址,用戶點(diǎn)擊跳轉(zhuǎn)至瀏覽器進(jìn)行購(gòu)買(本App的商城均作為導(dǎo)購(gòu)功能,不設(shè)有任何支付功能),封面是Uri地址,其余的是該演出的基本信息,如時(shí)間,地點(diǎn),人物等。在演出購(gòu)票列表的條目中顯示演出名稱,藝人和封面。表3.11演出表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerLiveShowArtist演出藝人StringStringLiveShowName演出名稱StringStringLiveShowType演出類型StringStringLiveShowCover演出封面StringStringLiveShowDate演出日期StringStringLiveShowLink購(gòu)票地址StringStringPrice價(jià)格StringStringDuration演出時(shí)長(zhǎng)NumberIntegerLiveShowLocation演出地址StringString3.2.10排行榜表表名稱:Rank用于排行榜功能,封面為Uri地址,每條數(shù)據(jù)對(duì)應(yīng)一個(gè)榜單的名稱和封面。在排行榜列表各個(gè)條目的排行榜名稱和封面。表3.12排行榜表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerRankName排行榜名稱StringStringRankCover排行榜封面StringString3.2.11歌單表表名稱:SongList用于歌單功能的列表,歌曲列表以歌曲的數(shù)字ID組成的數(shù)組,關(guān)聯(lián)Song表中Id匹配的歌曲,在列表中點(diǎn)擊播放,歌單類型用于頂部導(dǎo)航欄的分類功能,歌單封面是Uri地址。在歌單列表各個(gè)條目顯示歌單名稱和歌單封面。表3.13歌單表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerSongListName歌單名稱StringStringSongListType歌單類型StringStringSongListCover歌單封面StringStringSongListId歌曲列表IDArrayList3.2.12歌曲榜單表(六個(gè))表名稱:Rank_NewSong,Rank_HotSong,Rank_Original,Rank_UK,Rank_Billborad,Rank_DouYin其中包括新歌榜單,熱歌榜單,原創(chuàng)歌曲榜單,UK周榜,Billboard周榜,抖音周榜,這六個(gè)榜單結(jié)構(gòu)相同。歌曲名對(duì)應(yīng)Song表中名稱相對(duì)應(yīng)的歌曲,表名對(duì)應(yīng)Rank表中的Rank名稱和封面。表3.14歌曲榜單表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerAlbumName專輯名稱StringStringSongName歌曲名稱StringStringArtistName藝人名稱StringString3.2.13視頻表表名稱:Video用于視頻播放功能,視頻的封面,標(biāo)題和藝人名稱對(duì)應(yīng)顯示在列表的條目中,點(diǎn)擊跳轉(zhuǎn)后視頻鏈接則是視頻播放器中的Uri地址。表3.15視頻表列名注釋Bmob數(shù)據(jù)類型約束Java數(shù)據(jù)類型IdIDNumber主鍵,自增IntegerVideoArtist視頻藝人StringStringVideoTitle視頻標(biāo)題StringStringVideoCover視頻封面StringStringVideoLink視頻鏈接StringString
系統(tǒng)實(shí)現(xiàn)4.1Bmob后端云的應(yīng)用4.1.1注冊(cè)Bmob后端云賬號(hào)在網(wǎng)址欄輸入進(jìn)入Bmob后端云官方網(wǎng)站,點(diǎn)擊右上角的“注冊(cè)”,在跳轉(zhuǎn)頁(yè)面后輸入姓名,郵箱,還有設(shè)置密碼,點(diǎn)擊確認(rèn)后到剛才所填寫的郵箱確認(rèn)郵件即可激活Bmob賬號(hào),也可以選擇第三方賬號(hào)進(jìn)行登錄,如使用手機(jī)微信掃描二維碼進(jìn)行微信登錄。4.1.2創(chuàng)建Bmob后端云應(yīng)用在注冊(cè)完賬號(hào)后,點(diǎn)擊右上角條目進(jìn)入控制臺(tái),接著點(diǎn)擊左上角創(chuàng)建應(yīng)用,輸入應(yīng)用名稱,選擇免費(fèi)開發(fā)版。進(jìn)入應(yīng)用,點(diǎn)擊左上角添加表,創(chuàng)建表,添加列數(shù)據(jù),可以導(dǎo)入數(shù)據(jù)。圖4.1進(jìn)入應(yīng)用控制臺(tái)4.1.3導(dǎo)入Bmob后端云SDK在控制臺(tái)左側(cè)點(diǎn)擊設(shè)置,找到應(yīng)用密鑰,復(fù)制第一條ApplicationID已備后用。導(dǎo)入Bmob后端云SDK的方法有兩種,一種為手動(dòng)導(dǎo)入,另一種為自動(dòng)導(dǎo)入,我在此項(xiàng)目中使用的是自動(dòng)導(dǎo)入(手動(dòng)導(dǎo)入的方法在Bmob后端云官網(wǎng)的開發(fā)文檔中可以查看)。在Project的build.gradle文件中添加Bmob的maven倉(cāng)庫(kù)地址,在app的build.gradle文件中添加依賴文件,在應(yīng)用程序的AndroidManifest.xml文件中添加相應(yīng)的權(quán)限。圖4.2添加權(quán)限在Activity的onCreat()方法中加入應(yīng)用密鑰,進(jìn)行初始化應(yīng)用數(shù)據(jù)。4.2主界面模塊在build.gradle中添加依賴庫(kù)文件。圖4.3依賴庫(kù)文件4.2.1載入界面 先讓LoadingActivity繼承Activity,然后在onCreate方法中,在setContentView前添加視窗請(qǐng)求,調(diào)用requestWindowFeature()方發(fā)和getWindow().setFlags(),去除標(biāo)題欄,隨后設(shè)置Handler(),添加Intent意圖延時(shí)跳轉(zhuǎn),跳轉(zhuǎn)后銷毀Activity,進(jìn)入登錄界面。載入界面布局僅有ImageView,作為載入畫面。圖4.4載入畫面4.2.2登錄界面在LoginActivity.java的onCreate中定義各控件,并調(diào)用SharedPreferences,與CheckBox綁定,作為記住密碼功能,當(dāng)勾選記住密碼且登錄成功時(shí)保存EditText中的賬號(hào),密碼于SharedPreferences中,且將頭像,郵箱,和手機(jī)號(hào)碼保存到SharedPreferences中以備后用。圖4.5記住密碼功能利用Bmob后端云的數(shù)據(jù)庫(kù)語(yǔ)句判斷賬號(hào)和密碼。點(diǎn)擊確認(rèn)后將賬號(hào)和密碼中的內(nèi)容是否為空,若是則彈出文字提示“內(nèi)容不能為空”,不再繼續(xù)進(jìn)行語(yǔ)句,若都不為空,則進(jìn)行判斷,是否存在一條數(shù)據(jù)的用戶名和密碼與輸入內(nèi)容相一致,若返回的數(shù)據(jù)條目不為0,則判斷記住密碼是否為真,若是則將其用戶資料保存到SharedPreferences中,若不是則不保存,隨后彈出文字提示“登錄成功”,延時(shí)1秒跳轉(zhuǎn)至主界面,若賬號(hào)密碼驗(yàn)證沒有通過,則彈出文字提示“登錄失敗”,不做保存和跳轉(zhuǎn)操作。與登錄界面相類似的還有注冊(cè)頁(yè)面和忘記密碼頁(yè)面,在注冊(cè)界面中輸入賬號(hào)和密碼,點(diǎn)擊確認(rèn)之后,判斷輸入框中內(nèi)容為非空,則將數(shù)據(jù)交到數(shù)據(jù)庫(kù)中判斷是否存在,如果提交的用戶名不存在,則將新的用戶名連同密碼一起添加到數(shù)據(jù)庫(kù)表中,插入一條新數(shù)據(jù),隨后跳轉(zhuǎn)至登錄界面,銷毀本活動(dòng)。如果用戶名已在用戶表中存在,則彈出文字提示“該用戶已存在,注冊(cè)失敗”。在忘記密碼界面輸入用戶名,手機(jī)號(hào)碼,郵箱地址,還有新密碼,點(diǎn)擊確認(rèn)之后,如果驗(yàn)證成功,則將新密碼替換舊密碼,彈出文字提示“修改密碼成功”,如果驗(yàn)證不成功,則彈出文字提示“驗(yàn)證信息不正確”,如果新密碼前后兩次輸入不一致,則彈出文字提示“密碼兩次輸入結(jié)果不一致”,如果輸入框中有空白的,則彈出文字提示“內(nèi)容不能為空”,只有驗(yàn)證通過,才會(huì)彈出文字提示“修改密碼成功,準(zhǔn)備跳轉(zhuǎn)”,延遲兩秒后跳轉(zhuǎn)至登錄界面。右上角按鈕為跳轉(zhuǎn)至忘記密碼界面,左上角為跳轉(zhuǎn)至注冊(cè)界面。登錄功能,注冊(cè)功能,還有忘記密碼功能的驗(yàn)證方法都是利用Bmob數(shù)據(jù)庫(kù)的查詢語(yǔ)句,查詢User表中是否存在與輸入條件相匹配的數(shù)據(jù),然后再進(jìn)行或添加,或修改表數(shù)據(jù)的操作,三個(gè)界面可以自由的互相跳轉(zhuǎn),在三個(gè)界面分別操作之后,銷毀自身并跳轉(zhuǎn)。圖4.6登錄界面運(yùn)行4.2.3主界面首先在主界面中定義四個(gè)Fragment。在onCreate()方法中引用addToList()方法,initView()方法和initFragment(),還有將四個(gè)Fragment加入到List中。在addToList()方法中判斷fragment是否為空,若不是則將fragment添加至fragment列表中。在initView()方法中定義各控件,F(xiàn)rameLayout為Fragment容器,四個(gè)RadioButton綁定點(diǎn)擊監(jiān)聽,作為底部導(dǎo)航欄。在initFragment()方法中初始化Fragment,將ExploreFragment設(shè)置為首頁(yè)。添加Fragment和顯示Fragment的兩個(gè)方法,避免fragment重疊等Bug。點(diǎn)擊監(jiān)聽方法的定義,點(diǎn)擊相應(yīng)的按鈕切換至相應(yīng)的Fragment,通過addFragment()和showFragment()方法,向列表中添加Fragment同時(shí)顯示Fragment。圖4.7底部導(dǎo)航欄點(diǎn)擊監(jiān)聽保存Fragment狀態(tài)的方法。該fragment不為空時(shí),保存該fragment的狀態(tài)。圖4.8底部導(dǎo)航欄設(shè)計(jì)4.2.4發(fā)現(xiàn)界面圖片輪播功能,首先聲明以下三個(gè)元素,其中兩個(gè)是List,一個(gè)用于導(dǎo)航的圓點(diǎn),一個(gè)是輪播的圖片和標(biāo)題等數(shù)據(jù)列表。設(shè)置圖片輪播數(shù)組,利用第三方Fresco,加載高分辨率的圖片,并在onCreate()方法初始化Fresco。創(chuàng)建initEvent()方法,初始化圖片數(shù)據(jù)。創(chuàng)建三個(gè)方法,addDot(),fromResToDrawable(),還有addDots()方法。addDot()方法動(dòng)態(tài)添加一個(gè)點(diǎn),linearLayout添加到LinearLayout布局,backgount設(shè)置,小點(diǎn)的Id。fromResToDrawable()方法資源圖片轉(zhuǎn)Drawable,context上下文,resId資源ID,retur返回Drawable圖像。addDots()方法添加多個(gè)輪播小點(diǎn)到橫向線性布局,linearLayout線性橫向布局,backgount小點(diǎn)資源圖標(biāo),number數(shù)量,返回小點(diǎn)View集合歌單推薦和新歌速遞的兩個(gè)recycleview引用GridLayoutManager,使用網(wǎng)格布局,三個(gè)條目為一行,然后分別從SongList表和Album表查詢數(shù)據(jù),且分別使用HomeNewSongListAdapter和HomeNewSongAdapter兩個(gè)適配器,圖4.9RecycleView導(dǎo)航欄中的五個(gè)圖標(biāo),分別設(shè)置點(diǎn)擊監(jiān)聽,實(shí)現(xiàn)跳轉(zhuǎn)至各個(gè)頁(yè)面。其中一個(gè)適配器,與常見的RecycleView的適配器沒有什么區(qū)別。圖4.10發(fā)現(xiàn)界面運(yùn)行4.2.5視頻界面在onCreate()方法定義視頻列表RecycleView,從Video表中查詢數(shù)據(jù),將數(shù)據(jù)添加到適配器中,由適配器將數(shù)據(jù)添加到RV條目中。布局設(shè)計(jì)只有一個(gè)RV。圖4.11視頻界面運(yùn)行4.2.6音樂界面下面是音樂界面的布局,實(shí)現(xiàn)了本地音樂和我的收藏兩個(gè)功能,點(diǎn)擊本地音樂條目進(jìn)行跳轉(zhuǎn),進(jìn)入本地音樂播放界面,點(diǎn)擊我的收藏則進(jìn)入自定義的收藏歌曲列表。聲明控件,簡(jiǎn)單的點(diǎn)擊監(jiān)聽實(shí)現(xiàn)跳轉(zhuǎn)。圖4.12音樂界面運(yùn)行4.2.7賬號(hào)界面在onCreate()方法中從SharedPreferences中讀取數(shù)據(jù),讀取用戶名和頭像。然后將編輯按鈕設(shè)置點(diǎn)擊監(jiān)聽實(shí)現(xiàn)跳轉(zhuǎn)。圖4.13賬號(hào)界面運(yùn)行4.3分類界面本項(xiàng)目中有很多利用頂部導(dǎo)航欄和數(shù)據(jù)庫(kù)語(yǔ)句進(jìn)行分類,RV按分類顯示的界面,我將其命名為分類界面,這些界面有資訊界面,專輯界面,數(shù)碼界面,演出界面,歌手界面,歌單界面,下面將以資訊界面為例,講解實(shí)現(xiàn)方法。4.3.1資訊界面首先它們都與主界面類似,都由一個(gè)activity和若干個(gè)fragment組成,在主activity中設(shè)有頂部導(dǎo)航欄,而子fragment中設(shè)有RV,利用數(shù)據(jù)庫(kù)語(yǔ)句和適配器實(shí)現(xiàn)數(shù)據(jù)分類,然后添加至RV列表?xiàng)l目中。Activity中的Java代碼結(jié)構(gòu)與4.2.4中一致,這里不再作詳解。布局的左上角為返回按鈕,點(diǎn)擊即返回至ExploreFragment,在返回按鈕下方的就是頂部導(dǎo)航欄,點(diǎn)擊相應(yīng)的條目,即可切換至對(duì)應(yīng)分類的fragment。圖4.14資訊主activity的布局設(shè)計(jì)在各個(gè)fragment界面中設(shè)有各自的分類語(yǔ)句,其實(shí)也只是很簡(jiǎn)單的數(shù)據(jù)庫(kù)語(yǔ)句與頂部導(dǎo)航fragment相結(jié)合。首先初始化Bmob后端云應(yīng)用,然后引用Article表,查詢ArticleType等于“專輯”的數(shù)據(jù),即分類為專輯的數(shù)據(jù),然后按日期以倒序的方式排序,放入對(duì)應(yīng)的適配器中形成相應(yīng)的條目并顯示。與頂部導(dǎo)航欄相對(duì)應(yīng),6個(gè)條目分別對(duì)應(yīng)6個(gè)Fragment。文章中的內(nèi)容來源均來自于網(wǎng)絡(luò),如有類似或有誤,敬請(qǐng)見諒,本項(xiàng)目?jī)H用于學(xué)習(xí)。圖4.15資訊界面運(yùn)行4.3.2其余的分類界面其余的分類界面結(jié)構(gòu)與4.3.1所講解的沒有太大的區(qū)別。歌單分類對(duì)應(yīng)的是SongList表,演出分類對(duì)應(yīng)的是LiveShow表,數(shù)碼分類對(duì)應(yīng)的是Digital表,歌手分類對(duì)應(yīng)的是Artist表,專輯分類對(duì)應(yīng)的是Album表。圖4.16其余分類界面舉例展示4.4正文界面本項(xiàng)目中,在點(diǎn)擊RV條目后跳轉(zhuǎn)的界面我統(tǒng)一命名為正文界面。運(yùn)用到正文界面有演出購(gòu)票信息界面,數(shù)碼購(gòu)買信息界面,專輯信息界面,歌手信息界面,歌單信息界面,資訊詳細(xì)界面,排行榜信息界面等,下面舉例說明演出購(gòu)票信息界面。4.4.1演出詳細(xì)界面詳細(xì)信息界面運(yùn)用了MetalDesign設(shè)計(jì)理念,運(yùn)用到了折疊標(biāo)題欄,應(yīng)用標(biāo)題欄等控件,下面是界面布局設(shè)計(jì)。圖4.17演出詳細(xì)界面布局聲明的字符串“id”為上一個(gè)界面的RV中的條目傳送過來的LiveShow表中的id,用getIntent()來接收,隨后就是聲明activity中的各個(gè)控件,利用Bmob數(shù)據(jù)庫(kù)語(yǔ)句查詢對(duì)應(yīng)id的行數(shù)據(jù),將查詢得到的數(shù)據(jù)一一寫入各控件中。圖片的Uri則需調(diào)用重寫的getBitmap()方法,將Uri地址放入BitmapFactory()轉(zhuǎn)化為Bitmap,再由Bitmap轉(zhuǎn)為Image,而鏈接則設(shè)置了點(diǎn)擊監(jiān)聽跳轉(zhuǎn)瀏覽器至原文地址,這樣信息就讀取完成了。將數(shù)據(jù)庫(kù)中獲取的圖片Uri地址放入BitmapFactory,并設(shè)置網(wǎng)絡(luò)連接超時(shí)設(shè)置,用try和catch環(huán)繞,并拋出異常,如轉(zhuǎn)換成功就將Bitmap回傳。圖4.18演出購(gòu)票界面運(yùn)行圖4.19跳轉(zhuǎn)至瀏覽器界面4.4.2其余的正文界面其余的正文界面展示,基本都是和4.4.1的方法一樣,將對(duì)應(yīng)的數(shù)據(jù)表數(shù)據(jù)讀取出來,再放入布局的控件中,或是TextView,或是ImageView,亦或是RecycleView,組成各自的正文界面。圖4.20其余的正文界面4.5其它功能界面其他功能界面中包闊許多零散的界面,沒有結(jié)構(gòu)套用,大多為承擔(dān)重要作用的界面,這些界面有:用戶信息編輯界面(頭像,郵箱,電話設(shè)置),在線音樂播放界面,本地音樂播放界面,網(wǎng)絡(luò)視頻界面,排行榜界面,商城界面,搜索界面。4.5.1用戶信息編輯界面在onCreate()方法中調(diào)用SharedPreferences中保存的用戶名和頭像,郵箱和電話,分別顯示在那三個(gè)條目中,并且在點(diǎn)擊條目跳轉(zhuǎn)時(shí)攜帶數(shù)據(jù)跳轉(zhuǎn),并且在返回時(shí)攜帶更新后的數(shù)據(jù)。在點(diǎn)擊保存按鈕時(shí)查詢User表,查找到表中對(duì)應(yīng)的用戶的ObjectId,然后再根據(jù)ObjectId更新表中的用戶頭像,郵箱,和電話,并且更新SharedPreferences中保存的數(shù)據(jù)。跳轉(zhuǎn)使用startActivityForResult,按結(jié)果碼和請(qǐng)求碼發(fā)送請(qǐng)求和接收結(jié)果。下面是用戶信息編輯界面的布局,首先是左上角的返回按鈕,點(diǎn)擊之后返回至上個(gè)界面(不作保存),然后就是三個(gè)條目,分別是頭像,郵箱,和電話,點(diǎn)擊后跳轉(zhuǎn)至編輯界面,再修改完信息后,點(diǎn)擊保存按鈕才算修改成功,保存后跳轉(zhuǎn)回首頁(yè)。點(diǎn)擊用戶信息界面的編輯按鈕,跳轉(zhuǎn)至用戶信息編輯界面。圖4.21用戶信息編輯界面運(yùn)行在onCreate()方法中聲明各控件和工具欄,并且接收上個(gè)界面?zhèn)鱽眍^像數(shù)據(jù),并顯示出來。然后重寫onCreateOptionsMenu()方法,實(shí)例化自定義菜單,然后設(shè)置條目點(diǎn)擊監(jiān)聽,返回?cái)y帶數(shù)據(jù),還有根據(jù)頭像條目點(diǎn)擊后更新頭像。圖4.22頭像編輯界面布局點(diǎn)擊右上角菜單按鈕展開菜單條目,點(diǎn)擊相應(yīng)的條目顯示對(duì)應(yīng)的頭像,并顯示出來,然后點(diǎn)擊左上角返回按鈕即可將頭像數(shù)據(jù)攜帶返回上一個(gè)界面。圖4.23選取小熊貓頭像在郵箱編輯界面,只有返回按鈕和EditText,將傳過來數(shù)據(jù)顯示在EditText中,在修改過后點(diǎn)擊左上角返回并攜帶數(shù)據(jù)。郵箱和電話編輯界面沒太多差別。圖4.24編輯界面運(yùn)行圖4.25更新頭像4.5.2在線音樂播放界面在點(diǎn)擊各歌曲列表中的條目即可跳轉(zhuǎn)音樂播放界面,從列表?xiàng)l目傳送歌曲名”name”,根據(jù)歌曲名查詢Song表中歌名相匹配的歌曲,讀取其封面并顯示,讀取其歌曲資源地址,并進(jìn)入準(zhǔn)備播放狀態(tài),聲明VideoView并引用MediaController。除此之外還要重寫MediaController的setMediaPlayer(),show(),hide(),和dispatchKeyEvent()方法。根據(jù)登錄的用戶,查詢User表中該用戶的收藏歌單,判斷目前界面的歌曲是否存在于收藏歌單中,如果是的話激活CheckBox按鈕,如果不是則反之,然后設(shè)置CheckBox的點(diǎn)擊監(jiān)聽,存在兩種執(zhí)行方式,一種是添加收藏,另一種是取消收藏,通過更改該用戶在User表中LoveSong列的數(shù)據(jù),實(shí)現(xiàn)歌曲收藏的操作,執(zhí)行操作時(shí)伴隨著吐司提示。左上角是返回鍵,頂部為歌曲名,中心是封面圖,右上角為自定義樣式的CheckBox,用于歌曲收藏。圖4.26音樂播放界面布局從吳亦凡的歌手個(gè)人頁(yè)面中點(diǎn)擊《大碗寬面》這首歌的條目,即可跳轉(zhuǎn)至音樂播放界面,點(diǎn)擊播放播放按鈕即可播放歌曲,可以通過拖動(dòng)進(jìn)度條進(jìn)行快進(jìn)或后退。此時(shí)右上角的愛心為未激活的狀態(tài),如果點(diǎn)擊它就可以把歌曲添加到收藏的歌單中,可供以后可以隨時(shí)欣賞這首歌,如果再次點(diǎn)擊右上角則會(huì)取消收藏。圖4.27音樂播放界面運(yùn)行4.5.3歌曲收藏列表從SharedPreferences中獲取登錄的用戶名,查詢User表中對(duì)應(yīng)的用戶,得到他的收藏歌單,然后查詢Song表中歌曲id相匹配的歌曲,生成列表,這里用到了addWhereContainedIn()方法,是專門用于多個(gè)結(jié)果的判斷語(yǔ)句,所以用于判斷列表時(shí)非常適用。圖4.28收藏歌單運(yùn)行布局的只有左上角的返回按鈕以及正文部分的歌曲列表RV,RV的布局以及適配器也是引用之前的布局和適配器。點(diǎn)擊《大碗寬面》的條目跳轉(zhuǎn)進(jìn)入播放界面,此時(shí)收藏按鈕正處于激活狀態(tài),再次點(diǎn)擊收藏按鈕就可以取消收藏。4.5.4商城界面從Advertising表中讀取數(shù)據(jù),將圖片顯示出來,共6張圖片。商城界面由首頁(yè)的導(dǎo)航欄點(diǎn)擊商城按鈕后跳轉(zhuǎn),商城界面實(shí)質(zhì)為專輯界面,演出界面和數(shù)碼界面的中轉(zhuǎn)界面。下面是商城界面的布局,左上角是返回按鈕,點(diǎn)擊返回上一個(gè)界面,接著就是廣告圖片輪播控件,實(shí)現(xiàn)方法與4.2.4所說的一致,然后就是導(dǎo)航欄中的三個(gè)按鈕,分別跳轉(zhuǎn)至專輯界面,數(shù)碼界面和演出界面,再接著就是一些音樂產(chǎn)品的廣告圖片鏈接,點(diǎn)擊后跳轉(zhuǎn)至瀏覽器中的原文地址。圖4.29商城界面運(yùn)行4.5.5排行榜界面由于都是各種Image和Text,所以在onCreate()需要一一對(duì)各控件進(jìn)行聲明。初始化應(yīng)用,然后查詢Rank_NewSong表中的前三個(gè)數(shù)據(jù),得到新歌榜中的前三名,顯示在新歌榜單封面對(duì)應(yīng)的布局的文字中,以此類推,重復(fù)以下操作,看似繁瑣,實(shí)則方便管理,方便數(shù)據(jù)庫(kù)表的更新。這是查詢Rank表中的數(shù)據(jù)并顯示各榜單封面,然后設(shè)置各Layout的點(diǎn)擊監(jiān)聽跳轉(zhuǎn),攜帶歌單封面對(duì)應(yīng)的行“id”,用于下一個(gè)界面讀取對(duì)應(yīng)的表數(shù)據(jù)。下面是排行榜界面的布局,雖然排行榜的布局與RV相似,但是為了管理方便,每個(gè)排行榜都有各自的數(shù)據(jù)庫(kù)表和JavaBean,所以在代碼設(shè)計(jì)上設(shè)計(jì)成每一個(gè)獨(dú)立的Layout,由封面圖片和文字組成,6張封面圖來自Rank表,榜一榜二榜三的文字信息來自各自的表數(shù)據(jù),如新歌表的數(shù)據(jù)來自Rank_New表。左上角按鈕為返回上一界面。點(diǎn)擊各個(gè)條目實(shí)現(xiàn)跳轉(zhuǎn)各排行榜單列表。圖片中的榜單數(shù)據(jù)均為本人虛構(gòu)的數(shù)據(jù),不具有真實(shí)性。圖4.30排行榜界面運(yùn)行4.5.6本地音樂播放界面本地音樂播放功能我參考了網(wǎng)上的一個(gè)博主提供的一個(gè)音樂播放框架,本人將其修改過后運(yùn)用到項(xiàng)目當(dāng)中,稍后會(huì)在參考文獻(xiàn)處列出原文地址。下面我們開始分析這個(gè)本地音樂播放界面的具體實(shí)現(xiàn)方法。由于代碼過于繁多,接下來不會(huì)一一說明。首先要實(shí)現(xiàn)掃描本地音樂功能,將手機(jī)中存放的音樂進(jìn)行抽象,所以我們需要?jiǎng)?chuàng)建一個(gè)javabean。自動(dòng)生成getter和setter方法然后創(chuàng)建一個(gè)工具類,對(duì)手機(jī)內(nèi)存進(jìn)行掃描,將掃描得到的音頻文件放入List中,其中會(huì)過濾掉短音頻,不加入到列表中。圖4.31歌曲工具類根據(jù)本地音樂播放界面的ListView編寫一個(gè)適配器,MyAdapter繼承自BaseAdapter。此處的ListView條目布局不予展示,很常見,僅顯示序號(hào),歌曲名,歌手名,歌曲長(zhǎng)度的文字說明。下面是本地音樂播放界面的布局,右上角按鈕為控制播放模式,一共有3種播放模式,默認(rèn)是單曲循環(huán),每當(dāng)點(diǎn)擊一次按鈕就會(huì)切換模式并改變圖標(biāo)的同時(shí)出示吐司,另外兩種播放模式分別是順序播放和隨機(jī)播放。文字部分則隨著播放的歌曲而改變,主體為L(zhǎng)istView,是掃描手機(jī)內(nèi)存得出的歌曲列表,點(diǎn)擊條目即可播放,下方為控制按鈕,有進(jìn)度條,播放暫停等控制按鈕。圖4.32本地音樂播放界面布局首先是實(shí)現(xiàn)歌曲的播放,當(dāng)點(diǎn)擊ListView條目時(shí),初始化歌名,歌手名和進(jìn)度條,切換播放按鈕的圖片,唱片開始轉(zhuǎn)動(dòng)。對(duì)ListView條目的點(diǎn)擊監(jiān)聽。圖4.33ListView點(diǎn)擊監(jiān)聽播放模式的切換,就是右上角播放模式按鈕的點(diǎn)擊監(jiān)聽。上一首和下一首按鈕的點(diǎn)擊監(jiān)聽,在切換歌曲時(shí),判斷當(dāng)前選用的播放模式,當(dāng)播放模式是隨機(jī)播放的時(shí)候,切換歌曲時(shí)也是隨機(jī)切換,如果不是,則按順序切換,當(dāng)歌曲播放完畢時(shí),按照播放模式自動(dòng)切換,自定義SeekBar,對(duì)歌曲播放的進(jìn)度的活動(dòng)監(jiān)聽。圖4.34播放音樂以上就是本地音樂界面的主要方法(省略了部分方法沒有展示,還刪減了大部分原有的功能,留下了最基礎(chǔ)的音樂播放功能),下面是運(yùn)行截圖。圖4.35本地音樂播放運(yùn)行4.5.7視頻播放界面視頻播放界面的布局,以黑色背景的FrameLayout為容器,容器中是用于播放視頻的VideoView。在java文件中接收由上一個(gè)界面?zhèn)鱽淼囊曨lid,然后通過數(shù)據(jù)庫(kù)語(yǔ)句在Video表中查詢Id相匹配的視頻,獲取其視頻播放地址,放入VideoView控件中播放,VideoView加載原生MediaController進(jìn)行控制。點(diǎn)擊條目跳轉(zhuǎn)播放對(duì)應(yīng)的視頻,當(dāng)手機(jī)是豎屏的時(shí)候?yàn)橹行男〈翱诓シ?,?dāng)手機(jī)是橫屏?xí)r就成為全屏播放,幾秒后控制器自動(dòng)收起,點(diǎn)擊屏幕控制器自動(dòng)彈出,可以進(jìn)行暫停,快進(jìn),倒退,拖動(dòng)進(jìn)度條的操作。圖4.36豎屏播放圖4.37橫屏播放4.5.8搜索框雖然我在項(xiàng)目中設(shè)有搜索框功能,但是還沒有應(yīng)用到實(shí)際運(yùn)作中。下面就簡(jiǎn)單展示一下搜索框功能。首先在搜索框界面布局中使用第三方控件SearchView。接著在Activity中加入以下代碼就算完成了,只是初始化搜索框變量,綁定控件,設(shè)置點(diǎn)擊監(jiān)聽而已。因?yàn)楹诵拇a部分已經(jīng)由導(dǎo)包所完成了。(此第三方控件的依賴庫(kù)導(dǎo)入已經(jīng)在上文中展示)。在輸入框內(nèi)輸入內(nèi)容,當(dāng)輸入框內(nèi)有內(nèi)容時(shí),右側(cè)會(huì)顯示清除按鈕,點(diǎn)擊右側(cè)清除按鈕就會(huì)清除輸入框內(nèi)的文本內(nèi)容,點(diǎn)擊小鍵盤右下角的回車按鈕就會(huì)生成搜索記錄,并顯示在搜索框下方,點(diǎn)擊“清除搜索歷史”按鈕就會(huì)清除搜索記錄。圖4.38搜索框功能運(yùn)行
結(jié)論和未來方向5.1研究成果在本項(xiàng)目中主要實(shí)現(xiàn)了以Android為客戶端,Bmob后端云為云端后臺(tái)管理系統(tǒng),通過在Android連接Bmob云端數(shù)據(jù)庫(kù),在Bmob后端云平臺(tái)的網(wǎng)頁(yè)上,對(duì)數(shù)據(jù)庫(kù)表進(jìn)行可視化操作,實(shí)現(xiàn)實(shí)時(shí)更新的效果,用戶能夠在客戶端體驗(yàn)到實(shí)時(shí)更新的音樂相關(guān)的資訊新聞,歌手藝人的動(dòng)態(tài)八卦,最新發(fā)布的歌曲,專輯,演唱會(huì),還有視頻MV,數(shù)碼產(chǎn)品的推薦文章。如果用戶安裝了此應(yīng)用,就能夠體驗(yàn)到基本的本地音樂播放器的功能,把存放在手機(jī)內(nèi)存和SD卡中的音頻文件列出來形成播放列表,用戶可以自由的播放音樂,于此同時(shí),瀏覽最新發(fā)布的音樂資訊,流行藝人的動(dòng)態(tài),小道的八卦消息,專輯發(fā)布的消息,數(shù)碼產(chǎn)品的測(cè)試推薦帖,現(xiàn)場(chǎng)演出的購(gòu)票信息,最受歡迎的歌手榜單,還有試聽各大排行榜單的熱曲,各國(guó)明星歌手的熱曲,最新專輯的新曲,遇到自己喜歡的歌曲,可以收藏到自己的歌單中,以后隨時(shí)可以播放。此應(yīng)用既可以當(dāng)作音樂播放器使用,同時(shí)也是一個(gè)瀏覽資訊的好地方,聽音樂和看資訊兩不誤。經(jīng)過了這次獨(dú)立完成一個(gè)功能完整Android項(xiàng)目,讓我學(xué)到了很多以前從來沒有了解過的知識(shí),要完成一個(gè)完整的App,需要考慮的很多方面大大小小的事情,大到整個(gè)應(yīng)用的結(jié)構(gòu)規(guī)劃,小到一個(gè)界面的布局,都需要慎重的考慮和斟酌,進(jìn)行多次的修改才能定下初始的模板,隨著后面的開發(fā),前面所寫的界面也會(huì)隨有大大小小的修改。在開發(fā)過程中遇到的困難也是很常見,比如一些粗心大意的小錯(cuò)誤,在運(yùn)行的時(shí)候就會(huì)報(bào)錯(cuò),在查看logcat之后就能輕松解決,縱使是再小的Bug,心里未免會(huì)感到失落和焦慮。當(dāng)遇到重大的技術(shù)難題時(shí),往往不能馬上解決,時(shí)而用上一個(gè)下午的時(shí)間上網(wǎng)查資料,分析代碼,時(shí)而花上一兩天的時(shí)間,也未必能夠完美解決問題,雖然為此非常的苦惱,但是每當(dāng)解決問題的時(shí)候,都會(huì)感到很開心并且會(huì)給自己加油鼓勁。5.2問題缺陷和改善缺陷:本項(xiàng)目的在線音樂播放的資源均來自于網(wǎng)絡(luò),該資源地址會(huì)在一天內(nèi)失效,失效后需要重新獲取地址才能正常播放,所以要經(jīng)常進(jìn)行維護(hù),手動(dòng)獲取地址然后進(jìn)行更新。解決:最好的解決方法是將音頻文件上傳到Bmob后端云服務(wù)器,但由于涉及相關(guān)法律,作者需要出示相關(guān)證明和域名進(jìn)行登記,現(xiàn)今缺少域名服務(wù)器,所以暫時(shí)無法解決。缺陷:音樂播放界面和視頻播放界面功能比較簡(jiǎn)陋。解決:暫時(shí)無法解決,還需學(xué)習(xí)自定義控件,自定義播放器,或者使用第三方播放器。缺陷:沒有把歌曲與其配套的MV視頻進(jìn)行關(guān)聯(lián)。解決:暫時(shí)無法解決。缺陷:用戶與用戶之間缺少互動(dòng),沒有評(píng)論功能。解決:暫時(shí)無法解決,Bmob后端云的資源容量不足,且工作量比較龐大。缺陷:界面布局不夠精美。解決:需要繼續(xù)學(xué)習(xí),嘗試開發(fā)更多自定義控件。5.3未來方向在未來希望能夠建立一個(gè)專用的服務(wù)器,存放各種歌曲的音頻和視頻,可供App進(jìn)行播放,以及開發(fā)功能強(qiáng)大的音頻播放器和視頻播放器。在資訊新聞方面能夠繼續(xù)發(fā)展更多的模塊,能夠覆蓋更多音樂相關(guān)的領(lǐng)域,發(fā)布更多有趣的新聞資訊。在歌曲,視頻,資訊等各方面實(shí)現(xiàn)用戶的評(píng)論功能,加強(qiáng)用戶之間的互動(dòng)。在音樂這一領(lǐng)域的功能做好,展現(xiàn)應(yīng)用自身的優(yōu)點(diǎn),發(fā)展自己的長(zhǎng)處,在應(yīng)用市場(chǎng)上散發(fā)自己獨(dú)特的光芒。
參考文獻(xiàn)郭霖,《第一行代碼》——Android(第二版)[M],人民郵電出版社,2016-12-01Bmob后端云,Android開發(fā)文檔[Z],Bmob開發(fā)文檔中心/data/android/develop_doc/#4,2019-04-22黃慶慶,安卓開發(fā)個(gè)人小作品(3)-多功能音樂播放器[Z],CSDN博客/hq942845204/article/details/80148187,2018-04-30XeonYu,fragment重疊的完美解決方案[Z],CSDN博客/yuzhiqiang_1993/article/details/75014591,2017-07-15憂郁白襯衫,AndroidViewPager實(shí)現(xiàn)圖片標(biāo)題輪播和點(diǎn)擊事件[Z],博客園/luhuan/p/8047098.html,2018-09-27Carson_Ho,Android開源實(shí)戰(zhàn):一個(gè)簡(jiǎn)單&好用的搜索框(含歷史搜索記錄)[Z],簡(jiǎn)書/p/590f00025de3,2017-08-23王國(guó)輝,Android開發(fā)從入門到精通(項(xiàng)目案例版)[Z],/video/av22836860,2018-05-01
致謝這次的畢業(yè)設(shè)計(jì),是我在大學(xué)四年內(nèi)做過的功能最強(qiáng)大,界面最精美,工作量最大,技術(shù)層面最廣泛,結(jié)構(gòu)最完整的項(xiàng)目了,既是對(duì)自己的一個(gè)挑戰(zhàn),也是對(duì)自己的一個(gè)證明。在最后,要感謝大學(xué)四年來老師們的辛勤教導(dǎo),讓我學(xué)到了豐富的專業(yè)知識(shí),養(yǎng)成了良好的編碼習(xí)慣。在這次的畢業(yè)設(shè)計(jì)進(jìn)行過程中,指導(dǎo)老師給予了我良好的建議,有助于我完成這次的畢業(yè)設(shè)計(jì)開發(fā)和畢業(yè)論文的編寫,再一次感謝。
電腦無法識(shí)別U盤該怎么辦HYPERLINK電腦無法識(shí)別U盤怎么辦?打開我的電腦上單擊右鍵,在快捷菜單里,選擇“管理”,打開“計(jì)算機(jī)管理”窗口。在計(jì)算機(jī)管理窗口里,選擇“存儲(chǔ)”下面的“磁盤管理”,如果看得到?jīng)]有盤符的U盤,那么在這個(gè)U盤上按鼠標(biāo)右鍵,選擇“更改驅(qū)動(dòng)器名稱和路徑”選項(xiàng),就打開了“更改……的驅(qū)動(dòng)器號(hào)和路徑”對(duì)話框。再點(diǎn)擊“更改”按鈕,打開“更改驅(qū)動(dòng)器號(hào)和路徑”的對(duì)話框,在“指定以下驅(qū)動(dòng)器號(hào)”的右邊下拉列表里,選擇你希望分配給U盤的驅(qū)動(dòng)器號(hào),盡可能靠后選擇,比如X、Y、Z,選擇好后,單擊確定按鈕,回到上一次“更改……的驅(qū)動(dòng)器號(hào)和路徑”對(duì)話框窗口,再一次單擊確定,就回到“計(jì)算機(jī)管理”窗口。至此,如果一切正常,就給U盤單獨(dú)設(shè)置了一個(gè)長(zhǎng)久使用的驅(qū)動(dòng)器號(hào),并卻,不受虛擬驅(qū)動(dòng)器的影響了。建議將U盤插到電腦上,看任務(wù)欄中是否顯示圖標(biāo),如果顯示,在我的電腦點(diǎn)右鍵查看屬性——高級(jí)——硬件——設(shè)備管理器——查看里面是否有問號(hào)的設(shè)備,在問號(hào)設(shè)備上點(diǎn)右鍵——更新驅(qū)動(dòng)程序然后下一步——否暫時(shí)不連接到網(wǎng)絡(luò)——下一步自動(dòng)安裝軟件(推薦)就可以了另外:系統(tǒng)不認(rèn)U盤的幾種處理方法1.禁用主板usb設(shè)備。管理員在CMOS設(shè)置里將USB設(shè)備禁用,并且設(shè)置BIOS密碼,這樣U盤插到電腦上以后,電腦也不會(huì)識(shí)別。這種方法有它的局限性,就是不僅禁用了U盤,同時(shí)也禁用了其他的usb設(shè)備,比如usb鼠標(biāo),usb光驅(qū)等。所以這種方法管理員一般不會(huì)用,除非這臺(tái)電腦非常重要,值得他舍棄掉整個(gè)usb總線的功能。但是這種屏蔽也可以破解,即便設(shè)置了密碼。整個(gè)BIOS設(shè)置都存放在CMOS芯片里,而COMS的記憶作用是靠主板上的一個(gè)電容供電的。電容的電來源于主板電池,所以,只要把主板電池卸下來,用一根導(dǎo)線將原來裝電池的地方正負(fù)極短接,瞬間就能清空整個(gè)CMOS設(shè)置,包括BIOS的密碼。隨后只需安回電池,自己重新設(shè)置一下CMOS,就可以使用usb設(shè)備了。(當(dāng)然,這需要打開機(jī)箱,一般眾目睽睽之下不大適用~~)2.修改注冊(cè)表項(xiàng),禁用usb移動(dòng)存儲(chǔ)設(shè)備。打開注冊(cè)表文件,依次展開"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbehci”雙擊右面的“Start”鍵,把編輯窗口中的“數(shù)值數(shù)據(jù)”改為“4”,把基數(shù)選擇為“十六進(jìn)制”就可以了。改好后注銷一下就可以看見效果了。為了防止別人用相同的方法來破解,我們可以刪除或者改名注冊(cè)表編輯器程序。提示:“Start”這個(gè)鍵是USB設(shè)備的工作開關(guān),默認(rèn)設(shè)置為“3”表示手動(dòng),“2”是表示自動(dòng),“4”是表示停用。3.在computermanagement里將removablestorage的使用權(quán)限禁止。computermanagement是一個(gè)windows管理組件,可以在控制面板——管理工具——計(jì)算機(jī)管理打開。在該工具窗口中storage——removablestorage——property中,general項(xiàng),可以控制系統(tǒng)托盤是否顯示security則可以管理移動(dòng)存儲(chǔ)設(shè)備的使用權(quán)限。在security中將普通用戶的使用權(quán)限降低,就可以達(dá)到禁用u盤的目的。破解的方法也很簡(jiǎn)單,管理員降低普通用戶移動(dòng)存儲(chǔ)設(shè)備的使用權(quán)限,但未必禁用computermanagement的使用權(quán)限。普通用戶可以通過這個(gè)工具解除usb移動(dòng)存儲(chǔ)設(shè)備的使用權(quán)限限制。另外,值得一提的是,如果u盤插到電腦上后可以驅(qū)動(dòng),但是我的電腦里卻沒有盤符,很有可能是管理員改動(dòng)了u盤的默認(rèn)盤符,使得我的電腦不能識(shí)別。這種情況,可以在movablestorage中看到u盤驅(qū)動(dòng)器??梢栽趗盤驅(qū)動(dòng)器屬性設(shè)置里為u盤重新分配一個(gè)盤符,再重新插拔一次u盤,就可以在我的電腦里看到u盤的盤符了。一、首先可以將該U盤換到別的機(jī)器上,看使用是否正常。如果排除了硬件損壞的可能,一般就是軟件方面有問題。在WindowsXP+SP1操作系統(tǒng)下,有些USB2.0設(shè)備的確常常出現(xiàn)工作不穩(wěn)定的問題,可以試試安裝設(shè)備自帶的USB2.0驅(qū)動(dòng)程序。另外最好不要使用USB延長(zhǎng)線,防止因?yàn)楣╇姴蛔愣斐刹环€(wěn)定現(xiàn)象。如果仍無效,可以在主板BIOS設(shè)定中,將USB接口強(qiáng)行設(shè)置為USB1.1傳輸速率。二、(適用于WIN98)啟動(dòng)計(jì)算機(jī),進(jìn)入主板BIOS設(shè)置,檢查BIOS中USB的相關(guān)選項(xiàng)是否已經(jīng)打開:OnChipUSB設(shè)定為Enabled;USBController設(shè)定為Enabled;PNPOSInstalled設(shè)定為Yes;AssignIRQForUSB設(shè)成Enabled。要正常使用USB設(shè)備首先要開啟USB接口,在主板BIOS里可以進(jìn)行此項(xiàng)工作,一般來說只需在BIOS中進(jìn)入ChipsetFeatures設(shè)置,并將USBKeyborad/MouseLegacy選項(xiàng)設(shè)定為Enable,就能夠保證在操作系統(tǒng)下使用USB鍵盤了。這些選項(xiàng)的作用是打開主板芯片組對(duì)USB設(shè)備的完全支持,為系統(tǒng)識(shí)別USB設(shè)備做準(zhǔn)備工作。三、USB口接觸不好處理辦法:拔下,等十秒鐘再插上USB口,使接觸完好;五、閃存盤驅(qū)動(dòng)程序沒有安裝完成(WIN98系統(tǒng)下)處理辦法:鼠標(biāo)點(diǎn)“我的電腦”,選擇屬性找到“通用串行總線”,刪除其中的USBMASSSTORAGE項(xiàng),再點(diǎn)擊“刷新”,然后按照提示重新安裝一次驅(qū)動(dòng)程序。六、接其它USB設(shè)備(如掃描儀、打印機(jī)、數(shù)碼相機(jī))時(shí)可以正常使用,接優(yōu)盤時(shí)閃指示燈不亮,不能夠使用。1、檢查優(yōu)盤與電腦的聯(lián)接是否正常,并換用其它USB接口測(cè)試。2、檢查設(shè)備管理器,看是否出現(xiàn)”通用總線設(shè)備控制器”條目,如果沒有,請(qǐng)將電腦主板BIOS中USB接口條目*激活(ENABLE)。3、如果電腦安裝過其它類型USB設(shè)備,卸載該設(shè)備驅(qū)動(dòng)程序,并首先安裝優(yōu)盤驅(qū)動(dòng)程序。4、到其它電腦試用此優(yōu)盤,確認(rèn)是否優(yōu)盤不良。七、啟動(dòng)型優(yōu)盤在的電腦上無法實(shí)現(xiàn)啟動(dòng),可能是主板型號(hào)不支持。如何判斷一塊主板是否支持閃存盤啟動(dòng)系統(tǒng)啟動(dòng)型優(yōu)盤是采用模擬USB軟驅(qū)和USB硬盤的方式啟動(dòng)電腦的。只要電腦主板支持USB設(shè)備啟動(dòng),即BIOS的啟動(dòng)選項(xiàng)中有USB-FDD、USB-HDD或是其它類似的選項(xiàng),就可以使用啟動(dòng)型優(yōu)盤啟動(dòng)電腦。八、第一次在電腦上使用優(yōu)盤,未出現(xiàn)提示發(fā)現(xiàn)新硬件的窗口,驅(qū)動(dòng)程序無法安裝的原因可能是:1、主板usbcontroller未啟用解決辦法:在電腦主板BIOS中啟用此功能。2、usbcontroller已經(jīng)啟用但運(yùn)行不正常解決辦法:在設(shè)備管理器中刪除”通用串行控制器”下的相關(guān)設(shè)備并刷新。3、優(yōu)盤被電腦識(shí)別異常,在設(shè)備管理器中表現(xiàn)為帶有黃色?或!的”其它設(shè)備”或“未知設(shè)備”。解決辦法:刪除此設(shè)備并刷新。九、大容量的U盤(例如兼具M(jìn)P3播放器或錄音功能的U盤)或移動(dòng)硬盤在電腦上無法正常使用,雖然系統(tǒng)提示找到了未知的USB設(shè)備,但無法正確識(shí)別U盤或移動(dòng)硬盤。原因可能是:1.USB接口供電不足:系統(tǒng)為每個(gè)USB接口分配了500mA的最大輸出電流,一般的U盤只需要100mA的工作電流,因此在使用過程中不會(huì)出現(xiàn)什么問題。大多數(shù)移動(dòng)硬盤所使用的是普通的2.5英寸硬盤,其工作電流介于500mA~1000mA之間,此時(shí)假如僅僅通過USB接口供電,當(dāng)系統(tǒng)中并無其他USB設(shè)備時(shí),那么還是可以勉強(qiáng)使用的,但如果電壓不穩(wěn)的話,就隨時(shí)可能出現(xiàn)供電不足的問題。特別是使用支持USB2.0的移動(dòng)硬盤時(shí),情況最為嚴(yán)重。另外,如果你的筆記本電腦使用電池供電,那么USB接口所分配的電量就更小了。2.使用了外接的USB擴(kuò)展卡:在筆記本電腦中使用USB2.0的U盤或移動(dòng)硬盤時(shí),如果筆記本電腦不支持USB2.0技術(shù),一般必須通過PCMCIA卡轉(zhuǎn)USB2.0的擴(kuò)展卡來間接實(shí)現(xiàn)支持,這些擴(kuò)展卡基本上都采用NEC公司的D720100AGMUSB控制芯片,少則提供兩個(gè)USB2.0接口,多則提供五個(gè)USB2.0接口,對(duì)一般用戶而言足夠使用了。由于PCMICA接口提供的電源功率比板載USB接口要小,這樣就會(huì)由于供電不足而導(dǎo)致移動(dòng)硬盤工作的出現(xiàn)問題。解決方案:1.它從USB連接線上接移動(dòng)硬盤的一端引出一根轉(zhuǎn)接線,可以插入電腦背后的PS/2接口取電,這里可以比USB接口提供更大的電流輸出。2.利用電源補(bǔ)償線(也稱“鍵盤取電線”),如果U盤或移動(dòng)硬盤的包裝盒中提供了選配的電源適配器,你就可以直接使用外接電源,這樣就可以從根本上避免供電不足的情況發(fā)生了前置USB線接錯(cuò)。當(dāng)主板上的USB線和機(jī)箱上的前置USB接口對(duì)應(yīng)相接時(shí)把正負(fù)接反就會(huì)發(fā)生這類故障,這也是相當(dāng)危險(xiǎn)的,因?yàn)檎?fù)接反很可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年粵教新版九年級(jí)生物下冊(cè)階段測(cè)試試卷含答案784
- 暑期輔導(dǎo)專用2024年初高中物理銜接教材銜接點(diǎn)12牛頓第一定律含解析
- 2024年度展示廳燈光音響系統(tǒng)定制合同3篇
- 洋酒銷售課程設(shè)計(jì)圖
- 2024年度土地利用規(guī)劃地形圖測(cè)繪合同3篇
- 2022-2023年廣東省廣州市荔灣區(qū)六年級(jí)上冊(cè)期末數(shù)學(xué)試卷及答案
- 2024年標(biāo)準(zhǔn)柑橘果品采購(gòu)與銷售協(xié)議版B版
- 2025年高考?xì)v史復(fù)習(xí)熱搜題速遞之改革開放(2024年7月)
- 2024年度贈(zèng)與非物質(zhì)文化遺產(chǎn)搶救保護(hù)合同范本3篇
- 旅游消費(fèi)文化課程設(shè)計(jì)
- 中班數(shù)學(xué)活動(dòng)小動(dòng)物排隊(duì)課件
- 電力電纜高頻局放試驗(yàn)報(bào)告
- 關(guān)于老年綜合評(píng)估規(guī)范與流程
- 高壓滅菌鍋使用管理制度
- 《行政法與行政訴訟法》考試小抄
- 余熱發(fā)電工程總施工組織設(shè)計(jì)方案
- 報(bào)聯(lián)商整合版專題培訓(xùn)課件
- 城鄉(xiāng)居民基本養(yǎng)老保險(xiǎn)參保登記表
- 建設(shè)工程監(jiān)理費(fèi)計(jì)算器(免費(fèi))
- 如何開展經(jīng)常性思想工作演示文稿
- 西方文官制度和我國(guó)公務(wù)員制度的比較
評(píng)論
0/150
提交評(píng)論