版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、- - - .總結(jié)資料. z基于Android平臺(tái)的音樂播放器The Development of Mobile Music PlayerBased on Android platform system學(xué)生*:學(xué)生:專業(yè)班級(jí):指導(dǎo)教師:職 稱:起止日期: Technology- - - .總結(jié)資料. z摘要當(dāng)今社會(huì)的生活節(jié)奏越來越快,隨著硬件移動(dòng)設(shè)備的越來越先進(jìn),人們對移動(dòng)設(shè)備的要求也越來越高,從以前的追求技術(shù)到現(xiàn)在的追求視覺,因此,也逐步的提高了對系統(tǒng)的要求,本文主要是對Android系統(tǒng)上音樂播放器應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)展討論。本論文的音樂播放器采用了Android開源系統(tǒng)技術(shù),利用Jav
2、a語言和Eclipse編輯工具對播放器進(jìn)展編寫,同時(shí)給出了詳細(xì)的系統(tǒng)設(shè)計(jì)過程、局部界面圖及主要功能運(yùn)行流程圖,本文還對開發(fā)過程中遇到的問題和解決方法進(jìn)展了詳細(xì)的討論,該音樂播放器集播放、暫停、停頓、上一首、下一首、音量調(diào)節(jié)、歌詞顯示等功能于一體,性能良好,在Android系統(tǒng)中能獨(dú)立運(yùn)行。該播放器還擁有對手機(jī)文件瀏覽器的功能、歌曲播放模式、以及歌詞開閉狀態(tài)的友好設(shè)置。關(guān)鍵詞:Android;開源系統(tǒng);音樂播放器-. zAbstractThe pace of life in todays society, with more advanced hardware mobile devices fo
3、r mobile devices, people more and more is also high, the requirements from the previous pursuit to pursue the visual technology, therefore, also gradually improve the system requirements, the paper mainly is to take on a music player from system design and realization of the application is discussed
4、. Take the system is an open source, it is based on the operating system, use the Linu* music player of the Android open-source system technology, using the Java language and editing tools for players to Eclipse. Presents the detailed design process, the part of the system and the main functions of
5、operation interface diagram of height, this paper also flow process problems and solving methods are discussed in detail, and the music player episode, pause, stop and a, ne*t, volume adjustment, lyrics display functions, such as performance is good, can operate independently in the Android system.
6、This player has access to the file browser phone functions, songs and played pattern, open and close condition of friendly words. Key Words:Android;open source system;music player-. z目 錄 TOC o 1-3 h z HYPERLINK l _Toc326100204摘要 PAGEREF _Toc326100204 h IHYPERLINK l _Toc326100205Abstract PAGEREF _Toc
7、326100205 h IIHYPERLINK l _Toc326100206第1章緒論 PAGEREF _Toc326100206 h 1HYPERLINK l _Toc3261002071.1 選題的目的及意義 PAGEREF _Toc326100207 h 1HYPERLINK l _Toc3261002081.2 本課題涉及容的研究現(xiàn)狀 PAGEREF _Toc326100208 h 1HYPERLINK l _Toc3261002091.3 本系統(tǒng)要實(shí)現(xiàn)的根本目標(biāo)和研究容 PAGEREF _Toc326100209 h 2HYPERLINK l _Toc326100210第2章系統(tǒng)的
8、可行性研究 PAGEREF _Toc326100210 h 3HYPERLINK l _Toc3261002112.1 經(jīng)濟(jì)上的可行性 PAGEREF _Toc326100211 h 3HYPERLINK l _Toc3261002122.2 技術(shù)上的可行性 PAGEREF _Toc326100212 h 3HYPERLINK l _Toc3261002132.3 操作上的可行性 PAGEREF _Toc326100213 h 3HYPERLINK l _Toc326100214第3章需求分析 PAGEREF _Toc326100214 h 4HYPERLINK l _Toc326100215
9、3.1 軟件目標(biāo) PAGEREF _Toc326100215 h 4HYPERLINK l _Toc3261002163.2 功能需求 PAGEREF _Toc326100216 h 4HYPERLINK l _Toc3261002173.3系統(tǒng)界面需求 PAGEREF _Toc326100217 h 4HYPERLINK l _Toc3261002183.4系統(tǒng)性能需求 PAGEREF _Toc326100218 h 4HYPERLINK l _Toc326100219第4章系統(tǒng)的總體設(shè)計(jì) PAGEREF _Toc326100219 h 5HYPERLINK l _Toc3261002204
10、.1 設(shè)計(jì)思想 PAGEREF _Toc326100220 h 5HYPERLINK l _Toc3261002214.2 系統(tǒng)功能構(gòu)造圖 PAGEREF _Toc326100221 h 5HYPERLINK l _Toc3261002224.3 開發(fā)語言簡介 PAGEREF _Toc326100222 h 6HYPERLINK l _Toc3261002234.3.1 Android簡介 PAGEREF _Toc326100223 h 6HYPERLINK l _Toc3261002244.3.2 Android Features特性 PAGEREF _Toc326100224 h 7HYP
11、ERLINK l _Toc3261002254.3.3 Android根本框架Android Architecture PAGEREF _Toc326100225 h 7HYPERLINK l _Toc3261002264.4.4 Android系統(tǒng)的四大組件 PAGEREF _Toc326100226 h 9HYPERLINK l _Toc3261002274.4.5 SQLite簡介 PAGEREF _Toc326100227 h 10HYPERLINK l _Toc3261002284.4 搭建Android開發(fā)環(huán)境 PAGEREF _Toc326100228 h 11HYPERLINK
12、 l _Toc3261002294.5 Android 音樂播放器的工程 PAGEREF _Toc326100229 h 13HYPERLINK l _Toc3261002304.5.1 Android工程 PAGEREF _Toc326100230 h 13HYPERLINK l _Toc3261002314.5.2 Android工程程序構(gòu)造 PAGEREF _Toc326100231 h 14HYPERLINK l _Toc3261002324.5.3 AndroidManifest.*ml文件 PAGEREF _Toc326100232 h 15HYPERLINK l _Toc3261
13、00233第5章數(shù)據(jù)庫的設(shè)計(jì) PAGEREF _Toc326100233 h 18HYPERLINK l _Toc3261002345.1 數(shù)據(jù)庫表的介紹 PAGEREF _Toc326100234 h 18HYPERLINK l _Toc326100235用戶注冊表 PAGEREF _Toc326100235 h 18HYPERLINK l _Toc3261002365.1.2 完成下載的音樂表 PAGEREF _Toc326100236 h 19HYPERLINK l _Toc3261002375.1.3 播放清單表 PAGEREF _Toc326100237 h 19HYPERLINK
14、l _Toc3261002385.2 數(shù)據(jù)庫連接 PAGEREF _Toc326100238 h 19HYPERLINK l _Toc326100239第6章系統(tǒng)詳細(xì)設(shè)計(jì) PAGEREF _Toc326100239 h 21HYPERLINK l _Toc3261002406.1 歡送界面模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc326100240 h 21HYPERLINK l _Toc3261002416.2播放列表模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc326100241 h 22HYPERLINK l _Toc3261002426.3 歌曲播放模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc32610
15、0242 h 25HYPERLINK l _Toc3261002436.4 本地音樂模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc326100243 h 27HYPERLINK l _Toc3261002446.5 會(huì)員登錄模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc326100244 h 29HYPERLINK l _Toc3261002456.6 會(huì)員注冊模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc326100245 h 32HYPERLINK l _Toc3261002466.7 音樂下載模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc326100246 h 34HYPERLINK l _Toc3261002476.
16、8 設(shè)置皮膚模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc326100247 h 36HYPERLINK l _Toc326100248第7章系統(tǒng)測試 PAGEREF _Toc326100248 h 38HYPERLINK l _Toc3261002497.1 登錄功能測試 PAGEREF _Toc326100249 h 38HYPERLINK l _Toc3261002507.2 圖片上傳功能測試 PAGEREF _Toc326100250 h 39HYPERLINK l _Toc3261002517.3 文件上傳功能測試 PAGEREF _Toc326100251 h 39HYPERLINK l
17、_Toc326100252結(jié)論 PAGEREF _Toc326100252 h 40HYPERLINK l _Toc326100253參考文獻(xiàn) PAGEREF _Toc326100253 h 41HYPERLINK l _Toc326100254致 PAGEREF _Toc326100254 h 42-. z第1章 緒論1.1 選題的目的及意義Android是谷歌于2007年公布的開放式源代碼手機(jī)系統(tǒng),它的開放性就優(yōu)于其它封閉式的手機(jī)系統(tǒng),因此,任何人都可能根據(jù)自己的喜好將手機(jī)系統(tǒng)中的所有功能重新編寫。這使得越來越多的人關(guān)注這個(gè)操作系統(tǒng)。本次作品音樂播放器就是基于Android平臺(tái)的。隨著計(jì)算
18、機(jī)的廣泛運(yùn)用,手機(jī)市場的迅速開展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一局部了。于是各種手機(jī)播放器也緊跟著開展起來,但是很多播放器一味追求外觀花哨,功能龐大,對用戶的手機(jī)造成了很多資源浪費(fèi),比方CPU,存等的占用率過高,在用戶需要多任務(wù)操作時(shí),受到了不小的影響,帶來了許多不便,而對于大多數(shù)普通用戶,許多功能用不上,形同虛設(shè)。針對以上各種弊端,選擇了開發(fā)多語種的音頻視頻播放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶如聽歌,看電影的需求,除了能播放常見格式的語音視頻文件,高級(jí)功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文
19、等語言界面。要研究了各種市場上流行的手機(jī)播放器,了解它們各自的插件及編碼方式,還有各種播放器播放的特別格式文件,分析各種編碼的優(yōu)缺點(diǎn)以及各種播放器本身存在的缺陷和特點(diǎn),編寫出功能實(shí)用,使用方便快捷的播放器。目前已經(jīng)實(shí)現(xiàn)的功能有能播放常見音頻文件的功能,如MP3,WAV等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進(jìn),快退,音量調(diào)節(jié)等。播放模式也比擬完善,有單曲,順序,循環(huán),隨機(jī)播放等模式。1.2本課題涉及容的研究現(xiàn)狀A(yù)ndroid一詞的本義指“機(jī)器人,同時(shí)也是Google于2007年11月5日宣布的基于Linu*平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)
20、用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。Android是基于Linu*核的軟件平臺(tái)和操作系統(tǒng),早期由Google開發(fā)在華注冊商標(biāo)名為“安致,后由開放手機(jī)聯(lián)盟Open Handset Alliance開發(fā)。它采用了軟件堆層software stack,又名以軟件疊層的架構(gòu),主要分為三局部。低層以Linu*核工作為根底,只提供根本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一局部。另外,為了推廣此技術(shù),Google和其它幾十個(gè)手機(jī)公司建立了開放手機(jī)聯(lián)盟。Android在未公開之前常被傳聞為Google或gPhone。大多傳聞?wù)J為Google開發(fā)的是自己的
21、手機(jī)產(chǎn)品,而不是一套軟件平臺(tái)。到了2021年1月,Google開場發(fā)表自家品牌手機(jī)的Ne*us One。目前最新SDK版本為Android 4.0.3。1.3本系統(tǒng)要實(shí)現(xiàn)的根本目標(biāo)和研究容本文要實(shí)現(xiàn)的根本目標(biāo)和主要研究容有以下幾個(gè)方面:1音樂的播放,包括上一首、下一首、暫停、進(jìn)度條的更新和控制。2本地音樂的管理,自動(dòng)掃描SD卡的音樂,在列表顯示30秒以上的音頻文件。3會(huì)員特權(quán),包括在線音樂列表、下載列表、背景皮膚的更新。第2章系統(tǒng)的可行性研究當(dāng)今社會(huì)的生活節(jié)奏越來越快,人們對手機(jī)的要求也越來越高,由于手機(jī)市場開展迅速,是的手機(jī)操作系統(tǒng)也出現(xiàn)了不同各類,現(xiàn)在的市場主要有三個(gè)手機(jī)操作系統(tǒng),Wind
22、ows mobile,symbian,以及谷歌的Android操作系統(tǒng),其中占有開發(fā)源代碼優(yōu)勢的Android系統(tǒng)有最大的開展前景。則能否在手機(jī)上擁有自己編寫的個(gè)性音樂播放器呢.能的,谷歌Android系統(tǒng)就能做到。本文的音樂播放器就是基于谷歌Android手機(jī)平臺(tái)的播放器。2.1經(jīng)濟(jì)上的可行性Android是 Google 歷經(jīng)數(shù)年和投資數(shù)億美元開發(fā)出來的智能手機(jī)系統(tǒng),是 基于 Linu* 核的操作系統(tǒng),是 Google 公司在 2007 年 11 月 5 日公布的手機(jī)操 作系統(tǒng)。隨著各大移動(dòng)終端生產(chǎn)商大力開發(fā)和生產(chǎn)基于Android的移動(dòng)智能設(shè)備,Android迅速得到業(yè)界和社會(huì)的認(rèn)可,并
23、成為整個(gè)產(chǎn)業(yè)的熱點(diǎn),基于Android平 臺(tái)的各類人才逐漸成為各大企業(yè)競相爭奪的焦點(diǎn)。 而且Android是一個(gè)開放的系統(tǒng),不管是企業(yè)還是個(gè)人都可以參與來表達(dá)自己的創(chuàng)意和想法。2.2技術(shù)上的可行性Google 發(fā)起了圍繞Android的組織開放手機(jī)聯(lián)盟, 其英文全稱為 “Open Handset Alliance。 它采用了軟件堆層software stack,又名以軟件疊層 的架構(gòu),主要分為三局部。底層 Linu* 核只提供根本功能;其他的應(yīng)用軟件則 由各公司自行開發(fā),局部程序以 Java 編寫。 2.3操作上的可行性本系統(tǒng)采用Android框架,可以在eclipse中安裝Android開發(fā)
24、插件,使用Android模擬器也可以使用任意Android終端。模擬器和真正的Android手機(jī)沒有太大區(qū)別,人們對手機(jī)操作早已熟悉。綜合以上三方面,該系統(tǒng)具有很高的開發(fā)可行性,無論是從技術(shù)上經(jīng)濟(jì)上還是操作上。故此,可以設(shè)計(jì)該系統(tǒng)流程圖,建立數(shù)據(jù)字典。第3章需求分析軟件需求分析工作是軟件生存期中重要的一步,也是決定性的一步。軟件需求分析是一個(gè)不斷認(rèn)識(shí)和逐步細(xì)化的過程,該過程將軟件方案階段所確定的軟件圍逐步細(xì)化到可詳細(xì)定義的程度。需求分析還是軟件開發(fā)的根底,假定在該階段發(fā)現(xiàn)一個(gè)錯(cuò)誤,解決它需要用一小時(shí)的時(shí)間,到設(shè)計(jì)、編程、測試和維護(hù)階段解決,則要花幾倍甚至更多的時(shí)間。因此對于復(fù)雜系統(tǒng)而言,首先要
25、進(jìn)展需求分析。開發(fā)人員應(yīng)該對用戶的要求及現(xiàn)實(shí)環(huán)境進(jìn)展調(diào)查和了解。3.1 軟件目標(biāo)本系統(tǒng)屬于用戶常用的音樂播放器。可以方便用戶平時(shí)對音樂文件的操作。本系統(tǒng)應(yīng)到達(dá)以下目標(biāo):1軟件采用人機(jī)交互的方式,界面美觀友好,操作靈活、方便、富有個(gè)性化。2能夠?qū)σ魳肺募M(jìn)展有效的管理。3系統(tǒng)應(yīng)最大限度地實(shí)現(xiàn)易維護(hù)性和易操作性。3.2功能需求功能需求定義了開發(fā)人員必須實(shí)現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足了用戶的業(yè)務(wù)需求。用戶需求文檔描述了用戶使用產(chǎn)品必須要完成的任務(wù)。針對音樂播放器分別對音樂播放、在線音樂播放及會(huì)員特權(quán)的換膚等功能進(jìn)展詳細(xì)的調(diào)研和分析,總結(jié)出如下的用戶需求信息。3.3系統(tǒng)界面需求播放
26、器界面要求布局合理,顏色舒適,控制按鈕友好,要求整體有一個(gè)主要的元素標(biāo)準(zhǔn),統(tǒng)一的主題思想。3.4系統(tǒng)性能需求根據(jù)Android手機(jī)系統(tǒng)要求無響應(yīng)時(shí)間為5秒,所以就有如下性能要求:當(dāng)要求歌曲播放時(shí),程序響應(yīng)時(shí)間最長不能超過5秒當(dāng)要求歌曲暫停時(shí),程序響應(yīng)時(shí)間最長不能超過5秒當(dāng)要求歌曲上/下一首時(shí),程序響應(yīng)時(shí)間最長不能超過5秒第4章 系統(tǒng)的總體設(shè)計(jì)軟件功能設(shè)計(jì)是使整個(gè)軟件能根本實(shí)現(xiàn)音樂的播放、上一首、下一首、暫停等功能,能讓用戶通過本軟件欣賞音樂。在線音樂瀏覽和下載,背景皮膚的切換等功能更好的增強(qiáng)用戶體驗(yàn)。4.1 設(shè)計(jì)思想1將系統(tǒng)分成幾個(gè)相對獨(dú)立的模塊。2分層的模塊化程序設(shè)計(jì)思想,整個(gè)系統(tǒng)采用模塊化
27、構(gòu)造設(shè)計(jì)。作為應(yīng)用程序有較強(qiáng)的可操作性和擴(kuò)展性。3合理的數(shù)據(jù)流設(shè)計(jì),在應(yīng)用系統(tǒng)設(shè)計(jì)中,相對獨(dú)立的模塊間以數(shù)據(jù)流相互連接,使各模塊間的耦合性較低,方便系統(tǒng)運(yùn)行,提高系統(tǒng)平安性。4.2系統(tǒng)功能構(gòu)造圖根據(jù)上述需求分析,本Android版音樂播放器可分為一下幾個(gè)模塊: 播放器根本功能如圖4-1所示:圖4-1 播放器根本功能圖播放清單列表如圖4-2所示:圖4-2 播放器清單列表圖從圖中看出播放列表功能的參與者依然是用戶,這表達(dá)了客戶體驗(yàn)的要求,當(dāng)用戶選中列表中的一首歌時(shí),會(huì)有一個(gè)列表選項(xiàng),具備播放、移除功能。4.3 開發(fā)語言簡介4.3.1 Android簡介Android一詞的本義指“機(jī)器人,同時(shí)也是G
28、oogle于2007年11月5日宣布的基于Linu*平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。Android是基于Linu*核的軟件平臺(tái)和操作系統(tǒng),早期由Google開發(fā)在華注冊商標(biāo)名為“安致,后由開放手機(jī)聯(lián)盟Open Handset Alliance開發(fā)。它采用了軟件堆層software stack,又名以軟件疊層的架構(gòu),主要分為三局部。低層以Linu*核工作為根底,只提供根本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一局部。另外,為了推廣此技術(shù),Google和其它幾十個(gè)手機(jī)公司建
29、立了開放手機(jī)聯(lián)盟。Android在未公開之前常被傳聞為Google或gPhone。大多傳聞?wù)J為Google開發(fā)的是自己的手機(jī)產(chǎn)品,而不是一套軟件平臺(tái)。到了2021年1月,Google開場發(fā)表自家品牌手機(jī)的Ne*us One。目前最新SDK版本為Android 4.0.3。4.3.2 Android Features特性Android系統(tǒng)有如下的幾大特性:應(yīng)用程序框架 支持組件的重用與替換Dalvik虛擬機(jī) 專門為移動(dòng)設(shè)備做了優(yōu)化部集成瀏覽器 該瀏覽器基于開源的WebKit引擎優(yōu)化的圖形庫 包括2D和3D圖形庫,3D圖形庫基于OpenGL ESSQLite 用作構(gòu)造化的數(shù)據(jù)存儲(chǔ)多媒體支持 包括常
30、見的音頻、視頻和靜態(tài)印象文件格式如 MPEG4、H.264、MP3、AAC、 AMR、JPG、PNG、 GIFGSM依賴于硬件藍(lán)牙Bluetooth,EDGE,3G and WiFi 依賴于硬件照相機(jī),GPS,指南針,和加速度計(jì) 依賴于硬件豐富的開發(fā)環(huán)境 包括設(shè)備模擬器,調(diào)試工具,存及性能分析圖表,和Eclipse集成開發(fā)環(huán)境插件4.3.3 Android根本框架Android ArchitectureAndroid平臺(tái)的根本框架如圖1-1所示。圖1-1 Android根本框架圖(1)ApplicationsApplication Android會(huì)同一個(gè)核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括
31、email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是用JAVA編寫的。(2)Application FrameWork開發(fā)者完全可以核心應(yīng)用程序所使用的API框架。該應(yīng)用程序架構(gòu)用來簡化組件軟件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊不過得遵循框架的平安性限制。該應(yīng)用程序重用機(jī)制使得組建可以被用戶替換。所有的應(yīng)用程序都由一系列的效勞和系統(tǒng)組成,包括:可擴(kuò)展的視圖Views可以用來建應(yīng)用程序,包括列表lists,網(wǎng)格grids,文本框te*t bo*es,按鈕buttons,甚至包括一個(gè)可嵌入的web瀏覽
32、器容管理器Content Providers使得應(yīng)用程序可以另一個(gè)應(yīng)用程序的數(shù)據(jù)如聯(lián)系人數(shù)據(jù)庫,或者共享它們自己的數(shù)據(jù)。資源管理器Resource Manager提供非代碼資源的,如本地字符串,圖形,和分層文件layout files。通知管理器Notification Manager使得應(yīng)用程序可以在狀態(tài)欄中顯示客戶通知信息。活動(dòng)類管理器Activity Manager用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。(3)Libraries庫Android 包括一個(gè)被 Android 系統(tǒng)中各種不同組件所使用的 C/C+ 庫集。該庫通過 Android 應(yīng)用程序框架為開發(fā)者提供效勞。以下是
33、一些主要的核心庫:系統(tǒng) C 庫- 一個(gè)從 BSD 繼承來的標(biāo)準(zhǔn) C 系統(tǒng)函數(shù)庫 libc ,專門為基于 embedded linu* 的設(shè)備定制。 媒體庫- 基于 PacketVideo OpenCORE;該庫支持錄放,并且可以錄制許多流行的音頻視頻格式,還有靜態(tài)印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 Surface Manager - 對顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提供2D和3D圖層的無縫融合。 LibWebCore - 一個(gè)最新的web瀏覽器引擎用來支持Android瀏覽器和一個(gè)可嵌入的web視圖。 SGL - 一個(gè)置的2D圖形引擎
34、 3D libraries - 基于OpenGL ES 1.0 APIs實(shí)現(xiàn);該庫可以使用硬件3D加速如果可用或者使用高度優(yōu)化的3D軟加速。 FreeType - 位圖bitmap和向量vector字體顯示。 SQLite 一個(gè)對于所有應(yīng)用程序可用,功能強(qiáng)勁的輕型關(guān)系型數(shù)據(jù)庫引擎。(4)Android RuntimeAndroid 包括了一個(gè)核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。Dalvik是針對于同時(shí)高效地運(yùn)行多個(gè)VMs來實(shí)現(xiàn)的。Dalvik虛擬機(jī)執(zhí)行.de*的Dalvik可執(zhí)行文
35、件,該格式文件針對最小存使用做了優(yōu)化。該虛擬機(jī)是基于存放器的,所有的類都經(jīng)由JAVA匯編器編譯,然后通過SDK中的d*工具轉(zhuǎn)化成.de*格式由虛擬機(jī)執(zhí)行。Dalvik虛擬機(jī)依賴于linu*的一些功能,比方線程機(jī)制和底層存管理機(jī)制。(5)Linu*核Android 的核心系統(tǒng)效勞依賴于 Linu* 2.6 核,如平安性,存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。 Linu* 核也同時(shí)作為硬件和軟件堆棧之間的硬件抽象層。未來開展老牌智能手機(jī)軟件平臺(tái)制造商Symbian發(fā)言人則表示:Google的Android只不過是另一個(gè)linu*,symbian對其它軟件與其形成的競爭并不感到擔(dān)憂。除了北美之外,
36、Symbian在其它地區(qū)智能手機(jī)市場都占有大局部市場份額。與iPhone相似,Android采用WebKit瀏覽器引擎,具備觸摸屏、高級(jí)圖形顯示和上網(wǎng)功能,用戶能夠在手機(jī)上查看電子、搜索網(wǎng)址和觀看視頻節(jié)目等,比iPhone等其他手機(jī)更強(qiáng)調(diào)搜索功能,界面更強(qiáng)大,可以說是一種融入全部Web應(yīng)用的單一平臺(tái)。4.4.4 Android系統(tǒng)的四大組件在Android系統(tǒng)中,為我們提供了四大根本組件,每個(gè)組件是一個(gè)視圖,但是有些是可見的,有些是不可見的視圖,像Activity,ContentProvider是可見的視圖,Service和BroadcastReceiver是不可見的,它們只在系統(tǒng)的后臺(tái)運(yùn)行。
37、下面分別介紹四大組件:(1)Activity 簡介在Android系統(tǒng)中Activity提供可視化的用戶界面,一個(gè)Android應(yīng)用通常由多個(gè)Activity組成。多個(gè)Activity組成了Activity棧Stack,當(dāng)前活動(dòng)的Activity處于棧頂。Activity有自己的生命周期,由Android系統(tǒng)來控制。(2)Service 簡介顧名思義Service就是運(yùn)行在后臺(tái)的一種效勞程序,一般很少和用戶交互,因此沒有可視化界面定義一個(gè)Service類比擬簡單,只要繼承Service類,實(shí)現(xiàn)其生命周期中的方法就可以了。一個(gè)定義好的Service必須在AndroidManifest.*ml配置
38、文件注冊,通過元素聲明才能使用.Service有自己的生命周期,我們可以調(diào)用startService()啟動(dòng)一個(gè)Service或者bindService()方法來綁定一個(gè)存在的Service 。(3)Broadcast Receiver 簡介Broadcast Receiver 顧名思義播送接收器,它和事件處理機(jī)制類似,只不過事件處理機(jī)制是程序組件級(jí)別的例如,*個(gè)按鈕的單擊事件,而播送事件處理機(jī)制是系統(tǒng)級(jí)別的。到目前為止我們可以使用Intent來啟動(dòng)一個(gè)程序組件,我們還可以通過使用sendBroadcast()方法來發(fā)起一個(gè)系統(tǒng)級(jí)別的事件播送來傳遞消息。我們可以在你的應(yīng)用程序中實(shí)現(xiàn)Broadc
39、ast Receiver來監(jiān)聽和響應(yīng)這些播送的Intent。(4)ContentProvider簡介Content Provider 用來保存和檢索數(shù)據(jù),并且使應(yīng)用程序之間相互數(shù)據(jù)成為可能。它是跨應(yīng)用程序共享數(shù)據(jù)的唯一方法。Android 為常用的數(shù)據(jù)類型如:音視頻、圖片和聯(lián)系方式等提供了大量的Content Provider。它們被定義在Avider包下面。通過這樣定義好的ContentProvider 我們可以方便的進(jìn)展數(shù)據(jù)操作。當(dāng)然我們必須擁有適當(dāng)?shù)臋?quán)限。我們也可以自己來定ContentProvider共享我們的數(shù)據(jù),方便用戶的。4.4.5 SQLite簡介SQLite,是一款輕量級(jí)的關(guān)
40、系型數(shù)據(jù)庫。由于它占用的資源非常少,所以在很多嵌入式設(shè)備都是用SQLite來存儲(chǔ)數(shù)據(jù)。并且它目前支持Windows/Linu*/Uni*等等主流的操作系統(tǒng),兼容性還不錯(cuò)。我們也可以用多種開發(fā)語言如C*、Java、PHP等來通過ODBC接口操作SQLite,十分方便。Android作為目前主流的移動(dòng)操作系統(tǒng),完全符合SQLite占用資源少的優(yōu)勢,故在Android平臺(tái)上,集成了一個(gè)嵌入式關(guān)系型數(shù)據(jù)庫SQLite。如果你想要開發(fā) Android 應(yīng)用程序,一定需要在 Android 上存儲(chǔ)數(shù)據(jù),使用SQLite 數(shù)據(jù)庫是一種非常好的選擇。本數(shù)據(jù)庫支持功能如下:1.自動(dòng)建表,支持屬性來自繼承類:可根
41、據(jù)注解自動(dòng)完成建表,并且對于繼承類中的注解字段也支持自動(dòng)建表。2.自動(dòng)支持增刪改,增改支持對象化操作:增刪改是數(shù)據(jù)庫操作的最根本單元,不用重復(fù)寫這些增刪改的代碼,并且添加和更新支持類似于hibernate中的對象化操作。3.查詢方式靈活:支持android框架提供的方式,也支持原生sql方式。4.查詢結(jié)果對象化:對于查詢結(jié)果可自動(dòng)包裝為實(shí)體對象,類似于hibernate框架。5.查詢結(jié)果靈活:查詢結(jié)果支持對象化,也支持結(jié)果為ListMap形式,這個(gè)方法在實(shí)際工程中很實(shí)用,且效率更好些。4.4 搭建Android開發(fā)環(huán)境任何事物要運(yùn)行,都要有它的環(huán)境,Android也有它的環(huán)境才能夠運(yùn)行,下面介
42、紹Android的開發(fā)環(huán)境配置。搭建開發(fā)環(huán)境需要的軟件:操作系統(tǒng):window *P或linu*軟件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoopment ToolIDE環(huán)境:Eclipse IDE+ADT Eclipse3.3以上JDK:Java Runtime Environment虛擬機(jī) 、(JDK)Java Development kit安裝步驟如下:第一步:安裝Java虛擬機(jī)sun-java6-jdk版本。第二步:安裝Eclipse3.5工具,到官網(wǎng)./downloa
43、ds/,選擇版本下載后進(jìn)展安裝。如圖1-2Eclipse工具的版本如圖1-2所示:圖1-2 Eclipse工具的版本圖第三步:安裝Android SDK:首先要下載SDK,可以在這個(gè)網(wǎng)址下載developer.Android./sdk ,選擇相應(yīng)的系統(tǒng)進(jìn)展安裝。sdk下載的地址圖如圖1-3所示:圖1-3 sdk下載的地址圖第四步:安裝Android ADT插件。運(yùn)行Eclipse,選擇help-install new software 選擇add,將會(huì)彈出一個(gè)【Add Site】對話框?!続dd Site】對話框如圖1-4:圖1-4 【Add Site】對話框圖點(diǎn)擊OK,選擇要安裝的軟件,占n
44、e*t,然后選擇承受協(xié)議,直到安裝成功,重啟Eclipse軟件,設(shè)置Android SDK Home,Window-refrence。設(shè)置Android SDK Home界面如圖1-5所示:圖1-5 設(shè)置Android SDK Home界面圖在SDK location中輸入SDK Tools路D:AndroidsoftwareAndroid-sdk-windows 點(diǎn)擊OK,這樣Android環(huán)境就已經(jīng)搭建成功了。4.5Android 音樂播放器的工程4.5.1 Android工程Android的四大根本組件:Activity(活動(dòng)),Service(效勞),BroadcastReceiver
45、(播送),ContentProvider(容提供者),各組件之間要進(jìn)展切換需要一個(gè)意圖或企圖Intent類,通過啟動(dòng)StartIntent()方法來使各組件進(jìn)展跳轉(zhuǎn)Android的五大布局方式:LinearLayout(線性布局) FrameLayout(幀布局) TableLayout(表格布局) AbsoluteLayout(絕對布局) RelativeLayout(相對布局五種布局方式可以相互嵌套,Android各種漂亮的界面都是通過嵌套布局而實(shí)現(xiàn)的。Android的線程,以及線程之間通信的中介:Handler類Android配置文件:AndroidManifest.*ml及res資源文
46、件中各種屬性布局方式引用的資源等。Android系統(tǒng)將插件ADT集成到了Eclipse工具上,因此,一個(gè)Android程序啟動(dòng)后,系統(tǒng)會(huì)啟動(dòng)一個(gè)模擬器Emulator(圖1-6,該模擬器是一款手機(jī)板的樣式,擁有手機(jī)硬件的根本操作。我們也可以將右邊的鍵盤通過代碼屬性設(shè)置將其隱藏,界面的大小可自由設(shè)定。圖1-6 模擬器圖4.5.2 Android工程程序構(gòu)造Android工程根本構(gòu)造目錄包括:src (源代碼)、genAndroid系統(tǒng)自動(dòng)生成的常量、Res資源文件:主要存放程序界面的布局配置.*ml文件和圖片資源。AndroidMainfes.*ml 是四大組件的驅(qū)動(dòng)配置文件,有它的存在,And
47、roid程序的四大組件才可以正常的跳轉(zhuǎn)。Android資源的類型和布局圖1-7圖1-7 資源類型和布局圖下列圖1-8 到圖1-12為音樂播放器代碼構(gòu)造和各界面的配置文件,圖像資源等,圖1-8 為一個(gè)Android工程所必須的構(gòu)造,圖3-9為該播放器的.Java文件,圖1-10為播放器所用到的字符串,字體大小,字的顏色等配置文件,圖1-11為 該播放器的各種界面的布局配置文件,圖1-12為該播放器的圖片資源。圖1-8音樂播放器代碼構(gòu)造和各界面的配置文件,圖像資源等如圖1-9到圖1-12:圖1-9圖1-10圖1-11圖1-124.5.3 AndroidManifest.*ml文件Android系統(tǒng)
48、的任何一個(gè)程序啟動(dòng)都需要AndroidManifest.*ml來啟動(dòng)程序,任何一個(gè)新建的工程目錄都會(huì)自動(dòng)生成一個(gè)AndroidManifest.*ml文件,此配置文件是整個(gè)程序能夠正常運(yùn)行的核心,它里面包含了Android SDK的版本,程序運(yùn)行的默認(rèn)Activity,當(dāng)程序中的任何一個(gè)組件觸發(fā)事件后,系統(tǒng)都會(huì)自動(dòng)的去AndroidManifest.*ml中尋找標(biāo)識(shí)來作出相應(yīng)的操作。任何一個(gè)AndroidManifest.*ml文件的格式都應(yīng)為:Android系統(tǒng)有一個(gè)編碼的規(guī)定,支持的編碼是utf-8,當(dāng)程序中出現(xiàn)亂碼是,我們須將其編碼格式轉(zhuǎn)化為utf-8.在 AndroidManifest
49、.*ml中會(huì)在第一行聲明一句:。它是該系統(tǒng)支持的版本和編碼。在第二行定義了我們需要使用的架構(gòu),該架構(gòu)來自*mlns:Android=schemas.Android./apk/res/Android。*mlns(*ML namespace)是一個(gè)命名空間,它就像一條河的源頭一樣能讓我們找到系統(tǒng)架構(gòu),每一個(gè)配置文件必須有這個(gè)*mlns,否則程序中的所使用的所有資源將無法找到。在application元素我們定義Android:icon=drawable/iconAndroid:label=string/app_name,Android:icon是程序在手機(jī)中顯示的圖片,我們運(yùn)用drawable/i
50、con表示了對res/drawable目錄下的icon.png的引用。string/app_name表示了對res/value目錄下string.*ml中定義的app_name參數(shù)的引用。這是系統(tǒng)確定的首先要啟動(dòng)的Activity是PlayRackActivity。在intent-filter選項(xiàng)中,有action和category等等屬性,我們需要定義action的值為Aent.action.MAIN,category的值為Aent.category.LAUNCHER,它們是系統(tǒng)的值,程序在解析到這些常用后就可以確定首先要啟動(dòng)的Activity。當(dāng)我們需要通過一個(gè)組件觸發(fā)另一個(gè)組件時(shí),我們將
51、設(shè)定action和category的其它屬性值,系統(tǒng)會(huì)根據(jù)我們設(shè)定的屬性值去AndroidManifest.*ml的application 中尋找標(biāo)識(shí),任何一個(gè)Activity的action和category是唯一,所以程序在任何時(shí)候都能唯一啟動(dòng)一個(gè)Activity,這樣,不同的Activity之間的跳轉(zhuǎn)就實(shí)現(xiàn)了。在AndroidManifest.*ml中有一個(gè)根結(jié)點(diǎn),它是我們需要定義的ADT版本,例如我們將其值設(shè)定為Android:minSdkVersion=10,則表示此Android工程所用的版本為2.3,Android還有1.1、1.5、1.6、2.0、2.1、2.2、2.3、3.0、
52、4.0這幾個(gè)版本。如果我們需要對網(wǎng)絡(luò)進(jìn)展,比方翻開一個(gè)網(wǎng)頁,剛我還需要設(shè)置一個(gè)網(wǎng)絡(luò)權(quán)限uses-permission,將其的值設(shè)置為Android:name=Android.permission.INTERNET,我們就可以網(wǎng)絡(luò)了。當(dāng)然uses-permission還有很多其它的權(quán)限,例如GPS定位權(quán)限,瀏覽器數(shù)據(jù)存取權(quán)限.Android.browser.permission.READ_HISTORY_BOOKMARKS等等。當(dāng)程序的任何一個(gè)組件要用到時(shí),都必須在AndroidManifest.*ml文件中聲明。四大組件要使用前都需要聲明,其聲明方式如下:其中聲明provider時(shí)還需要聲明其
53、授權(quán) authorities。每個(gè)組件里面還有很多的屬性,會(huì)根據(jù)程序的具體需要定義不同的屬性。過濾器intent-filter 有兩種啟動(dòng)方式來啟動(dòng)界面。顯示方式顯示方式是在代碼中的直接啟動(dòng)組件,啟動(dòng)時(shí)會(huì)聲明Intent,在它的構(gòu)造方法Intent(組件1,組件2)中直接指定一個(gè)組件的名字,然后調(diào)用方法startIntent(intent)以啟動(dòng)指定的組件。隱式方式隱式方式是通過過濾器來過濾完成的,啟動(dòng)的組件必須滿足action和category的條件才能夠啟動(dòng)該組件。這些屬性是在AndroidManifest.*ml文件中聲明的。兩種啟動(dòng)方式都可以通過程序setActionACTION常量和
54、startActivityintent或配置文件兩種方式來實(shí)現(xiàn)組件的跳轉(zhuǎn)。第5章 數(shù)據(jù)庫的設(shè)計(jì)數(shù)據(jù)構(gòu)造組織和數(shù)據(jù)庫文件設(shè)計(jì)要根據(jù)不同用途,使用要求等,來決定數(shù)據(jù)的整體組織形式等一系列問題。數(shù)據(jù)庫,顧名思義,是存放數(shù)據(jù)的倉庫。只不過這個(gè)倉庫是在計(jì)算機(jī)存儲(chǔ)設(shè)備上,而且數(shù)據(jù)是按一定的格式存放的。數(shù)據(jù)庫中的數(shù)據(jù)按一定數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的重復(fù)度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并且可以被在一定圍的各種用戶共享。在涉及數(shù)據(jù)庫的軟件開發(fā)中,需要根據(jù)有待解決的問題性質(zhì)、規(guī)模,以及所采用的前端程序創(chuàng)立工具等,做出適宜的數(shù)據(jù)庫類型選擇。本系統(tǒng)采用SQLite數(shù)據(jù)庫系統(tǒng),在該系統(tǒng)中新建一個(gè)數(shù)據(jù)庫,將其命
55、名為music.db。然后,在該系統(tǒng)中創(chuàng)3個(gè)數(shù)據(jù)庫表,分別為用戶注冊表(logintbl) 、音樂下載表(downloadhistorytbl) 、播放清單表(itemtbl)。5.1數(shù)據(jù)庫表的介紹本系統(tǒng)采用SQLite數(shù)據(jù)庫系統(tǒng),在該系統(tǒng)中新建一個(gè)數(shù)據(jù)庫,將其命名為music.db。然后,在該系統(tǒng)中創(chuàng)3個(gè)數(shù)據(jù)庫表,分別為用戶注冊信息表(logintbl) 、完成下載的音樂表(downloadhistorytbl) 、播放清單表(itemtbl)。下面對主要的數(shù)據(jù)庫表做簡要的介紹:表5-1音樂播放器表清單表名稱表用途logintbl用戶注冊信息表downloadhistorytbl完成下載的音
56、樂表itemtbl播放清單表5.1.1用戶注冊表圖片新聞表包含了用戶的ID、用戶名、密碼、。表5-2用戶注冊信息表列名數(shù)據(jù)類型長度字段描述_idinteger4用戶ID,主鍵,自動(dòng)增長usernamete*t20用戶名passwordte*t20用戶密碼mailbo*te*t50用戶完成下載的音樂表完成下載的音樂表記錄了工會(huì)新聞的根本信息。該表是整個(gè)工會(huì)管理系統(tǒng)的核心表,幾乎所有的操作包括新聞的發(fā)布、更新、顯示等,都和該表有著密切的關(guān)系表5-3通知根本信息表列名數(shù)據(jù)類型長度字段描述_idinteger4歌曲編號(hào),主鍵,自動(dòng)增長musiamete*t50歌曲名稱albumnamete*t20唱片
57、集albumpicpathte*t30唱片集縮略圖路徑singerte*t4歌手名稱poseradddatete*tte*t44作曲家是否被下載5.1.3播放清單表播放清單表主要是對新聞進(jìn)展詳細(xì)的分類。表5-4播放清單表列名數(shù)據(jù)類型長度字段描述_idinteger5編號(hào),主鍵groupidmusicidintegerinteger55組編號(hào)歌曲編號(hào)5.2 數(shù)據(jù)庫連接Android數(shù)據(jù)庫存儲(chǔ)的位置在data/data/databases/目錄下。Android是利用ContentProvider作為容提供商,SQLiteOpenHelper數(shù)據(jù)庫幫助類來進(jìn)展對數(shù)據(jù)庫的創(chuàng)立和操作。通過Conte*
58、t.getContentResolver()方法直接對數(shù)據(jù)庫進(jìn)展操作。程序中數(shù)據(jù)庫類為DBHelper e*tends SQLiteOpenHelper繼承關(guān)系,容提供類DBProvider e*tends ContentProvider繼承關(guān)系。主要代碼如下:public DBOpenHelper(Conte*t conte*t) super(conte*t, DBNAME, null, VERSION);public void onCreate(SQLiteDatabase db) String histroySql = create table if not e*ists + TBL_H
59、ISTORY + (+ _id integer primary key autoincrement ,+ musiame te*t not null, + albumname te*t not null ,+ albumpicpath te*t not null, + singer te*t not null ,+ poser te*t nto null , + adddate te*t not null + );String itemSql = create table if not e*ists + TBL_MUSICITEM + (+ _id integer primary key au
60、toincrement,+ groupid integer not null, + musicid integer not null+ );String loginSql = create table if not e*ists +TBL_LOGIN+(+ _id integer primary key autoincrement ,+username te*t not null, + password te*t not null, + mailbo* te*t +);db.e*ecSQL(histroySql);db.e*ecSQL(itemSql);db.e*ecSQL(loginSql)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 室內(nèi)設(shè)計(jì)裝修合同協(xié)議-雙方權(quán)利義務(wù)明確規(guī)定
- 醫(yī)院人力資源管理系統(tǒng)項(xiàng)目解決方案
- 2024年采購合同錦集
- 專利申請權(quán)轉(zhuǎn)讓合同協(xié)議范本
- 房地產(chǎn)公司合同管理規(guī)范
- 代理商股份合作合同范本精講
- 十萬短期借款合同
- 中國銀行總行異地直貸項(xiàng)目委托代管合約
- 2024年電影獨(dú)家買斷發(fā)行合同樣本
- 整廠出售與合作協(xié)議書
- 《9 作息有規(guī)律》教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治一年級(jí)上冊統(tǒng)編版
- 2024-2030年全球清真食品市場競爭趨勢預(yù)測與前景營銷策略研究報(bào)告
- 2024-2025學(xué)年部編版語文八年級(jí)上冊 期中綜合測試卷(四)
- 期中試題-2024-2025學(xué)年統(tǒng)編版二年級(jí)語文上冊
- 2024至2030年中國別墅行業(yè)投資前景分析預(yù)測及未來趨勢發(fā)展預(yù)測報(bào)告
- 八年級(jí)生物上冊知識(shí)點(diǎn)總結(jié)(填空版+答案)
- 醫(yī)師定期考核(簡易程序)練習(xí)及答案
- 2024-2030年中國會(huì)計(jì)師事務(wù)所行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報(bào)告
- 2024年國有企業(yè)新質(zhì)生產(chǎn)力調(diào)研報(bào)告
- 2024年國家開放大學(xué)電大開放英語考試題題庫
- 2022版義務(wù)教育(歷史)課程標(biāo)準(zhǔn)(附課標(biāo)解讀)
評論
0/150
提交評論