欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Android Camera 開發之前言

系統 1906 0

一、 Android Camera 成像原理介紹

Camera 工作流程圖:

Camera 的成像原理可以簡單概括如下:

景 物(SCENE)通過鏡頭(LENS)生成的光學圖像投射到圖像傳感器(Sensor)表面上,然后轉為電信號,經過ADC(模數轉換)轉換后變為數字圖 像信號,再送到數字信號處理芯片(DSP)中加工處理,再通過IO接口傳輸到CPU中處理,通過DISPLAY就可以看到圖像了。

二、 Android Camera 的架構淺析

Android 的Camera包含取景器(viewfinder)和拍攝照片的功能。從其程序的架構上主要分為客戶端和服務端兩個部分,它們建立在Android的進程間通訊的Binder的結構上.如果想詳細了解Android的Binder機制,請參看”云中漫步的” Android 系統的Binder 機制 . 接下來我們詳細介紹一下Android Camera的架構.

要了解Android Camera架構,還是得先從Android本身的架構說起。

Android? 架構圖

從Android框架看,分為四層:應用層,應用框架層,庫層,內核層.

應用層主要工作在 Android SDK 之上,利用Android?提供的API進行開發,生成APK包.

應用框架層整合了Android自帶各種控件和類,為 應用開發 提供高效,方便的API接口.這個對上實現統一的接口,對下也提供統一的標準方便各種庫的移入.

庫層是Android與底層硬件通信接口,它封裝底層硬件接口實現該模塊的具體邏輯,并以服務的形式通過Binder通訊機制暴露給應用框架.

內核層則是直接與硬件聯系的一層,可以理解為設備驅動.

通過對上面框架的簡要說明,我們大致明白一個應用自上而下的各個層起什么作用,這樣有助于我們對代碼的理解和修改.如果要做基于Android porting(移植)工作,就要明白在哪個層次的porting,怎么porting?

說完Android整體框架,我們以Camera為例來說明一下Camera在各層是如何實現。下圖是Camera部分在Android上各層的分布圖

Camera 結構分布圖

應用層

Camera 的 應用層在Android上表現為直接調用SDK API開發的一個Camera?應用APK包。代碼在\android\packages\apps\Camera下。主要是Java寫的基于 android.hardware.Camera類調用的封裝,并且實現Camera應用的業務邏輯和UI顯示。 android.hardware.Camera就是Android提供給上層調用的Camera類。這個類用來連接或斷開一個Camera服務,設置拍 攝參數,開始、停止預覽,拍照等。它也是Android Camera應用框架封裝暴露出來的接口。一個 Android應用 中若要使用這個類,需要在Manifest文件聲明Camera的權限,另外還需要添加一些元素來聲明應用中的Camera特性,如自動對焦等。具體做法可如下:

?

?

?

應用框架層

Camera 框 架層將應用與底層的實現隔離開來,實現了一套Android定義的對上對下接口規范,方便應用及底層硬件的開發和移植。這一層對上以Java類的形式包裝 出android.hardware.Camera,提供給應用層調用;對下在CameraHardwareInterface.h頭文件中定義了 Camera硬件抽象層的接口,這是一個包含純虛函數的類,必須被實現類繼承才能使用。這個實現類也即是下層中將講到的用戶庫層,它繼承 CameraHardwareInterface接口,實例化對底層硬件驅動的封裝,最終生成libcamera.so供框架的 libcameraservice.so調用。這樣做的好處是讓Camera的應用框架代碼獨立,不受底層硬件驅動改變的影響,方便在不同平臺上 porting?驅動代碼,而保持上層的代碼不用變化。

? 庫層(硬件抽象層HAL Hardware Abstraction Layer)

這 個層次其實就是用戶空間的驅動代碼。前面有介紹過框架層對下在CameraHardwareInterface.h頭文件中定義了Camera硬件抽象層 的接口,它是包含純虛函數的類,必須被實現類繼承才能使用。HAL層正好繼承CameraHardwareInterface接口,依據V4l2規范實例 化底層硬件驅動,使用ioctl方式調用驅動,最終生成libcamera.so供框架的libcameraservice.so調用。

內核層

這一層主要是基于Linux的設備驅動。對Camera來說,一般是按V4l2規范將Camera原子功能以ioctl的形式暴露出來供HAL層調用的實現。

參考:

http://blog.csdn.net/BonderWu/archive/2010/08/15/5814278.aspx

http://wenku.baidu.com/view/c45c1b4e852458fb770b568c.html

http://www.360doc.com/content/11/0106/16/4915724_84479344.shtml#

Android Camera 開發之前言


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美四虎| 欧美国产一区二区三区 | 国产精品亚洲成在人线 | 九九精品激情在线视频 | 日本一区二区三区精品国产 | 日韩伦理免费在线观看 | 高清男女性高爱潮免费 | 日韩精品一区二区三区在线观看 | 在线看av网址 | 久久亚洲欧美日韩精品专区 | 男女污污无遮挡免费观看 | 国产精品1区2区 | 丁香六月激情婷婷 | 又黄又爽的成人免费网站 | 国产精品亚洲成在人线 | 四虎免费在线视频 | jzz 护士| 成人片免费看 | 2019中文字幕在线播放 | 国产精品久久久久免费 | 日日摸夜夜添欧美一区 | 日日摸夜夜添夜夜添亚洲女人 | 国产精品小黄鸭一区二区三区 | 超碰97免费观看 | 久久综合九色综合欧美播 | 国产亚洲一区二区三区在线观看 | 精品一卡2卡三卡4卡免费视频 | 啪啪免费网站入口链接 | 国产精品1区2区3区 另类视频综合 | 人人夜| 成人国产永久福利看片 | 国产男女爽爽爽免费视频 | 色婷婷精品国产一区二区三区 | 成人在线视频精品 | 国产一有一级毛片视频 | 国产精品乱码人人做人人爱 | 奇米影视777中文久久爱 | 国产免费一级高清淫日本片 | 男女啪啪片| 亚洲精品乱码久久久久久v 国产高清免费视频 | 中文字幕在线一区 |