<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)ndroid的多媒體應用開(kāi)發(fā)與研究

基于A(yíng)ndroid的多媒體應用開(kāi)發(fā)與研究

作者: 時(shí)間:2012-03-05 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要: 首先介紹并分析 系統的層次架構,并在此基礎上介紹 應用程序開(kāi)發(fā)的相關(guān)技術(shù)和基本的開(kāi)發(fā)流程。接下來(lái)介紹 提供的開(kāi)發(fā)組件。最后用具體的應用程序---播放器簡(jiǎn)要說(shuō)明Android 應用程序的開(kāi)發(fā)方法。

本文引用地址:http://dyxdggzs.com/article/149521.htm

0 引言

2007 年11 月由Google 牽頭,有30 多家移動(dòng)技術(shù)和無(wú)線(xiàn)應用領(lǐng)域領(lǐng)先企業(yè)組成的開(kāi)放手機聯(lián)盟( Open Handset Alliance) 發(fā)布了其智能手機平臺---Android.Android 是一個(gè)開(kāi)放、自由的移動(dòng)終端平臺,它是由操作系統、中間件、用戶(hù)界面、應用軟件組成,同時(shí)其開(kāi)放性保證該平臺不存在任何阻礙移動(dòng)產(chǎn)業(yè)創(chuàng )新的專(zhuān)有權障礙。開(kāi)發(fā)人員在該平臺開(kāi)發(fā)的應用程序是使用Java 語(yǔ)言編寫(xiě)的,在Dalvik 虛擬機上運行的。Android 的底層是以開(kāi)放性的Linux Kernel為其架構,也可以理解為Google 推出的手機操作系統和相關(guān)軟件的總稱(chēng)[1].

Android 是一套真正意義上的開(kāi)放性移動(dòng)設備綜合平臺,它包括操作系統、中間件和一些關(guān)鍵的平臺應用。Android 最大特點(diǎn)在于它是一個(gè)開(kāi)放的體系架構,具有非常好的開(kāi)發(fā)和調試環(huán)境,而且還支持各種可擴展的用戶(hù)體驗,Android 里面具有非常豐富的圖形系統、對的支持功能和非常強大的瀏覽器[2].

Android 平臺的開(kāi)放性等特點(diǎn)既能促進(jìn)技術(shù)( 包括平臺自身) 的創(chuàng )新,又有助于降低開(kāi)發(fā)成本,還可以使運營(yíng)商能非常方便地制定特色化的產(chǎn)品,因此,它具有很大的市場(chǎng)發(fā)展潛力。

1 Android 軟件平臺的構成

Android 軟件平臺主要由5 部分構成,它們分別是: 關(guān)鍵應用程序、應用程序框架和組件、C /C ++ 函數庫、Java 程序運行環(huán)境、優(yōu)化了的Linux 內核。

(1) 關(guān)鍵應用程序。

Android 本身會(huì )附帶一些核心的應用程序,包括E-mail 客戶(hù)端、短信程序、日歷、地圖、瀏覽器、通訊錄等,目前所有的應用程序都是用Java 語(yǔ)言開(kāi)發(fā)的。

更多有特色的Android 應用程序還有待于廣大開(kāi)發(fā)者共同參與開(kāi)發(fā)。

(2) 應用程序框架及組件。

Android 應用程序開(kāi)發(fā)框架和組件。Android 本身已在其框架中提供了許多組件供應用程序調用,開(kāi)發(fā)者也可在開(kāi)發(fā)應用程序時(shí)順帶開(kāi)發(fā)新的組件,并將該組件放入應用程序框架中,以供自己和其它應用程序調用。

(3) Android 運行時(shí)庫和其它庫層。

Android 應用程序框架之下是一套C /C ++ 函數庫,它們服務(wù)于A(yíng)ndroid 應用程序組件,其功能通過(guò)組件間接提供給開(kāi)發(fā)者。這些函數庫包括: 標準C函數庫、多媒體庫、瀏覽器引擎( 集成了Web 瀏覽器和Internet 安全的SSL 和WebKit) 、2D、3D 圖形庫及SQLite 引擎和外觀(guān)管理器等。這一層也提供了程序運行的環(huán)境。Android 的Java 程序運行環(huán)境包含一組Java 核心函數庫及Dalvik 虛擬機,它們有效地優(yōu)化了Java 程序的運行過(guò)程。

(4) Linux 內核。

Android 系統平臺優(yōu)化了的Linux 內核,它提供諸如硬件驅動(dòng)程序( USB、藍牙、顯示屏等) 、內存管理、進(jìn)程管理、電源管理等服務(wù),同時(shí)也是手機軟、硬件的連接層。

