CameraX 概览   Android Jetpack 的一部分。

CameraX 是一个 Jetpack 库,旨在帮助简化相机应用开发。对于新应用,我们建议从 CameraX 开始。它提供了一致且易于使用的 API,适用于绝大多数 Android 设备,并向后兼容 Android 5.0(API 级别 21)。如果您要将应用从 Camera1 迁移,请参阅我们的Camera1 到 CameraX 迁移指南

主要优势

CameraX 在几个关键方面改善了开发者体验。

广泛的设备兼容性

CameraX 支持运行 Android 5.0(API 级别 21)及更高版本的设备,这代表了现有 Android 设备的 98% 以上。

易用性

CameraX 强调用例,让您能够专注于需要完成的任务,而不是管理设备特定的细微差别。支持大多数常见的相机用例

跨设备一致性

图 2. 自动化 CameraX 测试实验室确保跨多种设备类型和制造商的一致 API 体验。

保持一致的相机行为很难。您必须考虑宽高比、方向、旋转、预览大小和图像大小。使用 CameraX,这些基本行为可以直接工作。

我们维护一个自动化的 CameraX 测试实验室,该实验室跨一系列设备和 Android 5.0 以来的所有操作系统版本测试各种相机行为。这些测试持续运行,以识别和修复各种问题。

相机扩展

图 3. 使用 CameraX 捕获的散景(人像)效果图像。

CameraX 具有可选的 Extensions API,它允许您仅用两行代码即可访问设备原生相机应用所具有的相同功能和能力。

扩展功能包括散景(人像)、高动态范围 (HDR)、夜间模式和面部修饰,所有这些都需要设备支持。

案例研究

要了解 CameraX 如何简化 Monzo 的开发,请参阅他们的案例研究

文档

其他资源

要了解有关 CameraX 的更多信息,请查阅以下其他资源。

Codelab

  • CameraX 入门
  • 代码示例

  • CameraX 示例应用