版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于Android手機平臺的音樂播放器</p><p><b> 目 錄</b></p><p> 第一章 引 言- 1 -</p><p> 1.1 項目背景- 1 -</p><p> 1.2 編寫目的- 1 -</p><p> 第二章 系統(tǒng)需求分析
2、- 2 -</p><p> 2.1 功能需求(用例圖分析)- 2 -</p><p> 2.1.1 播放器的基本控制需求- 2 -</p><p> 2.1.2 播放清單列表管理需求- 4 -</p><p> 2.1.3 播放友好性需求- 6 -</p><p> 2.1.4 播放器擴展卡需求
3、- 7 -</p><p> 2.1.5 功能需求(時序圖)分析- 8 -</p><p> 2.2 系統(tǒng)結構圖和流程圖- 10 -</p><p> 2.3 系統(tǒng)界面需求- 12 -</p><p> 2.4 系統(tǒng)性能需求- 13 -</p><p> 2.5 運行環(huán)境需求- 13 -</p
4、><p> 第三章 Android數據庫設計- 13 -</p><p> 3.1 數據庫及字段屬性設計- 14 -</p><p> 3.1.1 字段設計(表、圖)- 14 -</p><p> 3.1.2 音樂播放器E-R圖- 15 -</p><p> 3.2 數據庫連接- 16 -</p&
5、gt;<p> 3.2.1 創(chuàng)建數據庫- 16 -</p><p> 3.2.2 操作數據庫- 17 -</p><p> 3.2.3 數據顯示- 18 -</p><p> 第四章 Android項目介紹- 18 -</p><p> 4.1 什么是Android?- 18 -</p><
6、;p> 4.1.1 Android簡介- 19 -</p><p> 4.1.2 Android Features特性- 19 -</p><p> 4.1.3 Android基本框架(Android Architecture)- 20 -</p><p> 4.1.4 Android系統(tǒng)的四大組件- 22 -</p><p
7、> 4.2 搭建Android開發(fā)環(huán)境- 23 -</p><p> 4.3 Android常用工具的使用- 26 -</p><p> 4.3.1 命令行的使用- 26 -</p><p> 4.3.2 Dalvik Debug Monitor Service (DDMS)的使用- 26 -</p><p> 4.4
8、 Android 音樂播放器的工程- 27 -</p><p> 4.4.1 Android項目- 27 -</p><p> 4.4.2 Android工程程序結構- 28 -</p><p> 4.4.3 AndroidManifest.xml文件- 29 -</p><p> 第五章 播放器系統(tǒng)功能詳細設計- 31 -
9、</p><p> 5.1音樂播放器主界面功能實現- 31 -</p><p> 5.1.1 播放器主界面- 31 -</p><p> 5.1.2 播放界面音軌的實現- 33 -</p><p> 5.1.3 播放器播放、暫停、停止等功能- 35 -</p><p> 5.2 播放列表功能- 36
10、 -</p><p> 5.3 菜單功能- 38 -</p><p> 5.3.1 菜單界面- 39 -</p><p> 5.3.2 菜單功能實現- 40 -</p><p> 5.4 播放設置界面- 41 -</p><p> 5.4.1 界面實現- 41 -</p><p&
11、gt; 5.4.2 歌詞顯示實現- 43 -</p><p> 5.5 手機擴展卡的訪問- 45 -</p><p> 5.5.1 文件瀏覽器界面- 45 -</p><p> 5.5.2 文件瀏覽器功能實現- 46 -</p><p> 5.6 數據存儲方式- 47 -</p><p> 5.6
12、.1 SharedPreferences- 47 -</p><p> 5.6.2 File存儲方式- 48 -</p><p> 5.6.3 SQLiteDatabase數據庫- 48 -</p><p> 第六章 結 論- 49 -</p><p><b> 摘 要</b></p>
13、<p> 當今社會的生活節(jié)奏越來越快+Android系統(tǒng)上一的款音樂播放器應用程序的設計與實現進行討論。Android是一個開源的系統(tǒng),它底層是基于Linux的操作系統(tǒng),本論文的音樂播放器采用了Android開源系統(tǒng)技術,利用Java語言和Eclipse編輯工具對播放器進行編寫。同時給出了詳細的系統(tǒng)設計過程、部分界面圖及主要功能運行流程圖,本文還對高度過程中遇到的問題和解決方法進行了詳細的討論,該音樂播放器集播放、暫停、停
14、止、上一首、下一首、音量調節(jié)、歌詞顯示等功能于一體,性能良好,在Android系統(tǒng)中能獨立運行。該播放器還擁有對手機文件瀏覽器的訪問功能、歌曲播放模式、以及歌詞開閉狀態(tài)的友好設置.MP3的全名是MPEG Audio Layer-3,是一種聲音文件的壓縮格式,由于本播放器只限于應用層程序的探討,所以對具體的壓縮算法不作深究。</p><p> 關鍵詞:Android ; 開源系統(tǒng) ; linux ; 音樂播放器&
15、lt;/p><p><b> ABSTRACT</b></p><p> The pace of life in today's society, with more advanced hardware mobile devices for mobile devices, people more and more is also high, the requi
16、rements 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 applic
17、ation is discussed. Take the system is an open source, it is based on the operating system, use the Linux music player of the Android op</p><p> KeyWords:Android ; Open source system ; linux ; music player&
18、lt;/p><p><b> 第一章 引 言</b></p><p><b> 1.1 項目背景</b></p><p> 當今社會的生活節(jié)奏越來越快,人們對手機的要求也越來越高,由于手機市場發(fā)展迅速,使得手機操作系統(tǒng)也出現了不同各類,現在的市場上主要有三個手機操作系統(tǒng),Windows mobile,symbian,以及
19、谷歌的Android操作系統(tǒng),其中占有開放源代碼優(yōu)勢的Android系統(tǒng)有最大的發(fā)展前景。那么能否在手機上擁有自己編寫的個性音樂播放器呢?能的,谷歌Android系統(tǒng)就能做到。本文的音樂播放器就是基于谷歌Android手機平臺的播放器。</p><p> Android:是谷歌于2007年公布的開放式源代碼手機系統(tǒng),它的開放性就優(yōu)于其它封閉式的手機系統(tǒng),因此,任何人都可能根據自己的喜好將手機系統(tǒng)中的所有功能重新
20、編寫。這使得越來越多的人關注這個操作系統(tǒng)。本次作品音樂播放器就是基于Android平臺的。</p><p> 隨著計算機的廣泛運用,手機市場的迅速發(fā)展,各種音頻視頻資源也在網上廣為流傳,這些資源看似平常,但已經漸漸成為人們生活中必不可少的一部分了。于是各種手機播放器也緊跟著發(fā)展起來,但是很多播放器一味追求外觀花哨,功能龐大,對用戶的手機造成了很多資源浪費,比如CPU,內存等的占用率過高,在用戶需要多任務操作時,
21、受到了不小的影響,帶來了許多不便,而對于大多數普通用戶,許多功能用不上,形同虛設。針對以上各種弊端,選擇了開發(fā)多語種的音頻視頻播放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶(如聽歌,看電影)的需求,除了能播放常見格式的語音視頻文件,高級功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文等語言界面。 要研究了各種市場上流行的手機播放器,了解它們各自的插件及編碼方式,還有各種播放器播放的特別格式文件,分析各種編碼
22、的優(yōu)缺點以及各種播放器本身存在的缺陷和特點,編寫出功能實用,使用方便快捷的播放器。目前已經實現的功能有能播放常見音頻文件的功能,如MP3,WAV,等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進,快退,音量調節(jié)等。播放模式也比較完善,有單曲,</p><p><b> 1.2 編寫目的</b></p><p> 現今社會生活緊張,而欣賞音樂是其中最好
23、的舒緩壓力的方式之一,本項目的目的是開發(fā)一個可以播放主流音樂文件格式的播放器,本設計的實現的這主要功能是播放Mp3,Wav多種格式的音樂文件,并且能夠控制播放,暫停,停止,上一曲,下一曲,音量調節(jié),視覺外觀,播放列表和歌曲文件的管理操作等多種播放控制功能,界面簡明,操作簡單。 </p><p> 本項目是一款基于Android手機平臺的音樂播放器,使Android手機擁有個性的多媒體播放器,使手機顯得更生動靈活
24、化,與人們更為接近,讓手機主人隨時隨地處于音樂視頻的旋律之中。使人們的生活更加多樣化。也使設計者更加熟練Android的技術和其它在市場上的特點</p><p> 第二章 系統(tǒng)需求分析</p><p> 2.1 功能需求(用例圖分析)</p><p> 根據項目的目標,我們可獲得項目系統(tǒng)的基本需求,以下從不同角度來描述系統(tǒng)的需求,并且使用用例圖來描述,系統(tǒng)的功
25、能需求,我們分成四部分來概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器擴展卡需求。以下分別描述:</p><p> 2.1.1 播放器的基本控制需求</p><p> 圖2.1 播放器基本控制圖</p><p> 2.1.2 播放清單列表管理需求</p><p> 當用戶選中列表中某一項歌曲,就有的需求:&
26、lt;/p><p> 圖2.2 播放器清單</p><p> 2.1.3 播放友好性需求</p><p> 圖2.3 播放器設定</p><p> 2.1.4 播放器擴展卡需求</p><p> 圖2.4 文件瀏覽器</p><p> 2.1.5 功能需求(時序圖)分析</p
27、><p> 音樂播放器的時序圖分析如(圖)</p><p> 2.2 系統(tǒng)結構圖和流程圖</p><p> (1)音樂播放器的系統(tǒng)流程圖(圖2.5.1)</p><p> 圖2.5.1 流程圖</p><p> (2)系統(tǒng)功能表(表2.1)和系統(tǒng)功能結構圖(圖2.5.2)</p><p>
28、;<b> 表2.1 功能表</b></p><p> 圖2.5.2 系統(tǒng)功能結構圖</p><p> 2.3 系統(tǒng)界面需求</p><p> 播放器界面要求布局合理,顏色舒適,控制按鈕友好,為了減少開發(fā)工程量,圖片素材多數為公司項目素材(圖2.6)</p><p> 圖2.6 播放器界面</p>
29、<p> 說明:左下角為清單按鈕 右下角為程序退出按鈕 </p><p> 藍色條為音軌 </p><p> 2.4 系統(tǒng)性能需求</p><p> 根據Android手機系統(tǒng)要求無響應時間為5秒,所以就有如下性能要求:</p><p> 當要求歌曲播放時,程序響應時間最長不能超過5秒</p>
30、<p> 當要求歌曲暫停時,程序響應時間最長不能超過5秒</p><p> 當要求歌曲停止時,程序響應時間最長不能超過5秒</p><p> 當要求歌曲上/下一首時,程序響應時間最長不能超過5秒</p><p> ?。?)當要求進行清單列表時,程序響應時間最長不能超過5秒</p><p> 2.5 運行環(huán)境需求</
31、p><p> 操作系統(tǒng):Android手機基于Linux操作系統(tǒng)</p><p> 支持環(huán)境:Android 1.5 - 2.0.1版本</p><p> 開發(fā)環(huán)境:Eclipse 3.5 ADT 0.95 </p><p> 第三章 Android數據庫設計</p><p> 數據結構組織和數據庫文件設計要根據
32、不同用途,使用要求等,來決定數據的整體組織形式等一系列問題。</p><p> 數據庫,顧名思義,是存放數據的倉庫。只不過這個倉庫是在計算機存儲設備上,而且數據是按一定的格式存放的。數據庫中的數據按一定數據模型組織、描述和存儲,具有較小的重復度、較高的數據獨立性和易擴展性,并且可以被在一定范圍內的各種用戶共享。在涉及數據庫的軟件開發(fā)中,需要根據有待解決的問題性質、規(guī)模,以及所采用的前端程序創(chuàng)建工具等,做出合適的
33、數據庫類型選擇</p><p> 3.1 數據庫及字段屬性設計</p><p> 3.1.1 字段設計(表、圖)</p><p> file_table 主要是保存歌曲名字、類型、路徑</p><p> 字段說明:Id 歌曲id號 fileName 歌曲名字 filePath 歌曲路徑 sort 歌曲類型(表3.1、圖3.1.1)&
34、lt;/p><p> Android自帶一個MediaStore封閉類 專門來存儲媒體信息</p><p> 通過Uri EXTERNAL_CONTENT_URI 來訪問SDcard中的歌曲詳細信息。</p><p> 存放媒體信息如TITLE(標題)、ARTIST(藝術家)、ALBUM(專輯)、SIZE(大小 )(表3.2、圖3.1.2)</p>
35、<p><b> 表3.1</b></p><p><b> 表3.2</b></p><p> 圖3.1.1 歌曲列表</p><p> 圖3.1.2 歌曲詳細</p><p> 3.1.2 音樂播放器E-R圖</p><p> 音樂播放器 E-R(實
36、體-聯系:entity-relation圖)圖(圖3.1.3)</p><p> 圖3.1.3 E-R圖</p><p><b> 3.2 數據庫連接</b></p><p> 這里將介紹如何進行Android數據庫連接,Android中自帶SQLite數據庫,這是一個十分小型的數據庫,這樣正適合Android這種移動平臺使用。<
37、/p><p> Android數據庫存儲的位置在data/data/<項目文件夾>/databases/目錄下 Android是利用ContentProvider作為內容提供商,SQLiteOpenHelper數據庫幫助類來進行對數據庫的創(chuàng)建和操作。通過Context.getContentResolver()方法直接對數據庫進行操作。程序中數據庫類為DBHelper extends SQLite
38、OpenHelper(繼承關系),內容提供類DBProvider extends ContentProvider(繼承關系)</p><p> 3.2.1 創(chuàng)建數據庫</p><p> Android 提供了標準的數據庫創(chuàng)建方式。繼承SQLiteOpenHelper ,實現onCreate 和 onUpgrade 兩個方法,有個好處就是便于數據庫版本的升級,連接數據庫的算法如下:<
39、;/p><p> public DBHelper(Context context) {// 創(chuàng)建數據庫</p><p> super(context, DATABASE_NAME,null, DATABASE_VERSION);</p><p><b> }</b></p><p> public void onCr
40、eate(SQLiteDatabase db) {// 創(chuàng)建時調用</p><p> db.execSQL(DATABASE_CREATE);</p><p><b> }</b></p><p> public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVer
41、sion) {// 版本更新時調用</p><p> db.execSQL("DROP TABLE IF EXISTS File_Table");</p><p> onCreate(db);</p><p><b> }</b></p><p> @Override // 在ContextP
42、rovider運行時自動創(chuàng)建數據庫 </p><p> public boolean onCreate() {</p><p> dbOpenHelper= new DBHelper(getContext());</p><p> return true;</p><p><b> }</b></
43、p><p> 數據庫如果創(chuàng)建不成功則拋出FIleNotFoundException異常</p><p> 3.2.2 操作數據庫</p><p> Android對數據庫的操作主要有插入、刪除、更新、查詢操作,在進行任何操作時都必須指定一個Uri,才能對相應的表進行數據操作。</p><p><b> //數據庫刪除操作<
44、/b></p><p><b> @Override</b></p><p> public int delete(Uri arg0, String arg1, String[] arg2) {</p><p> SQLiteDatabase db = dbOpenHelper.getWritableDatabase();</
45、p><p><b> try {</b></p><p> Db.delete(FileColumn.TABLE, arg1, arg2);</p><p> } catch (Exception ex) {</p><p> ex.printStackTrace();</p><p> }
46、return 1;</p><p><b> }</b></p><p> @Override//數據庫插入操作</p><p> public Uri insert(Uri uri, ContentValues values) {</p><p> SQLiteDatabase db = dbOpenHelpe
47、r.getWritableDatabase();</p><p> long count = 0;</p><p> try { count = db.insert(FileColumn.TABLE, null, values);</p><p> } catch (Exception ex) </p><p> { ex.print
48、StackTrace(); }</p><p> if (count > 0) return uri;</p><p> else return null;</p><p><b> }</b></p><p> // 數據庫更新操作</p><p><b> @Over
49、ride</b></p><p> public int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) {</p><p> SQLiteDatabase db = dbOpenHelper.getWritableDatabase();</p>&l
50、t;p> int i = 0;</p><p><b> try {</b></p><p> i = db.update(FileColumn.TABLE, values, selection, null);return i;</p><p> } catch (Exception ex) {}</p><p
51、><b> return 0;</b></p><p><b> }</b></p><p> 3.2.3 數據顯示</p><p> 程序是利用Cursor游標類指向數據表中的某一項,然后進行查詢數據,用Log日志顯示出來</p><p> @Override//數據庫查詢操作&l
52、t;/p><p> public Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String sortOrder) {</p><p> SQLiteDatabase db = dbOpenHelper.getWritableDatabase();</p>
53、<p> // 依次參數為:表名,查詢字段,where語句,替換,group by(分組),having(分組條件),order by(排序)</p><p> Cursor cur = db.query(FileColumn.TABLE, projection, selection,selectionArgs, null, null, sortOrder);return cur;}</p&
54、gt;<p> 第四章 Android項目介紹</p><p> 4.1 什么是Android?</p><p> 4.1.1 Android簡介</p><p> Android一詞的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,
55、號稱是首個為移動終端打造的真正開放和完整的移動軟件。目前最好的是Android2.0的摩托羅拉Droid</p><p> Android是基于Linux內核的軟件平臺和操作系統(tǒng),早期由Google開發(fā)(在華注冊商標名為“安致”),后由開放手機聯盟(Open Handset Alliance)開發(fā)。它采用了軟件堆層(software stack,又名以軟件疊層)的架構,主要分為三部分。低層以Linux內核工作為
56、基礎,只提供基本功能;其他的應用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。另外,為了推廣此技術,Google和其它幾十個手機公司建立了開放手機聯盟。Android在未公開之前常被傳聞為Google電話或gPhone。大多傳聞認為Google開發(fā)的是自己的手機電話產品,而不是一套軟件平臺。到了2010年1月,Google開始發(fā)表自家品牌手機電話的Nexus One。目前最新SDK版本為Android 2.1</p>
57、;<p> 4.1.2 Android Features特性</p><p> Android系統(tǒng)有如下的幾大特性:</p><p> ·應用程序框架 支持組件的重用與替換 ·Dalvik虛擬機 專門為移動設備做了優(yōu)化 ·內部集成瀏覽器 該瀏覽器基于開源的WebKit引擎 ·優(yōu)化的圖形庫 包括2D和3D圖形
58、庫,3D圖形庫基于OpenGL ES ·SQLite 用作結構化的數據存儲 ·多媒體支持 包括常見的音頻、視頻和靜態(tài)印象文件格式(如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) ·GSM電話(依賴于硬件) ·藍牙Bluetooth, EDGE, 3G, and WiFi (依賴于硬件)
59、3;照相機,GPS,指南針,和加速度計 (依賴于硬件) ·豐富的開發(fā)環(huán)境 包括設備模擬器,調試工具,內存及性能分析圖表,和Eclipse集成開發(fā)環(huán)境插件</p><p> 4.1.3 Android基本框架(Android Architecture)</p><p> 圖 4.1 Android Architecture</p><p> A
60、pplications</p><p> Application Android會同一個核心應用程序包一起發(fā)布,該應用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是用JAVA編寫的。</p><p> (2) Application FrameWork </p><p> 開發(fā)者完全可以訪問核心應用程序所
61、使用的API框架。該應用程序架構用來簡化組件軟件的重用;任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。該應用程序重用機制使得組建可以被用戶替換。</p><p> 所有的應用程序都由一系列的服務和系統(tǒng)組成,包括: · 可擴展的視圖(Views )可以用來建應用程序,包括列表(lists),網格(grids),文本框(text b
62、oxes),按鈕(buttons),甚至包括一個可嵌入的web瀏覽器 ·內容管理器(Content Providers )使得應用程序可以訪問另一個應用程序的數據(如聯系人數據庫),或者共享它們自己的數據?! ?#183;資源管理器(Resource Manager)提供非代碼資源的訪問,如本地字符串,圖形,和分層文件(layout files )。 ·通知管理器(Notification Manager)
63、使得應用程序可以在狀態(tài)欄中顯示客戶通知信息?! ?#183;活動類管理器(Activity Manager)用來管理應用程序生命周期并提供常用的導航回退功能。</p><p> (3) Libraries庫</p><p> Android 包括一個被 Android 系統(tǒng)中各種不同組件所使用的 C/C++ 庫集。該庫通過 Android 應用程序框架為開發(fā)者提供服務。以下是一些主要
64、的核心庫: 系統(tǒng) C 庫- 一個從 BSD 繼承來的標準 C 系統(tǒng)函數庫( libc ),專門為基于 embedded linux 的設備定制。 媒體庫- 基于 PacketVideo OpenCORE;該庫支持錄放,并且可以錄制許多流行的音頻視頻格式,還有靜態(tài)印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 Surface Manager - 對顯示子系統(tǒng)的管理,并且為多個應用程序提供2D和
65、3D圖層的無縫融合。 LibWebCore - 一個最新的web瀏覽器引擎用來支持Android瀏覽器和一個可嵌入的web視圖。 SGL - 一個內置的2D圖形引擎 3D libraries - 基于OpenGL ES 1.0 APIs實現;該庫可以使用硬件3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速。 FreeType - 位圖(bitmap)和向量(vector)字體顯示。 SQLite </p><p>
66、; (4) Android Runtime </p><p> Android 包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數功能。每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik是針對于同時高效地運行多個VMs來實現的。Dalvik虛擬機執(zhí)行.dex的Dalvik可執(zhí)行文件,該格式文件針對最小內存使用做了優(yōu)化。該虛擬機是基于寄存器
67、的,所有的類都經由JAVA匯編器編譯,然后通過SDK中的dx工具轉化成.dex格式由虛擬機執(zhí)行。 Dalvik虛擬機依賴于linux的一些功能,比如線程機制和底層內存管理機制。</p><p><b> Linux內核</b></p><p> Android 的核心系統(tǒng)服務依賴于 Linux 2.6 內核,如安全性,內存管理,進程管理,網絡協(xié)議棧和驅動模型。
68、 Linux 內核也同時作為硬件和軟件堆棧之間的硬件抽象層。未來發(fā)展 老牌智能手機軟件平臺制造商Symbian發(fā)言人則表示:Google的android只不過是另一個linux,symbian對其它軟件與其形成的競爭并不感到擔心。除了北美之外,Symbian在其它地區(qū)智能手機市場都占有大部分市場份額。 與iPhone相似,Android采用WebKit瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網功能,用戶能夠在手機上查看電子郵件、搜索網址
69、和觀看視頻節(jié)目等,比iPhone等其他手機更強調搜索功能,界面更強大,可以說是一種融入全部Web應用的單一平臺?!?lt;/p><p> 但其最震撼人心之處在于Android手機系統(tǒng)的開放性和服務免費。Android是一個對第三方軟件完全開放的平臺,開發(fā)者在為其開發(fā)程序時擁有更大的自由度,突破了iPhone等只能添加為數不多的固定軟件的枷鎖;同時與Windows Mobile、Symbian等廠商不同,Androi
70、d操作系統(tǒng)免費向開發(fā)人員提供,這樣可節(jié)省近三成成本?!ndroid項目目前正在從手機運營商、手機廠商、開發(fā)者和消費者那里獲得大力支持。谷歌移動平臺主管安迪·魯賓(Andy Rubin)表示,與軟件開發(fā)合作伙伴的密切接觸正在進行中。從去年11月開始,谷歌開始向服務提供商、芯片廠商和手機銷售商提供Android平臺,并組建“開放手機聯盟”,其成員超過30家。市場前景 Google手機于08年10月22日正式上市,與運營商捆綁的合
71、約價為179美元(約合人民幣1200元),現有的T-Mobile用戶可以通過網絡訂購。在10月22日發(fā)布當天,將有22個國家和地區(qū)可以買到谷歌手機。在11月,將增至27個國家和地區(qū)?!?lt;/p><p> 谷歌手機將只能在T-Mobile網絡內使用,將會有SIM卡鎖定限制。T-Mobile USA提供了兩種流量和短信近曝光的moto sholes(也有人稱之為moto tao)將搭載最新的android2.0操作
72、系統(tǒng)包月計劃。第一檔為25美元,包括不限制的網絡流量,以及一定數量的短信;第二檔為35美元,包括不限制的網絡流量和不限數量的短信。G1支持各種谷歌的服務,包括Gmail、Google Maps、YouTube、Google日歷和Google Talk,內置Chrome Lite瀏覽器。使用這款手機也需要Gmail賬號。 “我愛死我的G1了!”谷歌聯合創(chuàng)始人拉里·佩奇(Larry Page)憧憬:“對于我來說,谷歌手機最激動人心
73、的一點就是它的未來。它的功能很強,正如幾年前的電腦一樣。你可以上網,安裝軟件?!薄-Mobile USA為德國電信旗下移動子公司,運營GSM/HSPA網絡,擁有用戶近3000萬。此次發(fā)布的谷歌手機采用高通MSM7201A處理器,支持7.2Mbps下載速率,美國運營商3G網絡設定的套餐速率一般可達1Mbps以上。MSM7201A為單芯片、雙核,整合硬件加速多</p><p> 4.1.4 Android系統(tǒng)的四
74、大組件</p><p> 在Android系統(tǒng)中,為我們提供了四大基本組件,每個組件是一個視圖,但是有些是可見的,有些是不可見的視圖,像Activity,ContentProvider是可見的視圖,Service和BroadcastReceiver是不可見的,它們只在系統(tǒng)的后臺運行。下面分別介紹四大組件:</p><p> (1)Activity 簡介</p><p
75、> 在Android系統(tǒng)中Activity提供可視化的用戶界面,一個Android應用通常由多個Activity組成。多個Activity組成了Activity棧(Stack),當前活動的Activity處于棧頂。Activity有自己的生命周期,由Android系統(tǒng)來控制。</p><p> (2)Service 簡介</p><p> 顧名思義Service就是運行在后臺的
76、一種服務程序,一般很少和用戶交互,因此沒有可視化界面定義一個Service類比較簡單,只要繼承Service類,實現其生命周期中的方法就可以了。一個定義好的Service必須在AndroidManifest.xml配置文件注冊,通過<service>元素聲明才能使用.Service有自己的生命周期,我們可以調用startService()啟動一個Service或者bindService()方法來綁定一個存在的Service
77、</p><p> ?。?)Broadcast Receiver 簡介</p><p> Broadcast Receiver 顧名思義廣播接收器,它和事件處理機制類似,只不過事件處理機制是程序組件級別的(例如,某個按鈕的單擊事件),而廣播事件處理機制是系統(tǒng)級別的。到目前為止我們可以使用Intent來啟動一個程序組件,我們還可以通過使用sendBroadcast()方法來發(fā)起一個系統(tǒng)級別
78、的事件廣播來傳遞消息。我們可以在你的應用程序中實現Broadcast Receiver來監(jiān)聽和響應這些廣播的Intent </p><p> ?。?)ContentProvider簡介</p><p> Content Provider 用來保存和檢索數據,并且使應用程序之間相互訪問數據成為可能。它是跨應用程序共享數據的唯一方法。</p><p> Androi
79、d 為常用的數據類型(如:音視頻、圖片和聯系方式等)提供了大量的Content Provider。它們被定義在android.provider包下面。通過這樣定義好的ContentProvider 我們可以方便的進行數據操作。當然我們必須擁有適當的權限。我們也可以自己來定ContentProvider共享我們的數據,方便用戶的訪問 </p><p> 4.2 搭建Android開發(fā)環(huán)境</p>&
80、lt;p> 任何事物要運行,都要有它的環(huán)境,Android也有它的環(huán)境才能夠運行,下面介紹Android的開發(fā)環(huán)境配置.</p><p> 搭建開發(fā)環(huán)境需要的軟件:</p><p> 操作系統(tǒng):Windows XP或Linux</p><p> 軟件包:Android SDK(Software Development kit Java Developm
81、ent kit) 、ADT(Android Develoopment Tool)</p><p> IDE環(huán)境:Eclipse IDE+ADT Eclipse3.3以上</p><p> JDK:Java Runtime Environment虛擬機 、(JDK)Java Development kit</p><p><b> 安裝步驟如下:<
82、;/b></p><p> 第一步:安裝Java虛擬機sun-java6-jdk版本</p><p> 第二步:安裝Eclipse3.5工具 官網http://www.eclipse.org/downloads/</p><p> 選擇版本(圖4.2):進行安裝</p><p><b> 圖 4.2 </b&g
83、t;</p><p> 第三步:安裝Android SDK:首先要下載SDK,可以在這個網址下載Http://developer.android.com/sdk ,選擇相應的系統(tǒng)進行安裝</p><p><b> 圖 4.3 </b></p><p> 第四步:安裝Android ADT插件</p><p>
84、運行Eclipse,選擇help->install new software 選擇add,將會彈出一個框</p><p><b> 圖 4.4 </b></p><p> 點擊OK,選擇要安裝的軟件,占next,然后選擇接受協(xié)議,直到安裝成功,重啟Eclipse軟件,設置Android SDK Home,Window->refrence</p&
85、gt;<p><b> 圖 4.5 </b></p><p> 在SDK location中輸入SDK Tools路徑:D:\android software\android-sdk-windows 點擊OK</p><p> 這樣Android環(huán)境就已經搭建成功了。</p><p> 4.3 Android常用工具的使
86、用</p><p> 4.3.1 命令行的使用</p><p> 創(chuàng)建Android Virtual Devices(AVD)</p><p> 使用android list target命令列出當前可用的SDK版本</p><p> android create avd -n <name> -t <targetID
87、> [-<option> <value>] ...</p><p> 模擬器(Emulator)的使用</p><p><b> 啟動和停止模擬器</b></p><p> emulator -avd <avd_name></p><p> Android Debug B
88、ridge(ADB)的使用</p><p> 查詢當前模擬器實例數量</p><p> adb devices</p><p> 本地機器和模擬器之間相互拷貝文件</p><p> D:\>adb push d:\test.txt /sdcard/</p><p> D:\>adb pull /s
89、dcard/test.txt d:/</p><p><b> 安裝apk應用程序</b></p><p> adb push d:\test.apk /sdcard/</p><p> adb install test.apk</p><p><b> 使用shell命令</b></
90、p><p> 在DOS命令行輸入adb shell 便進入shell命令行了</p><p> 可以使用exit退出shell</p><p> 4.3.2 Dalvik Debug Monitor Service (DDMS)的使用</p><p> 在DOS命令窗口,輸入ddms會彈出如下圖所示界面,Android編輯工具的可視化界面
91、(圖4.6)</p><p><b> 圖 4.6 </b></p><p> 4.4 Android 音樂播放器的工程</p><p> 4.4.1 Android項目</p><p> Android的四大基本組件:Activity(活動),Service(服務),BroadcastReceiver(廣播)
92、,ContentProvider(內容提供者),各組件之間要進行切換需要一個意圖或企圖Intent類,通過啟動StartIntent()方法來使各組件進行跳轉</p><p> Android的五大布局方式:LinearLayout(線性布局) FrameLayout(幀布局) TableLayout(表格布局) AbsoluteLayout(絕對布局) RelativeLayout(相對布局)</p&
93、gt;<p> 五種布局方式可以相互嵌套,Android各種漂亮的界面都是通過嵌套布局而實現的。</p><p> Android的線程,以及線程之間通信的中介:Handler類</p><p> Android數據庫:在第三章已經介紹過了。這里不再介紹</p><p> Android配置文件:AndroidManifest.Xml及res資
94、源文件中各種屬性 布局方式 引用的資源等</p><p> Android系統(tǒng)將插件ADT集成到了Eclipse工具上,因此,一個Android程序啟動后,系統(tǒng)會啟動一個模擬器(Emulator)(圖4.7),該模擬器是一款手機板的樣式,擁有手機硬件的基本操作。我們也可以將右邊的鍵盤通過代碼屬性設置將其隱藏,界面的大小可自由設定,目前最大支持800X600的分辨率。</p><p>
95、圖 4.7 android模擬器</p><p> 4.4.2 Android工程程序結構</p><p> Android工程基本結構目錄包括:src (源代碼)、gen(Android系統(tǒng)自動生成的常量)、Res(資源文件):主要存放程序界面的布局配置(.xml)文件和圖片資源。AndroidMainfes.xml 是四大組件的驅動配置文件,有它的存在,Android程序的四大組件
96、才可以正常的跳轉。Android資源的類型和布局(圖4.7)</p><p><b> 圖 4.7</b></p><p> 下圖4.8.1 -圖4.8.5為音樂播放器代碼結構和各界面的配置文件,圖像資源等,圖4.8.1 為一個Android工程所必須的結構,圖4.8.2為該播放器的.Java文件,圖4.8.3為播放器所用到的字符串,字體大小,字的顏色等配置文件,
97、圖4.8.4為 該播放器的各種界面的布局配置文件,圖4.8.5為該播放器的圖片資源。</p><p><b> 圖 4.8.1</b></p><p> 圖 4.8.2 圖 4.8.3 圖 4.8.4 圖 4.8.5 </p><p> 4.4.3 AndroidManifest.
98、xml文件</p><p> Android系統(tǒng)的任何一個程序啟動都需要AndroidManifest.xml來啟動程序,任何一個新建的工程目錄都會自動生成一個AndroidManifest.xml文件,此配置文件是整個程序能夠正常運行的核心,它里面包含了Android SDK的版本,程序運行的默認Activity,當程序中的任何一個組件觸發(fā)事件后,系統(tǒng)都會自動的去AndroidManifest.xml中尋找標
99、識來作出相應的操作。任何一個AndroidManifest.Xml文件的格式都應為:</p><p> <?xml version="1.0" encoding="utf-8"?></p><p> <manifest ></p><p> <application ></p&g
100、t;<p> <activity ></p><p> <intent-filter></p><p> <action/><category/></p><p> </intent-filter></p><p> </activity><
101、/p><p> </application></p><p> <uses-sdk /><uses-permission /></p><p> </manifest> </p><p> Android系統(tǒng)有一個編碼的規(guī)定,支持的編碼是"utf-8",當程序中出現亂碼是
102、,我們須將其編碼格式轉化為"utf-8".在 AndroidManifest.xml中會在第一行聲明一句:<?xml version="1.0" encoding="utf-8"?>。它是該系統(tǒng)支持的版本和編碼。在第二行定義了我們需要使用的架構,該架構來自xmlns:android="http://schemas.android.com/apk/res/a
103、ndroid"</p><p> xmlns(XML namespace)是一個命名空間,它就像一條河的源頭一樣能讓我們找到系統(tǒng)架構,每一個配置文件必須有這個xmlns,否則程序中的所使用的所有資源將無法找到。</p><p> 在application元素我們定義android:icon="@drawable/icon"</p><p
104、> android:label="@string/app_name",android:icon是程序在手機中顯示的圖片,我們運用@drawable/icon表示了對res/drawable目錄下的icon.png的引用。@string/app_name表示了對res/value目錄下string.Xml中定義的app_name參數的引用。</p><p> <activity
105、android:name=".PlayRackActivity"></p><p> <intent-filter></p><p> <action android:name="android.intent.action.MAIN"/></p><p> <category andr
106、oid:name="android.intent.category.LAUNCHER" /></p><p> </intent-filter></p><p> </activity></p><p> 這是系統(tǒng)確定的首先要啟動的Activity是PlayRackActivity。</p>&l
107、t;p> 在intent-filter選項中,有action和category等等屬性,我們需要定義action的值為android.intent.action.MAIN,category的值為android.intent.category.LAUNCHER,它們是系統(tǒng)的值,程序在解析到這些常用后就可以確定首先要啟動的Activity。當我們需要通過一個組件觸發(fā)另一個組件時,我們將設定action和category的其它屬性值,
108、系統(tǒng)會根據我們設定的屬性值去AndroidManifest.Xml的application 中尋找標識,任何一個Activity的action和category是唯一,所以程序在任何時候都能唯一啟動一個Activity,這樣,不同的Activity之間的跳轉就實現了。</p><p> 在AndroidManifest.Xml中有一個根結點<uses-sdk>,它是我們需要定義的ADT版本,例如我們
109、將其值設定為android:minSdkVersion="4",則表示此Android工程所用的版本為1.6,Android還有1.1、1.5、1.6、2.0、2.1這幾個版本。</p><p> 如果我們需要對網絡進行訪問,比如打開一個網頁,剛我還需要設置一個網絡訪問權限uses-permission,將其的值設置為android:name="android.permission
110、.INTERNET,我們就可以訪問網絡了。當然uses-permission還有很多其它的權限,例如GPS定位權限,瀏覽器數據存取權限com.android.browser.permission.READ_HISTORY_BOOKMARKS等等。</p><p> 當程序的任何一個組件要用到時,都必須在AndroidManifest.Xml文件中聲明。四大組件要使用前都需要聲明,其聲明方式如下:</p&g
111、t;<p> <service></service></p><p> <provider></provider></p><p> <activity></activity></p><p> <receiver></receiver></p
112、><p> 其中聲明provider時還需要聲明其授權 authorities。每個組件里面還有很多的屬性,會根據程序的具體需要定義不同的屬性。過濾器intent-filter 有兩種啟動方式來啟動界面:</p><p><b> (1) 顯示方式</b></p><p> 顯示方式是在代碼中的直接啟動組件,啟動時會聲明Intent,在它的構
113、造方法Intent(組件1,組件2)中直接指定一個組件的名字,然后調用方法startIntent(intent)以啟動指定的組件。</p><p><b> 隱式方式</b></p><p> 隱式方式是通過過濾器來過濾完成的,啟動的組件必須滿足action和category的條件才能夠啟動該組件。這些屬性是在AndroidManifest.Xml文件中聲明的。兩
114、種啟動方式都可以通過程序setAction(ACTION常量)和startActivity(intent)或配置文件兩種方式來實現組件的跳轉。</p><p> 第五章 播放器系統(tǒng)功能詳細設計</p><p> 5.1音樂播放器主界面功能實現</p><p> 5.1.1 播放器主界面</p><p> 播放器主界面(圖5.1)<
115、;/p><p><b> 圖 5.1</b></p><p> Android的每一個可視化界面,都有其的唯一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像,文字,顏色的引用,程序在運行時,可以通過代碼對各配置文件進行讀取。這樣就可以形成不同的可視化界面和炫麗的效果。播放器主界面是一個Activity,Android工程在每個activity啟動的時候
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計(論文)基于android手機平臺的音樂播放器
- 畢業(yè)設計--基于 android 平臺的手機應用開發(fā)—音樂播放器
- 畢業(yè)論文設計 基于android手機平臺的音樂播放器
- 基于android手機平臺的音樂播放器-畢業(yè)論文
- 基于android手機平臺的音樂播放器 (2)
- 【畢業(yè)課題論文】android手機平臺音樂播放器
- 基于android手機平臺的音樂播放器【畢業(yè)論文】
- 畢業(yè)論文基于android手機平臺的音樂播放器
- 389.基于android手機平臺的音樂播放器
- 畢業(yè)設計基于android平臺的音樂播放器設計與開發(fā)
- 基于android 手機平臺的音樂播放器的設計【開題報告】
- 畢業(yè)設計--基于android平臺的音樂播放器的設計與實現
- 基于android手機平臺的音樂播放器的設計【任務書】
- 基于android平臺的音樂播放器-畢業(yè)論文
- 畢業(yè)論文——基于android平臺的音樂播放器
- 基于android平臺的音樂播放器開發(fā)與設計
- 畢業(yè)設計---基于android平臺的音樂播放器設計與開發(fā)(含外文翻譯)
- 基于android平臺的音樂播放器設計與實現畢業(yè)論文
- 基于android平臺的音樂播放器設計與實現畢業(yè)論文
- 基于Android的手機音樂播放器的設計與開發(fā).pdf
評論
0/150
提交評論