?

基于Android平臺的Camera系統核心架構研究與設計

2014-10-21 19:57林麗速
計算機光盤軟件與應用 2014年24期
關鍵詞:取景器服務器

林麗速

摘 要:基于Android系統的智能手機已得到了廣泛的應用,本文進行對基于Android平臺的Camera系統核心架構進行研究與設計。文中基于筆者的實踐經驗,詳細分析了基于Android平臺的Camera系統功能,闡述了Camera系統的核心架構,并給出了Android Camera實現具體功能的設計方案。該Camera不僅擁有的高清晰拍照功能,且控制鍵更健全,為開發和設計Camera系統提供了參考。

關鍵詞:Android;Camera;取景器;服務器

中圖分類號:TP391.41

Android系統是谷歌公司研究推廣的新一代移動互聯網操作系統,該系統由操作系統、中間件、用戶界面和應用軟件組成,已經在智能終端領域得到了廣泛的應用,尤其是智能手機應用領域,Android系統已經在智能手機領域得到了廣泛的開發和設計[1]。人們在使用智能手機、ipad等移動智能設備過程中,可以使用Camera系統進行拍照,將照片保存在智能終端硬盤中,也可以發布到網絡上,以便與朋友分享。因此,基于Android平臺的Camera系統已經成為了許多學者研究的熱點,得到了長足的進步。

1 基于Android平臺的Camera功能分析

目前,基于Android平臺的Camera系統主要包括取景器(viewfinder)和拍攝照片兩種關鍵的功能,已經發布的基于Android平臺的Camera程序實現的功能雖然較為簡單,但是其程序架構分別包括兩個關鍵組成部分,分別是客戶端(Client)和服務器(Server),是非常完整的,能夠有效確保通信系統的正常運行[2]。Camera系統架構實現進程之間的通信是依賴于Binder結構的,具體描述如下:當基于Android平臺的Camera系統工作運行的時候,可以將工作程序分成兩個關鍵組成部分,分別是客戶端(Client)和服務器(Server),兩者之間的通信可以使用Binder機制實現,客戶端調用接口服務程序,具體的執行功能則在服務器中實現,具體的進程之間的通信對于客戶端來講是不可見的[3]。

2 Camera系統核心架構分析

目前,基于Android平臺的Camera系統核心架構主要分為四個層次,分別是應用層、應用框架層、庫層和內核層。

2.1 應用層

應用層是指應用程序直面客戶的層次,應用程序可以采用Android系統提供的API進行編程實現,通常采用Java語言進行編程,使用各種源文件,將Java源文件程序和資源文件集成在一起,通過編譯生成一個完整的APK包。Camera系統在應用層上表現為一個APK包,APK包在拍照功能實現過程中調用了應用框架層中的API函數,能夠實現拍照等邏輯業務功能和UI顯示,該功能的實現文件命名為Camera.java,該文件關聯的類是android.hardware.Camera。

2.2 應用框架層

應用框架層能夠為應用軟件開發者提供許多的API,是一個應用程序實現的基本框架。在框架內部,程序員可以獲取UI界面需要的各種控件,比如使用網格和列表等,都采用必要的接口,提供給外部用戶。Camera系統可以通過應用框架層將應用和底層硬件實現邏輯隔離開,基于Android定義實現一套上下通信的接口,能夠有效地加強應用層、底層硬件的開發和移植。在應用框架層,應用層可以通過android.hardware.Camera種類調用軟件服務功能,同時可以使用CameraHardwareInterface.h頭文件中包含的硬件服務接口為下層提供調用服務的功能。

2.3 庫層

對于嵌入式軟件系統來講,庫層是一個非常重要的中間層,也是Android應用層與實際硬件層進行通信傳輸的接口,其可以將硬件的行為與功能封裝起來,通過接口提供給應用框架層,以便能夠進行通信。在Camera系統中,庫層實際上就是硬件抽象層,用戶空間的驅動程序代碼就在庫層實現。庫層的上級層次為應用框架層,其為Camera硬件抽象層提供了包括虛函數的類,作為一個接口進行調用服務。

2.4 內核層

內核層又被稱為操作系統層,內核層與硬件直接關聯,主要能夠為應用程序、硬件設備提供邏輯驅動程序,以便能夠啟動硬件。為了更好地服務移動終端系統,在Linux內核上進行很大的改進和優化。在基于Android平臺的Camera系統中,其通常采用具體的驅動規范,可以將Camera基本物理功能提供給硬件抽象層,供其進行調用。Camera系統的主要功能包含了圖像視頻數據的采集、轉換圖像的格式、縮放圖像和傳輸數據

3 具體功能實現設計

針對以上的分析來設計Android Camera的實現方案,圖1給出了preview和拍照時的數據流設計方案,圖2給出了視頻錄制時數據流設計方案。數據都是從java層送到Camera Service,并在HAL層準備好組件,最后送到Driver層解析。Preview與拍照時的數據流類似,視頻錄制時則需要考慮緩存數據。圖中Preview data、Capture Image data、Recoding data指出了數據從上層到下層的流向。

由圖1和圖2給出的Android Camera的設計方案設計出的Camera不僅擁有的高清晰拍照功能,且控制鍵更健全,為開發和設計Camera系統提供了參考。

4 結束語

本文分析了基于Android平臺的Camera系統能夠實現取景、拍照、保存和上傳等核心功能的實現技術,同時總結了Camera系統通常采用的核心架構,并給出了具體功能實現的設計方案,以便為系統設計和開發做出貢獻。

參考文獻:

[1]胡江楠,劉高平.Android中Camera類庫分析及其典型應用[J].浙江萬里學院學報,2014(01):11-12.

[2]胡偉.Android系統架構及其驅動研究[J].廣州廣播電視大學學報,2010(04):96-101.

[3]張仕成.基于Google Android平臺的應用程序開發與研究[J].電腦知識與技術,2009(28):24-25.

作者單位:福州大學物理與信息工程學院,福州 350108

猜你喜歡
取景器服務器
美海軍巴丹號航空母艦上的地面作戰監視系統取景器
經久不衰的光學取景器
通信控制服務器(CCS)維護終端的設計與實現
有縮小鏡嗎?
中國服務器市場份額出爐
得形忘意的服務器標準
計算機網絡安全服務器入侵與防御
數碼單反相機取景器的選擇應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合