基于Android的多媒體應(yīng)用開發(fā)與研究
摘要: 首先介紹并分析Android 系統(tǒng)的層次架構(gòu),并在此基礎(chǔ)上介紹Android 應(yīng)用程序開發(fā)的相關(guān)技術(shù)和基本的開發(fā)流程。接下來介紹Android 提供的多媒體開發(fā)組件。最后用具體的應(yīng)用程序---播放器簡要說明Android 多媒體應(yīng)用程序的開發(fā)方法。
本文引用地址:http://2s4d.com/article/149521.htm0 引言
2007 年11 月由Google 牽頭,有30 多家移動技術(shù)和無線應(yīng)用領(lǐng)域領(lǐng)先企業(yè)組成的開放手機聯(lián)盟( Open Handset Alliance) 發(fā)布了其智能手機平臺---Android.Android 是一個開放、自由的移動終端平臺,它是由操作系統(tǒng)、中間件、用戶界面、應(yīng)用軟件組成,同時其開放性保證該平臺不存在任何阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。開發(fā)人員在該平臺開發(fā)的應(yīng)用程序是使用Java 語言編寫的,在Dalvik 虛擬機上運行的。Android 的底層是以開放性的Linux Kernel為其架構(gòu),也可以理解為Google 推出的手機操作系統(tǒng)和相關(guān)軟件的總稱[1].
Android 是一套真正意義上的開放性移動設(shè)備綜合平臺,它包括操作系統(tǒng)、中間件和一些關(guān)鍵的平臺應(yīng)用。Android 最大特點在于它是一個開放的體系架構(gòu),具有非常好的開發(fā)和調(diào)試環(huán)境,而且還支持各種可擴展的用戶體驗,Android 里面具有非常豐富的圖形系統(tǒng)、對多媒體的支持功能和非常強大的瀏覽器[2].
Android 平臺的開放性等特點既能促進技術(shù)( 包括平臺自身) 的創(chuàng)新,又有助于降低開發(fā)成本,還可以使運營商能非常方便地制定特色化的產(chǎn)品,因此,它具有很大的市場發(fā)展?jié)摿Α?/p>
1 Android 軟件平臺的構(gòu)成
Android 軟件平臺主要由5 部分構(gòu)成,它們分別是: 關(guān)鍵應(yīng)用程序、應(yīng)用程序框架和組件、C /C ++ 函數(shù)庫、Java 程序運行環(huán)境、優(yōu)化了的Linux 內(nèi)核。
(1) 關(guān)鍵應(yīng)用程序。
Android 本身會附帶一些核心的應(yīng)用程序,包括E-mail 客戶端、短信程序、日歷、地圖、瀏覽器、通訊錄等,目前所有的應(yīng)用程序都是用Java 語言開發(fā)的。
更多有特色的Android 應(yīng)用程序還有待于廣大開發(fā)者共同參與開發(fā)。
(2) 應(yīng)用程序框架及組件。
Android 應(yīng)用程序開發(fā)基于框架和組件。Android 本身已在其框架中提供了許多組件供應(yīng)用程序調(diào)用,開發(fā)者也可在開發(fā)應(yīng)用程序時順帶開發(fā)新的組件,并將該組件放入應(yīng)用程序框架中,以供自己和其它應(yīng)用程序調(diào)用。
(3) Android 運行時庫和其它庫層。
Android 應(yīng)用程序框架之下是一套C /C ++ 函數(shù)庫,它們服務(wù)于Android 應(yīng)用程序組件,其功能通過組件間接提供給開發(fā)者。這些函數(shù)庫包括: 標(biāo)準(zhǔn)C函數(shù)庫、多媒體庫、瀏覽器引擎( 集成了Web 瀏覽器和Internet 安全的SSL 和WebKit) 、2D、3D 圖形庫及SQLite 引擎和外觀管理器等。這一層也提供了程序運行的環(huán)境。Android 的Java 程序運行環(huán)境包含一組Java 核心函數(shù)庫及Dalvik 虛擬機,它們有效地優(yōu)化了Java 程序的運行過程。
(4) Linux 內(nèi)核。
Android 系統(tǒng)平臺基于優(yōu)化了的Linux 內(nèi)核,它提供諸如硬件驅(qū)動程序( USB、藍牙、顯示屏等) 、內(nèi)存管理、進程管理、電源管理等服務(wù),同時也是手機軟、硬件的連接層。
2 Android 程序開發(fā)的基本組件
Android 有如下幾大基本組件: Activity、Service、CONtent Provider 和BroadcaST Receiver。
Activity 是Android 最基本的應(yīng)用程序組件。任何一個Android 應(yīng)用程序都可以看作一組任務(wù),這里每一個任務(wù)就可以稱作一個Activity.在應(yīng)用程序中,一個Activity 通常就是一個單獨的屏幕,用于呈現(xiàn)數(shù)據(jù)和與用戶進行交互,每個屏幕可以有一個或多個組件布局。
而每一個活動又是一個單獨的類,每一個這樣的類都要將Activity 作為父類。一個Activity 可以切換到新的Activity,也可以返回前一個Activity.Android 通過使用Intent 類來實現(xiàn)Activity 的切換。例如,一個簡單的游戲程序可以分為5 個Activity: 啟動畫面、主菜單界面、游戲主界面、高分辨和幫助界面。
Service,即服務(wù)的意思,相當(dāng)于沒有界面的Activity.應(yīng)用程序的Service 可以不需要用戶直接參與而長時間運行。典型的例子就是音樂播放器。在一個音樂播放器程序中有多個Activity,它們分別實現(xiàn)了歌曲的選擇和播放等功能。然而,音樂重放這個功能并沒有對應(yīng)的Activity,它通過Service 來實現(xiàn)。
音樂播放器程序啟動一個Service,它可以在后臺保持音樂的不斷播放。應(yīng)用程序還可以連接到一個Service.當(dāng)Service 啟動后,還可以借助Service 提供的接口與它進行通信。
Android 應(yīng)用程序可以使用文件、SQL 數(shù)據(jù)庫等各種存儲系統(tǒng)來保存數(shù)據(jù)。但是,如果想實現(xiàn)不同應(yīng)用之間的數(shù)據(jù)共享,就需要用到Content Provider.
Content Provider 提供了一套標(biāo)準(zhǔn)的訪問接口,以方便其他應(yīng)用程序?qū)?shù)據(jù)進行訪問、操作。
在實際應(yīng)用中,常常需要等待系統(tǒng)或者其它應(yīng)用發(fā)出一道指令。在Android 中,充分考慮了這類需求,于是就有了Broadcast Receiver 這樣的一個組件。
每個Broadcast Receiver 都可以接收一種或若干種Intent作為觸發(fā)事件,當(dāng)一個Broadcast Receiver 被觸發(fā)后,系統(tǒng)就會通知相應(yīng)的程序。
3 Android 多媒體API 及開發(fā)方法
多媒體---無論是圖像、視頻還是聲音,都早已成為了移動設(shè)備受到廣泛歡迎的主要原因。而今,手機設(shè)備很少會沒有攝像頭的,而且隨著技術(shù)的日益更新,越來越多的設(shè)備會擁有更為專業(yè)的視頻性能。用戶經(jīng)常使用手機來拍攝和瀏覽照片,錄制聲音和觀看視頻。
3. 1 Android 提供的多媒體開發(fā)框架
Android 軟件開發(fā)包提供了一系列的方法來處理音視頻媒體,包括對于多種媒體類型和格式的支持。
單獨的Android 設(shè)備和開發(fā)人員可以擴展其支持的媒體格式列表。
Open Core 是Android 多媒體開發(fā)的核心,所有Android 平臺的音頻、視頻的采集以及播放等操作都是通過它來實現(xiàn)的。程序員可以通過Open Core 方便快速地開發(fā)出想要的多媒體應(yīng)用程序,例如: 錄音、播放、回放、視頻會議等。Open Core 和框架圖如圖1 所示。
圖1 Open Core 框架圖
由圖1 可以看出,Open Core 支持的格式有MPEG4、H. 263、MP3、AAC、JPG 等。Open Core 多媒體框架有一套通用可擴展的接口,針對第三方的多媒體編解碼器,輸入、輸出設(shè)備等。
評論