Google is committed to advancing racial equity for Black communities. See how.

CameraX overview

CameraX is a Jetpack support library, built to help you make camera app development easier. It provides a consistent and easy-to-use API surface that works across most Android devices, with backward-compatibility to Android 5.0 (API level 21).

While it leverages the capabilities of camera2, it uses a simpler, use case-based approach that is lifecycle-aware. It also resolves device compatibility issues for you so that you don't have to include device-specific code in your code base. These features reduce the amount of code you need to write when adding camera capabilities to your app.

Lastly, CameraX enables developers to leverage the same camera experiences and features that preinstalled camera apps provide, with as little as two lines of code. CameraX Extensions are optional add-ons that enable you to add effects on supported devices. These effects include Portrait, HDR, Night, and Beauty.

The core CameraX libraries are in beta stage. Beta releases are functionally stable and have a feature-complete API surface. They are ready for production use but may contain bugs.

For more information on the status of each library, see the CameraX library status page.

Primary benefits

CameraX improves the developer experience in the following ways:

Ease of use

CameraX focuses on compatibility

Figure 1. CameraX targets Android 5.0 (API level 21) and higher, covering most Android devices

CameraX introduces use cases, which allow you to focus on the task you need to get done instead of spending time managing device-specific nuances. There are several basic use cases:

  • Preview: get an image on the display
  • Image analysis: access a buffer seamlessly for use in your algorithms, such as to pass into MLKit
  • Image capture: save high-quality images

These use cases work across all devices running Android 5.0 (API level 21) or higher, ensuring that the same code works on most devices in the market.

Consistency across devices

Figure 2. Automated CameraX test lab ensures a consistent API experience across many device types and manufacturers.

Managing consistent camera behavior across apps is hard. There is a lot to account for, including aspect ratio, orientation, rotation, preview size, and high-resolution image size. With CameraX, these basic behaviors just work.

We’re investing in an automated CameraX test lab that tests a variety of camera behaviors across a range of devices and all operating system flavors since Android 5.0 (API level 21). These tests are run on an ongoing basis to identify and fix a wide range of issues.

Our aim is to, over time, significantly reduce your test burden.

New camera experiences

Figure 3. CameraX enables new in-app experiences like portrait effects. Image captured on Huawei Mate 20 Pro using CameraX.

CameraX has an optional add-on, called Extensions, which allow you to access the same features and capabilities as those in the native camera app that ships with the device, with just two lines of code.

The first set of capabilities available include Portrait, HDR, Night, and Beauty. These capabilities are available on supported devices.

Case study

To see how CameraX has simplified development for Monzo, see their case study.

Additional resources

To learn more about CameraX, consult the following additional resources.

Codelab

  • Getting Started with CameraX
  • Code sample

  • Official CameraX sample app