A31S-camera流程

open函数分析


Camera camera = Camera.open(int cameraId);
调用下面文件提供的接口
\\192.168.1.122\ygm\A31S-source\android\frameworks\base\core\java\android\hardware\Camera.java
该文件中会调用new Camera(i)
该构造函数中调用 native_setup(new WeakReference<Camera>(this), cameraId, packageName);






native字段可以确定native_setup调用的就是jni接口
\\192.168.1.122\ygm\A31S-source\android\frameworks\base\core\jni\android_hardware_Camera.cpp
static JNINativeMethod camMethods[] = {
  


    { "native_setup",
       "(Ljava/lang/Object;ILjava/lang/String;)V",
    
      (void*)android_hardware_Camera_native_setup }
    }
即调用该文件中的android_hardware_Camera_native_setup函数,该函数中调用Camera::connect即是client端的函数






可以参考:
\\192.168.1.122\ygm\A31S-source\android\frameworks\av
调用\camera下面的Camera.cpp中的-->CameraBase.cpp中的connect函数,该函数则调用const sp<ICameraService>& cs = getCameraService();
最终调用服务端的connect,来自文件\\192.168.1.122\ygm\A31S-source\android\frameworks\av\services\camera\libcameraservice\
CameraService.cpp






connect函数中则建立client对象并调用client->initialize(mModule);来自文件
\\192.168.1.122\ygm\A31S-source\android\frameworks\av\services\camera\libcameraservice\device1\
CameraHardwareInterface.h






接着就找找open函数,即来自文件
\\192.168.1.122\ygm\A31S-source\android\hardware\samsung_slsi\exynos5\libcamera
static hw_module_methods_t camera_module_methods = {
            open : HAL_camera_device_open
};
该函数中目的得到static camera_device_t *g_cam_device;再
g_cam_device->priv = new ExynosCameraHWInterface(cameraId, g_cam_device);
构造函数中
m_secCamera = ExynosCamera::createInstance();
m_secCamera->create(cameraId)
m_previewThread   = new PreviewThread(this);
m_videoThread     = new VideoThread(this);
m_autoFocusThread = new AutoFocusThread(this);
m_pictureThread   = new PictureThread(this);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁吃大象666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值