Android CameraX 是什么?

What is Android CameraX?

什么是 Android CameraX?

计划在 Google I/O 2019 年推出关于 CameraX 的 session。它是什么?是不是新框架API?是新图书馆吗? https://events.google.com/io/schedule/events/8d400240-f31f-4ac2-bfab-f8347ef3ab3e

这是否意味着 Camera2 API 已弃用? https://github.com/googlesamples/android-Camera2Basic

什么是 Android CameraX?

CameraX 是一个新的 Jetpack 库,可让开发人员控制设备的摄像头并专注于可追溯到 API 级别 21 (Lollipop) 的设备间兼容性。它于 2019 年 Google I/O 发布,并有一个专门的文档页面和一个官方示例。

是否意味着 Camera2 API 已弃用?

Camera2 API 未弃用;事实上,它是 CameraX 的基础。 CameraX 还提供了 Camera2 互操作 API,允许开发人员使用 Camera2 代码扩展他们的 CameraX 实现。

有关更多信息,请访问 https://developer.android.com/camerax

获取官方文档

您可以查看 official doc:

CameraX is an addition to Android Jetpack that makes it easier to add camera capabilities to your app. The library provides a number of compatibility fixes and workarounds to help make the developer experience consistent across many devices.

您可以使用 cameraX 通过称为用例的抽象来连接设备的相机。以下用例当前可用:

  • Preview:准备预览SurfaceTexture
  • 图像分析: 提供 CPU-accessible 缓冲区用于分析,例如用于机器学习
  • 图像捕获:捕获并保存照片

用例可以合并并同时激活。

只需添加依赖项:

dependencies {
  // CameraX core library
  def camerax_version = "1.0.0-alpha01"
  implementation "androidx.camera:camera-core:$camerax_version"
  // If you want to use Camera2 extensions
  implementation "androidx.camera:camera-camera2:$camerax_version"
}

有关如何使用 CameraX 库的信息check here

Google IO 2019中,Google在Android开发中添加了另一个强大的相机开发工具,称为CameraX作为喷气背包的一部分

CameraX 的一些功能

  • 它向后兼容直到 Android 5.0 / Lollipop (API 21) 和 它适用于市场上至少 90% 的设备。
  • 在引擎盖下,它使用并利用了 Camera 2 APIs。它 基本上,通过 Camera 2 提供与 Camera 1 API 相同的一致性 遗留层,它修复了设备上的许多问题。
  • 它还有很多很棒的高级功能,比如人像、HDR、 夜间模式等(前提是您的设备支持)。
  • CameraX 还引入了用例,让您可以专注于 您需要完成的任务,而不是在特定设备上浪费时间。其中很少有预览、图像分析、图像捕获。
  • CameraX 在 onResume() 和 onPause() 但它在 View 的帮助下绑定到 View 的生命周期 CameraX.bindToLifecycle()
  • 以下是 CameraX 修复的几个已知问题列表,

CameraX 还能做什么

  • 您还可以使用 CameraX
  • 创建视频录像机应用程序
  • 添加多个扩展,例如 人像模式、HDR
  • 我们还可以使用图像分析来执行计算机视觉 ML。所以 在每一帧上对 运行 实施 Analyzer 方法。

要阅读有关 CameraX 的更多信息,请参阅 here

对于 Getting Started with CameraX