Android Camera从App层到framework层到HAL层的初始化过程
Android camera 从上到下可以分为四个部分: Application层、 framework层、 HAL(hardware abstract layer)层、 Kernel层 一般面向开发者的话主要集中在Application层和framework层,但是一些厂商需要定制一些属于自己特有的东西的时候会去修改HAL层集成自己的一些东西,至于Kernel层一般的开发人员不会涉及到。 下面是一个简要的camera框架图: APP层通过Java调用framework层的Java类,framework层的不止包含Java类,还包含jni调用和camera client通过IPC Binder绑定获取下层的服务,然后进入HAL层。 在framework层中,Java框架通过JNI的方式调用Native框架,此处的Native作为Client端只给上层应用提供调用接口,而具体的业务实现则是由Server端(CameraService)来实现,Client和Server则是通过Binder的方式进行通讯。单独分析下Camera的C/S架构,其架构图如下 对于Android camera来说,其主要有:initialize,preview,takepicture三个关键点 由于我下载的Android源码的版本是7.1.1,版本较新,所以可能分析的内容和以前不大一样。