Camera

Android's camera subsystem connects the camera application to the application framework and user space libraries, which in turn communicate with the camera hardware layer that operates the physical camera.

The diagram below illustrates the structure of the camera subsystem.

Building a Camera Library

To implement a camera driver, create a shared library that implements the interface defined in CameraHardwareInterface.h. You must name your shared library libcamera.so so that it will get loaded from /system/lib at runtime. Place libcamera sources and Android.mk in vendor/acme/chipset_or_board/libcamera/.

The following stub Android.mk file ensures that libcamera compiles and links to the appropriate libraries:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := libcamera

LOCAL_SHARED_LIBRARIES := \
    libutils \
    librpc \
    liblog

LOCAL_SRC_FILES += MyCameraHardware.cpp

LOCAL_CFLAGS +=

LOCAL_C_INCLUDES +=

LOCAL_STATIC_LIBRARIES += \
    libcamera-common \
    libclock-rpc \
    libcommondefs-rpc

include $(BUILD_SHARED_LIBRARY)

Sequence Diagrams

Preview

The following diagram illustrates the sequence of function calls and actions necessary for your camera to preview.

Taking a Picture

The following diagram illustrates the sequence of function calls and actions necessary for your camera to take a picture.

Interface

Note: This document relies on some Doxygen-generated content that appears in an iFrame below. To return to the Doxygen default content for this page, click here.

↑ Go to top