android_驱动_camera_HAL3

笔记整理自:
https://source.android.google.cn/devices/camera/versioning
https://blog.csdn.net/u013961718/article/details/87302254
https://www.cnblogs.com/blogs-of-lxl/p/10651611.html
首先提出问题:相机随着需求的发展需要开发新的功能,这时候我们应用就需要使用更新版本的API、HAL、android版本,接着就涉及到这些软件之间的版本兼容的问题

  1. 兼容关系
    API1 = 4.4android以下 = HAL3.1
    API2 = 5.0android以上 = HAL3.2
    应用级框架都是基于兼容的HAL开发的
  2. 5.5以上的android版本支持API2的级别查询属性:android.info.supportedHardwareLevel
  3. android IPC:
    1) 系统中进程之间需要通信,比如linux中就有共享内存、信号量、消息队列、套接字、命名管道
    2) android中IPC方式是binder通信方式,binder实现方法是在进程中创建线程池,用于处理其他进程的IPC和本地进程消息
    3) binder是基于client - server模式,
  4. android camera框架:
    1) 主要包含三个进程:app进程、camera server进程、HAL(provider)进程,进程之间通过binder方式实现,前两者之间是AIDL(android interface definition language),后两者是HIDL(HAL interfacce definition language)
    2) 三个大框分别表示上面的三个进程,红色是AIDL接口、橙色是HIDL接口
    1 CameraDevice的open流程
    # 定义操作camera设备类的操作对象deviceImpl
    # 让操作对象camera 设备获取回调函数
    # manager从CameraService 获取检测、连接、相机描述的信息
    Note:android里边的service都是SystemService来管理的
    # 设置camera device的 user域
    2 Native framework
    # 路径:frameworks/av/camera/aidl/android/hardware
    # app fw通过aidl接口访问native fw
    3 camera Service
    # frameworks/av/services/camera/
    # 向上向app提供服务 向下向HAL获取数据
    #
    4 hal:有厂商如高通实现结构 名字由google定义好
    # path:hardware/interface/camera
    在这里插入图片描述
    3)request:
    1 框架流程掌握大法:
    # 把类放在合适位置(父类和子类的引用),类框内是类方法
    # 不同颜色的箭头表示不同的处理流程
    # 参数用文字描述
    2 为什么要走配置流程:因为我们的请求是通过session来完成的,session需要surface作为参数
    在这里插入图片描述
    4) request在HAL的处理方式
    1 层和模块的交互的框架画法 在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专一的黄先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值