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