Android Camera从上至下(三)------CameraService(简介及常用接口介绍)

1 CameraService简介

  Camera Service被设计成一个独立进程,作为一个服务端,处理来自Camera Framework 客户端的跨进程请求,并在内
  部进行一定的操作,随后作为客户端将请求再一次发送至作为服务端的	Camera Provider,整个流程涉及到了两个跨进程
操作,前者通过AIDL机制实现,后者通过HIDL机制实现。
  而本文则主要介绍CameraService 通过 aidl 与 framework交互的相关内容。

在这里读者可以先去了解一下aidl,不必深究,我认为知道如何使用即可。这里可以参考我的另一篇文章。Android aidl 简单小demo学习过程记录(菜鸟详细版,快速上手aidl)

2 CameraService常用接口

2.1 ICameraService.aidl

  定义了ICameraService 接口,实现主要通过CameraService类来实现,主要接口如下:
	getNumberOfCameras:获取系统中支持的Camera个数

	connectDevice():打开一个Camera 设备

	addListener(): 添加针对Camera 设备以及闪光灯的监听对象

2.2 ICameraDeviceCallbacks.aidl

  文件中定义了ICameraDeviceCallbacks接口,其实现主要由Framework中的CameraDeviceCallbacks
类进行实现,主要接口如下:
	onResultReceived:一旦Service收到结果数据,便会调用该接口发送至Framework
	
	onCaptureStarted():一旦开始进行图像的采集,便调用该接口将部分信息以及时间戳上
传至Framework
	
	onDeviceError(): 一旦发生了错误,通过调用该接口通知Framework

2.3 ICameraDeviceUser.aidl

  定义了ICameraDeviceUser接口,由CameraDeviceClient最终实现,主要接口如下:

	disconnect:关闭Camera 设备

	submitRequestList:发送request

	beginConfigure:开始配置Camera 设备,需要在所有关于数据流的操作之前

	endConfigure:结束关于Camera 设备的配置,该接口需要在所有Request下发之前被调用

	createDefaultRequest:创建一个具有默认配置的Request

2.4 ICameraServiceListener.aidl

  定义了ICameraServiceListener接口,由Framework中的CameraManagerGlobal类实现,
  主要接口如下:

	onStatusChanged:用于告知当前Camera 设备的状态的变更

3 总结

在了解了Android Camera从上到下(一)------Android Camera 架构简介(Api2 + Hal3)之后。其实对于再实际的应用中,出现问题的地方往往不会是本文中所涉及到的部分。所以本文也仅是对一些常用接口做了记录,但这些已经足矣。我们的重点要放在更加后面的文章中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值