帶您探秘豐富多彩的Android多媒體世界
Android多媒體主要包括:平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,許多手機廠商都在紛紛的想用這個操作系統(tǒng),畢竟這款操作系統(tǒng)在市場上還是占一席之地的吧。
HTC(宏達電 多普達)、摩托羅拉、索愛、三星等眾多公司紛紛推出基于Android智能操作系統(tǒng),甚至很多上網(wǎng)本也使用Android操作系統(tǒng)。目前Android是最熱門的智能操作系統(tǒng),憑借Linux的軟件優(yōu)勢其應用的廣泛程度已經(jīng)讓其他對手相形見絀。所以學習Android操作系統(tǒng)具有巨大的意義。
各種庫(Libraries)和Android 運行環(huán)境(RunTime)本層次對應一般嵌入式系統(tǒng),相當于中間件層次。Android的本層次分成兩個部分一個是各種庫,另一個是Android 運行環(huán)境。本層的內(nèi)容。
大多是使用C++實現(xiàn)的。在其中,各種庫包括:C庫 :C語言的標準庫,這也是系統(tǒng)中一個最為底層的庫,C庫是通過Linux的系統(tǒng)調(diào)用來實現(xiàn)。多媒體框架(MediaFrameword):
這部分內(nèi)容是Android多媒體的核心部分,基于PacketVideo(即PV)的OpenCORE,從功能上本庫一共分為兩大部分,一個部分是音頻、視頻的回放(PlayBack),另一部分是則是音視頻的紀錄(Recorder)。
SGL:2D圖像引擎。SSL:即Secure Socket Layer位于TCP/IP協(xié)議與各種應用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。OpenGL ES 1.0 :本部分提供了對3D的支持。界面管理工具(Surface Management):本部分提供了對管理顯示子系統(tǒng)等功能。
SQLite:一個通用的嵌入式數(shù)據(jù)庫WebKit:網(wǎng)絡瀏覽器的核心FreeType:位圖和矢量字體的功能。Android多媒體的各種庫一般是以系統(tǒng)中間件的形式提供的,它們均有的一個顯著特點就是與移動設備的平臺的應用密切相關。
Android 運行環(huán)境主要指的虛擬機技術——Dalvik。Dalvik虛擬機和一般JAVA虛擬機(Java VM)不同,它執(zhí)行的不是JAVA標準的字節(jié)碼(bytecode )而是Dalvik可執(zhí)行格式(.dex)中執(zhí)行文件。
在執(zhí)行的過程中,每一個應用程序即一個進程(Linux的一個Process)。 二者最大的區(qū)別在于Java VM是以基于棧的虛擬機(Stack-based)。而Dalvik是基于寄存器的虛擬機(Register-based)。顯然,后者最大的好處在于可以根據(jù)硬件實現(xiàn)更大的優(yōu)化,這更適合移動設備的特點。#t#
現(xiàn)有編程語言均未專門對多核處理器進行優(yōu)化。派克表示,Go就是谷歌工程師為這類程序編寫的一種語言。它不是針對編程初學者設計的,但學習使用它也不是非常困難。Go支持面向?qū)ο螅揖哂姓嬲姆庋b(closures)和反射(reflection)等功能。在學習曲線方面,派克認為Go與Java類似,對于Java開發(fā)者來說,應該能夠輕松學會Go。
之所以將Go作為一個開源項目發(fā)布,目的是讓開源社區(qū)有機會創(chuàng)建更好的工具來使用該語言,例如Eclipse IDE中的插件。目前還沒有支持Go的IDE。在目前谷歌公開發(fā)布的所有網(wǎng)絡應用中,均沒有使用Go。但是谷歌已經(jīng)使用該語言開發(fā)了幾個內(nèi)部項目。
派克表示,Go是否會對谷歌即將推出的Chrome OS產(chǎn)生影響,現(xiàn)在還言之尚早,不過Go的確可以和Native Client配合使用。他表示,“Go可以讓應用完美的運行在瀏覽器內(nèi)。”例如,使用Go可以更高效的實現(xiàn)Wave,無論是在前端還是后臺。
Go 同時具有兩種編譯器,一種是建立在GCC基礎上的Gccgo,另外一種是分別針對64位x86和32位x86計算機的一套編譯器(6g和8g)。谷歌目前正在研發(fā)其對ARM芯片和Android設備的支持。派克表示,“Android多媒體存在的問題是,我們一直沒有一個數(shù)字協(xié)處理器。”