第七章 Android Camera 框架 7
1 总体介绍 Android Camera 框架从整体上看是一个 client/service 的架构,有两个进程:一个是 client 进程,可以看成是 AP 端,主要包括 JAVA 代码与一些 native c/c++代码;另一个是 service 进程,属于服务端,是 native c/c++代码,主要负责和 linux kernel 中的 camera driver 交互,搜集 linux kernel 中 camera driver 传上来的数据,并交给显示系统(surface)显示
client 进程与service 进程通过 Binder 机制通信,client 端通过调用 service 端的接口实现各个具体的功能
需要注意的是真正的 preview 数据不会通过 Binder IPC 机制从 service 端复制到 client 端,但会通过回调函数与消息的机制将 preview 数据 buffer 的地址传到 client 端,最终可在 JAVA AP中操作处理这个 preview 数据
2 client端 从 JAVA AP 的角度看 camera ap 就是调用 FrameWork 层的 android
hardware
camera 类来实现具体的功能
JAVA Ap 最终被打包成 APK
FrameWork 层主要提供了 android
hardware
camera 类给应用层使用,这个类也是 JAVA 代码实 现
Android
hardware
camera 类 通 过 JNI 调 用 native 代 码 实 现 具 体 的 功 能
Android
hardware
camera 类中提供了如下的一个参数类给应用层使用: public class Parameters {