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 具有可选的 扩展 API,使您可以使用最少两行代码访问与设备原生相机应用程序相同的特性和功能。

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

案例研究

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

文档

其他资源

要详细了解 CameraX,请参阅以下其他资源。

Codelab

  • CameraX 入门
  • 代码示例

  • CameraX 示例应用程序