完整讲解了android中camera的工作机制,代码分析。对了解整个android工作流程会有很大的帮助。
2.6头文件CameraHardwareInterface.h
CameraHardwareInterface.h定义的是一个Camera底层的接口,这个类的实现者是最终实现Camera的。CameraHardwareInterface定以Camera硬件的接口,如下所示:classCameraHardwareInterface:publicvirtualRefBase{public:
virtual~CameraHardwareInterface(){}virtualsp<IMemoryHeap>virtualstatus_tvirtualvoidvirtualstatus_t
getPreviewHeap()const=0;
startPreview(preview_callbackcb,void*user)=0;
stopPreview()=0;autoFocus(autofocus_callback,
void*user)=0;
virtualstatus_ttakePicture(shutter_callback,
raw_callback,jpeg_callback,void*user)=0;
virtualstatus_tcancelPicture(boolcancel_shutter,
boolcancel_raw,boolcancel_jpeg)=0;
virtualstatus_tsetParameters(constCameraParameters¶ms)=0;
getParameters()const=0;
virtualCameraParameters
virtualvoidrelease()=0;
virtualstatus_tdump(intfd,constVector<String16>&args)const=0;
};
使用C语言的方式导出符号:
extern"C"sp<CameraHardwareInterface>openCameraHardware();
在程序的其他地方,使用openCameraHardware()就可以得到一个CameraHardwareInterface,然后调
用CameraHardwareInterface的接口完成Camera的功能。
3.1JAVA程序部分
在packages/apps/Camera/src/com/android/camera/目录的Camera.java文件中,包含了对
Camera的调用
在Camera.java中包含对包的引用:
importandroid.hardware.Camera.PictureCallback;importandroid.hardware.Camera.Size;