To make it easier for developers to use an Android camera with MLKit, Camera 1.2 introduces MlKitAnalyzer to handle much of the required setup. MLKitAnalyzer is a wrapper around MLKit detectors that feeds them all camera frames so they can be processed. At the end of the analysis, it will call Consumer.accept(T) to send the aggregated results. The following snippet shows how you can use MLKitAnalyzer to scan a barcode: val options = BarcodeScannerOptions.Builder() .setBarcodeFormats(Barcode.FORMAT_QR_CODE) .build() val barcodeScanner = BarcodeScanning.getClient(options) cameraController.setImageAnalysisAnalyzer(executor,New executor,NewRair_Can,New,Search,New,Search) > { . .. }); In addition to barcode scanning, CameraX 1.2 supports face detection, text detection, and object detection. Another new feature in CameraX 1.2 aims to reduce the delay between pressing the shutter button and the actual frame being captured. This feature, called zero shutter lag, doesn’t actually reduce the device’s inherent latency, but instead uses a circular buffer to store the most recent frames the camera has captured. Then, when the user presses the shutter button, it selects the cache box with the closest timestamp to the moment takePicture(OutputFileOptions, Executor, OnImageSavedCallback) is called. Zero shutter lag is enabled using CAPTURE_MODE_ZERO_SHOT_LAG with ImageCapture.Builder.setCaptureMode(). This feature may not work on all devices as it requires more memory to store the circular photo buffer. The CameraInfo.isZslSupported() API can be used to query device capabilities. Additionally, zero shutter lag cannot be used when shooting video or with vendor extensions that apply special effects. As a final note, CameraX 1.2 adds a new API for setting location metadata for saved videos and includes a number of bug fixes such as incorrect Exif metadata, error when recording video with no microphone available, and more. CameraX is part of Android Jetpack, a suite of libraries that aims to simplify building Android apps by adopting best practices, reducing boilerplate, and writing code that works across Android versions and devices.