97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠見教育科技集團 >> 新聞動態(tài) >> Android資料 >> Android Camera拍照源碼分析  
 
Android Camera拍照源碼分析
分享到:

為了執(zhí)行Camera的功能,Camera應(yīng)用需要完成和Camera原生服務(wù)的一系列通信,如啟動預(yù)覽、自動對焦、拍照等,以及基于模擬器下CameraHardwareStub的實現(xiàn)。Camera應(yīng)用調(diào)用Camera原生接口的過程如下圖所示。


Java層調(diào)用Camera原生服務(wù)的過程

流程說明:

在系統(tǒng)啟動時,Android Runtime會調(diào)用register_android_hardware_Camera()注冊Camera相關(guān)的navtive函數(shù)到JNI。當(dāng)Camera應(yīng)用啟動后,首先會通過Camera客戶端向Camera原生服務(wù)發(fā)出連接Camera設(shè)備的請求。Camera原生服務(wù)在收到連接Camera設(shè)備的請求后,創(chuàng)建一個內(nèi)部類Client的對象,調(diào)用HAL的CameraHardwareInterface::openCameraHardware()方法打開Camera設(shè)備,在模擬器環(huán)境下,會創(chuàng)建一個CameraHardwareStub對象,配置初始化參數(shù)。調(diào)用HAL的CameraHardwareStub::useOverlay()方法,設(shè)置圖像的渲染方式為Overlay。

在Aurora中,在默認情況下,預(yù)覽幀速率為15幀/秒,預(yù)覽幀元數(shù)據(jù)為YUV 420,拍照分辨率為2048×1536像素,圖像質(zhì)量為100。參數(shù)初始化工作在QualcommCamera Hardware:: initDefaultParameters()方法中實現(xiàn)。

當(dāng)Java層發(fā)出預(yù)覽請求后,經(jīng)過Camera客戶端的轉(zhuǎn)發(fā),Camera原生服務(wù)會調(diào)用HAL層的CameraHardwareStub::startPreview()方法創(chuàng)建一個預(yù)覽線程,在該線程中接收硬件上傳的數(shù)據(jù)。如果是在模擬器上運行,則將FakeCamera的數(shù)據(jù)傳給UI,在原始Android代碼中,默認的預(yù)覽分辨率為176×144像素(QCIF)。在Aurora中,目前支持的預(yù)覽分辨率為WVGA、VGA、HVGA、CIF、QVGA、QCIF。

當(dāng)Java層發(fā)出自動對焦請求后,經(jīng)過Camera客戶端的轉(zhuǎn)發(fā),Camera原生服務(wù)會調(diào)用HAL層的CameraHardwareStub:: autoFocus ()方法創(chuàng)建一個自動對焦的線程。

當(dāng)Java層發(fā)出拍照請求后,經(jīng)過Camera客戶端的轉(zhuǎn)發(fā),Camera原生服務(wù)會調(diào)用HAL層的CameraHardwareStub:: takePicture ()方法完成Camera的拍照工作,然后通過回調(diào)函數(shù)傳給UI。

 更多相關(guān)文章

·Android Camera原生服務(wù)架構(gòu)
·Android Camera錄像過程分析
·Android 原生層媒體播放過程
·Android 視頻解碼過程詳解
·Android 視頻編碼源碼分享