2 Android 程序開(kāi)發(fā)的基本組件

Android 有如下幾大基本組件: Activity、Service、CONtent Provider 和BroadcaST Receiver。

Activity 是Android 最基本的應用程序組件。任何一個(gè)Android 應用程序都可以看作一組任務(wù),這里每一個(gè)任務(wù)就可以稱(chēng)作一個(gè)Activity.在應用程序中,一個(gè)Activity 通常就是一個(gè)單獨的屏幕,用于呈現數據和與用戶(hù)進(jìn)行交互,每個(gè)屏幕可以有一個(gè)或多個(gè)組件布局。

而每一個(gè)活動(dòng)又是一個(gè)單獨的類(lèi),每一個(gè)這樣的類(lèi)都要將Activity 作為父類(lèi)。一個(gè)Activity 可以切換到新的Activity,也可以返回前一個(gè)Activity.Android 通過(guò)使用Intent 類(lèi)來(lái)實(shí)現Activity 的切換。例如,一個(gè)簡(jiǎn)單的游戲程序可以分為5 個(gè)Activity: 啟動(dòng)畫(huà)面、主菜單界面、游戲主界面、高分辨和幫助界面。

Service,即服務(wù)的意思,相當于沒(méi)有界面的Activity.應用程序的Service 可以不需要用戶(hù)直接參與而長(cháng)時(shí)間運行。典型的例子就是音樂(lè )播放器。在一個(gè)音樂(lè )播放器程序中有多個(gè)Activity,它們分別實(shí)現了歌曲的選擇和播放等功能。然而,音樂(lè )重放這個(gè)功能并沒(méi)有對應的Activity,它通過(guò)Service 來(lái)實(shí)現。

音樂(lè )播放器程序啟動(dòng)一個(gè)Service,它可以在后臺保持音樂(lè )的不斷播放。應用程序還可以連接到一個(gè)Service.當Service 啟動(dòng)后,還可以借助Service 提供的接口與它進(jìn)行通信。

Android 應用程序可以使用文件、SQL 數據庫等各種存儲系統來(lái)保存數據。但是,如果想實(shí)現不同應用之間的數據共享,就需要用到Content Provider.

Content Provider 提供了一套標準的訪(fǎng)問(wèn)接口,以方便其他應用程序對數據進(jìn)行訪(fǎng)問(wèn)、操作。

在實(shí)際應用中,常常需要等待系統或者其它應用發(fā)出一道指令。在A(yíng)ndroid 中,充分考慮了這類(lèi)需求,于是就有了Broadcast Receiver 這樣的一個(gè)組件。

每個(gè)Broadcast Receiver 都可以接收一種或若干種Intent作為觸發(fā)事件,當一個(gè)Broadcast Receiver 被觸發(fā)后,系統就會(huì )通知相應的程序。

3 Android 多媒體API 及開(kāi)發(fā)方法

多媒體---無(wú)論是圖像、視頻還是聲音,都早已成為了移動(dòng)設備受到廣泛歡迎的主要原因。而今,手機設備很少會(huì )沒(méi)有攝像頭的,而且隨著(zhù)技術(shù)的日益更新,越來(lái)越多的設備會(huì )擁有更為專(zhuān)業(yè)的視頻性能。用戶(hù)經(jīng)常使用手機來(lái)拍攝和瀏覽照片,錄制聲音和觀(guān)看視頻。

3. 1 Android 提供的多媒體開(kāi)發(fā)框架

Android 軟件開(kāi)發(fā)包提供了一系列的方法來(lái)處理音視頻媒體,包括對于多種媒體類(lèi)型和格式的支持。

單獨的Android 設備和開(kāi)發(fā)人員可以擴展其支持的媒體格式列表。

Open Core 是Android 多媒體開(kāi)發(fā)的核心,所有Android 平臺的音頻、視頻的采集以及播放等操作都是通過(guò)它來(lái)實(shí)現的。程序員可以通過(guò)Open Core 方便快速地開(kāi)發(fā)出想要的多媒體應用程序,例如: 錄音、播放、回放、視頻會(huì )議等。Open Core 和框架圖如圖1 所示。

圖1 Open Core 框架圖

圖1 Open Core 框架圖

由圖1 可以看出,Open Core 支持的格式有MPEG4、H. 263、MP3、AAC、JPG 等。Open Core 多媒體框架有一套通用可擴展的接口,針對第三方的多媒體編解碼器,輸入、輸出設備等。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>