Android Camera框架
从Android框架看,分为四层:应用层、应用框架层、库层、内核层。
应用层主要工作在AndroidSDK之上,利用Android提供的API进行开发,生成APK包。
Android的Camera包含取景器(viewfinder)和拍摄照片(takepicture)的功能。目前Android原生的Camera程序虽然功能比较简单,但是其程序的架构分成客户端和服务器两个部分,它们建立在Android的进程间通讯Binder的结构上。Android中的Camera模块同样遵循Android的框架。
Android Camera架构分层及代码结构
应用层
Camera 的JAVA应用程序的路径:packages/apps/Camera/src/com/android/camera/
com.android.camera
app
crop
data
drawable
exif
gifencoder
ui
util
CameraActivity.java
AnimationManager.java
CameraModule.java
CameraMoreSetting.java
CameraPreference.java
CameraSetting.java
PanoProgressBar.java
PhotoMenu.java
PhotoModule.java
PhotoUI.java
VideoMenu.java
VideoModule.java
VideoUI.java
WideAnglePanoramaController.java
WideAnglePanoramaModule.java
WideAnglePanoramaUI.java
JNI层(Camera 的 JAVA 本地调用部分):
frameworks/base/core/java/android/hardware/Camera.java
JNI中定义的类是同一个,有些native方法通过JNI的方式调用Native代码实现具体的功能,比如startPreview、autoFocus、takePicture等。
Cameraclient层:
CameraService层
HAL层
三 Camera的架构和代码分析
头文件ICameraClient.h
头文件Camera.h