Android Camera分析(10)

2020-12-22 09:00

完整讲解了android中camera的工作机制,代码分析。对了解整个android工作流程会有很大的帮助。

在这里定义的Camera类继承了活动Activity类,在它的内部,包含了一个android.hardware.Camera

publicclassCameraextendsActivityimplementsView.OnClickListener,SurfaceHolder.Callback{}

对Camera功能的一些调用如下所示:

mCameraDevice.takePicture(mShutterCallback,mRawPictureCallback,mJpegPictureCallback);mCameraDevice.startPreview();mCameraDevice.stopPreview();

startPreview、stopPreview和takePicture等接口就是通过JAVA本地调用(JNI)来实现的。frameworks/base/core/java/android/hardware/目录中的Camera.java文件提供了一个JAVA类:

Camera。

publicclassCamera{}

在这个类当中,大部分代码使用JNI调用下层得到,例如:publicvoidsetParameters(Parametersparams){

Log.e(TAG,"setParameters()");//params.dump();

native_setParameters(params.flatten());

}

再者,例如以下代码:

publicfinalvoidsetPreviewDisplay(SurfaceHolderholder){

setPreviewDisplay(holder.getSurface());

}

privatenativefinalvoidsetPreviewDisplay(Surfacesurface);

两个setPreviewDisplay参数不同,后一个是本地方法,参数为Surface类型,前一个通过调用后一个

实现,但自己的参数以SurfaceHolder为类型。

android.hardware.CameramCameraDevice;

3.2Camera的JAVA本地调用部分

Camera的JAVA本地调用(JNI)部分在frameworks/base/core/jni/目录的

android_hardware_Camera.cpp中的文件中实现。

android_hardware_Camera.cpp之中定义了一个JNINativeMethod(JAVA本地调用方法)类型的数组

gMethods,如下所示:

staticJNINativeMethodcamMethods[]={


Android Camera分析(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:3G网络优化难点及解决方案译文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: