Android Camera open 从上到下代码流程
Posted 峥嵘life
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Camera open 从上到下代码流程相关的知识,希望对你有一定的参考价值。
android Camera open 从上到下代码流程
Java层
1、Camera.java
----open();//入口1,默认指定CameraId为0,后置摄像头
----open(int cameraId);//入口2,未指定CameraId,可为0,1,2...
------------Camera(int cameraId)
----------------cameraInitNormal(int cameraId)
--------------------cameraInitVersion(int cameraId, int halVersion)
Jni层
2、android_hardware_Camera.cpp
----android_hardware_Camera_native_setup
C++层
3、Camera.cpp
----Camera::connect(int cameraId,...)
4、CameraBase.cpp
----CameraBase<TCam, TCamTraits>::connect(int cameraId,...)
底层服务
5、CameraService.cpp
----CameraService::connect(const sp<ICameraClient>& cameraClient, int cameraId,...)
--------CameraService::connectHelper(..,int cameraId,...)
------------CameraService::makeClient(...,int cameraId,...)
6、CameraClient.cpp
----CameraClient::initialize(sp<CameraProviderManager> manager)
Hal层
7、CameraHardwareInterface.cpp
----CameraHardwareInterface::initialize(sp<CameraProviderManager> manager)
8、CameraProviderManager.cpp
----CameraProviderManager::openSession(const std::string &id,...)
设备层
9、CameraDevice.cpp
----CameraDevice::open(const sp<ICameraDeviceCallback>& callback)
这里往下,不同系统会有较大差异。
10、CameraModule.cpp
----CameraModule::open(const char* id, struct hw_device_t** device)
11、CameraHal_Module.cpp
----int camera_device_open(const hw_module_t* module, const char* name, hw_device_t** device)
12、CameraHardware.cpp
----CameraHardware::CameraHardware()
13、V4L2Camera.cpp
----int V4L2Camera::Open (const char *device)
这里device字符串打印出来就是/dev/videoX(0、1、2)
Camera是不存在CameraService.java的,主要逻辑和实现都是在C++,所有问题分析或者新增功能都是C++代码分析为主。
共勉:再长的路也是要一步步走下去的。
以上是关于Android Camera open 从上到下代码流程的主要内容,如果未能解决你的问题,请参考以下文章