【Camera Framework笔记】一、Cameraserver简介及启动、实例化流程

// framework包含: java & native
java跑在app进程  
native跑在cameraserver


cameraserver bin进程路径
framework/av/camera/cameraServer

cameraserver mk
framework/av/camera/cameraServer/android.bp


// cameraserver rc(run configure)

cameraserver进程是一个system进程,也是通过init.rc启动

进程启动时的配置文件
文件路径 system/etc/init


ps -A 显示的是进程名

rc文件中为服务名(dmesg | grep camera)

service cameraserver /system/bin/cameraserver
    class main 用于描述在哪个阶段启动
    user cameraserver
    group audio camera input drmrpc
    ioprio rt 4
    task_profiles CameraServiceCapacity MaxPerformance
    rlimit rtprio 10 10

// cameraserver manifest

vintf(system与vendor之间的通信接口)

cameraserver manifest 用于定义vendor interface接口  供hwservicemanager使用
framework/av/camera/cameraServer/manifest


// cameraserver进程启动流程

framework/av/camera/cameraServer/main.cameraServer.cpp
main函数流程
1. sigpipe信号
    signal(sigpipe,sig_ign)
    tcp通信中,比如 a与b通信,如果b关闭了通信,系统会发出一个sigpipe信号给a,告诉a连接已经断开
    同时a进程会被终止,若不想退出设置为sig_ign
2. 配置了5个线程来处理hidl调用 (ps -T -p pid 查看某个进程中的线程)

// cameraservice实例化流程
1. cameraservice::initialize
    BinderService::initialize (frameworks/native/libs/binder/include/binder/BinderService.h)
    BinderService::publish
    getServiceName:media.camera
    new cameraservice对象
        并将以上两个参数add到 servicemanager,这时cameraservice就已经成功注册到servicemanager中了,查看命令:service list | grep -i “media.camera”
        (binder::Status addService(const std::string& ServiceName, const sp<IBinder>& binder,
                          bool allowIsolated, int32_t dumpPriority) override;)
        此时new出来的 cameraservice 会赋值给sp(调用完cameraservice构造函数后,继续调用CameraService::onfirstRef)

            RefBase sp参考:https://www.cnblogs.com/Jackwen/p/4332120.html

2. onfirstRef
3. enumerateProviders
    创建cameraprovidersManager并完成初始化
        1. hidl cameraprovider的初始化
        2. aidl cameraprovider的初始化
    初始化vendortags
        setupvendortags
    初始化flashlight
    针对主前后摄为SPerfClass过滤cameracharacteristics

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cam_Rxy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值