黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Android Camera 開(kāi)發(fā)之前言

系統(tǒng) 2285 0

一、 Android Camera 成像原理介紹

Camera 工作流程圖:

Camera 的成像原理可以簡(jiǎn)單概括如下:

景 物(SCENE)通過(guò)鏡頭(LENS)生成的光學(xué)圖像投射到圖像傳感器(Sensor)表面上,然后轉(zhuǎn)為電信號(hào),經(jīng)過(guò)ADC(模數(shù)轉(zhuǎn)換)轉(zhuǎn)換后變?yōu)閿?shù)字圖 像信號(hào),再送到數(shù)字信號(hào)處理芯片(DSP)中加工處理,再通過(guò)IO接口傳輸?shù)紺PU中處理,通過(guò)DISPLAY就可以看到圖像了。

二、 Android Camera 的架構(gòu)淺析

Android 的Camera包含取景器(viewfinder)和拍攝照片的功能。從其程序的架構(gòu)上主要分為客戶端和服務(wù)端兩個(gè)部分,它們建立在Android的進(jìn)程間通訊的Binder的結(jié)構(gòu)上.如果想詳細(xì)了解Android的Binder機(jī)制,請(qǐng)參看”云中漫步的” Android 系統(tǒng)的Binder 機(jī)制 . 接下來(lái)我們?cè)敿?xì)介紹一下Android Camera的架構(gòu).

要了解Android Camera架構(gòu),還是得先從Android本身的架構(gòu)說(shuō)起。

Android? 架構(gòu)圖

從Android框架看,分為四層:應(yīng)用層,應(yīng)用框架層,庫(kù)層,內(nèi)核層.

應(yīng)用層主要工作在 Android SDK 之上,利用Android?提供的API進(jìn)行開(kāi)發(fā),生成APK包.

應(yīng)用框架層整合了Android自帶各種控件和類,為 應(yīng)用開(kāi)發(fā) 提供高效,方便的API接口.這個(gè)對(duì)上實(shí)現(xiàn)統(tǒng)一的接口,對(duì)下也提供統(tǒng)一的標(biāo)準(zhǔn)方便各種庫(kù)的移入.

庫(kù)層是Android與底層硬件通信接口,它封裝底層硬件接口實(shí)現(xiàn)該模塊的具體邏輯,并以服務(wù)的形式通過(guò)Binder通訊機(jī)制暴露給應(yīng)用框架.

內(nèi)核層則是直接與硬件聯(lián)系的一層,可以理解為設(shè)備驅(qū)動(dòng).

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

說(shuō)完Android整體框架,我們以Camera為例來(lái)說(shuō)明一下Camera在各層是如何實(shí)現(xiàn)。下圖是Camera部分在Android上各層的分布圖

Camera 結(jié)構(gòu)分布圖

應(yīng)用層

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

?

?

?

應(yīng)用框架層

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

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

這 個(gè)層次其實(shí)就是用戶空間的驅(qū)動(dòng)代碼。前面有介紹過(guò)框架層對(duì)下在CameraHardwareInterface.h頭文件中定義了Camera硬件抽象層 的接口,它是包含純虛函數(shù)的類,必須被實(shí)現(xiàn)類繼承才能使用。HAL層正好繼承CameraHardwareInterface接口,依據(jù)V4l2規(guī)范實(shí)例 化底層硬件驅(qū)動(dòng),使用ioctl方式調(diào)用驅(qū)動(dòng),最終生成libcamera.so供框架的libcameraservice.so調(diào)用。

內(nèi)核層

這一層主要是基于Linux的設(shè)備驅(qū)動(dòng)。對(duì)Camera來(lái)說(shuō),一般是按V4l2規(guī)范將Camera原子功能以ioctl的形式暴露出來(lái)供HAL層調(diào)用的實(shí)現(xiàn)。

參考:

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 開(kāi)發(fā)之前言


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論