It's happening now, watch the livestream.

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 like Portrait, HDR, Night, and Beauty within your application on supported devices.

The CameraX library is in alpha stage, as its API surfaces aren't yet finalized. We do not recommend using Alpha libraries in production. Libraries should strictly avoid depending on Alpha libraries in production, as their API surfaces may change in source- and binary-incompatible ways.

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.

Additional resources

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

Codelab

  • Getting Started with CameraX
  • Code sample

  • Official CameraX sample app