Android Camera2+HAL3架构

Architecture Legacy

在这里插入图片描述
Android Camera当前提供了两套API:API1.0和API2.0。API1.0和API2.0的区别是:

(1) API1.0相对简单且易于使用,应用可以做的事情不多。
(2) API2.0则要复杂得多,但是应用程序可以对底层相机有更多的控制权。比如:efficient zero-copy burst/streaming flows and per-frame controls of exposure, gain, white balance gains, color conversion, denoising, sharpening, and more.
由于Android软件每次更新总是会做到向前兼容,所以在现在的版本上API1.0的相机也是可以跑起来的。但是当前API1.0 Google已经不再提供更新,它会逐渐被淘汰掉。
有关更多Android各版本的细节参考:https://source.android.google.cn/devices/camera/versioning

整体架构概述(Camera2 + HAL3)

Android Camera整体框架主要包括三个进程:app进程、camera server进程、hal进程(provider进程)。进程之间的通信都是通过binder实现,其中app和camera server通信使用 AIDL(Android Interface Definition Language) ,camera server和hal(provider进程)通信使用HIDL(HAL interface definition language)
Android Camera2整体架构如下图:

Camera architecture
上图Kernel层没有画出来,其它基本可以和Android系统框架对应起来。
大致分为这几个部分:

  1. Application framework
    这一层是用于给APP提供访问hardware的Camera API2,通过binder来访问camera service。有两个主要的类:

    (1) CameraManager,CameraManager是一个独一无二地用于检测、连接和描述相机设备的系统服务,负责管理所有的CameraDevice相机设备。通过ICameraService调用到CameraService。

    // CameraManager.java
    private void connectCameraServiceLocked() {
           // CameraManager是一个系统服务,应该是开机就会被创建起来
    	IBinder cameraServiceBinder = ServiceManager.getService(CAMERA_SERVICE_BINDER_NAME);
    	ICameraService cameraService = IC
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值