Android Camera Subsystem 架构(Binder机制)及显示分析(1)

1 Camera Architecture (Binder机制应用)该部分主要借助Camera Subsystem分享自己对binder的理解。对该部分的阅读不需要太多对Camera子系统的了解,结合大体类图,顺着我的思路也可以学习binder设计思想。通过我个人的一个思考路线,来阐述如何将binder通信机制嵌入到一个Subsystem中。通过这部分的启发,可以帮助大家应用binder通信机制,可以为Android Framwork开发更多的服务。也希望大家在阅读的时候,给我一些指导,同时帮助我更深的理解Android。大家看到的结构图和类图,我会尽快更新,因为这两个图是我大概在三个月之前刚接触项目,大概浏览下源码简单了解结构之后画的,大体方向没有错误,但是缺少一些细节,最近工作比较忙,没来的及更新。项目release之后我会添加详细结构图及类图。

2 Camera Display该部分主要是结合自己对Camera Subsystem中涉及的Display的一个分析,帮助大家尽快理解Camera Subsystem。对这块的理解需要一些Android基础知识和Camera Subsystem源码基础。代码可能和你看到的源码不是很一样,因为已经是修改过的,包括Capture和Recording都可以很健壮的运行,而且已经过严格测试。


1、Camera Architecture

(1)Camera Architecture 


(2)Camera File 


 (3)Camera Framework 




 上面的类图只是一个简单的继承关系,并没有体现出很多细节,只供大家参考。ICamera、ICameraClient、ICameraServices三个类是按照Binder IPC要求的框架实现的。类Camera与CameraService端通过Binder IPC机制来实现具体的功能。 Camera类通过getCameraService()向ServiceManager发出请求,得到了一个名字为“media.camera”的CameraService实例。 通过调用CameraService提供的接口connect()在CameraService端new一个CameraService::Client类的对象mClient,通过connect将该对对象返回给Camera Client端 。随后Camera通过这个sp mCamera对象调用函数就如同直接调用CameraService::Client类的函数。 CameraService::Client 在CameraService内部真正处理由Camera Client发往Camera Service的请求和由 Camera HAL返回的数据及notify信息。其中之前的callback函数和Camera HAL都以成员变量的形式存在于 class Client。


文章转自:http://blog.csdn.net/myzhzygh/article/details/6622419

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值