CameraX の概要 Android Jetpack の一部。

CameraX は、カメラアプリの開発を容易にすることを目的とした Jetpack ライブラリです。 新しいアプリの場合は、CameraX から始めることをおすすめします。ほとんどの Android デバイスで機能する一貫性のある使いやすい API を提供するとともに、Android 5.0(API レベル 21)への下位互換性も備えています。Camera1 からアプリを移行する場合は、Camera1 から CameraX への移行ガイドをご覧ください。

主なメリット

CameraX は、いくつかの主要な方法でデベロッパーのエクスペリエンスを改善します。

幅広いデバイスに対応

CameraX は、Android 5.0(API レベル 21)以降を搭載したデバイス(既存の Android デバイスの 98% 以上)をサポートしています。

使いやすさ

CameraX ではユースケースを重視しています。ユースケースを使用すると、必須のタスクに集中でき、各デバイスの微妙な違いに対処する必要がなくなります。ほとんどの一般的なカメラのユースケースがサポートされています。

デバイス間の一貫性

図 2. CameraX Test Lab の自動化により、さまざまなデバイスタイプおよびメーカー間で一貫性のある API エクスペリエンスを実現できます。

カメラの動作に一貫性を持たせることは困難です。アスペクト比、画面の向き、回転、プレビュー サイズ、画像サイズを考慮する必要があります。CameraX では、こうした基本的な動作に対処します。

Google は Android 5.0 以来、各種のデバイスとすべてのオペレーティング システム バージョンでさまざまなカメラの動作をテストする CameraX Test Lab の自動化を維持しています。これらのテストは継続的に実施されており、さまざまな問題を特定して解決しています。

カメラ拡張機能

図 3. CameraX を使用してボケ(ポートレート)効果でキャプチャした画像。

CameraX にはオプションの Extensions API があり、デバイスのネイティブ カメラアプリと同じ機能を利用できます。しかも、追加するコードはわずか 2 行です。

拡張機能には、ボケ(ポートレート)、ハイ ダイナミック レンジ(HDR)、夜間モード、顔写真加工(いずれもデバイスのサポートが必要)が含まれています。

事例紹介

CameraX によって Monzo の開発がどのように簡略化されたかについては、Monzo の事例紹介をご覧ください。

ドキュメント

参考情報

CameraX について詳しくは、以下の参考情報をご確認ください。

Codelab

  • CameraX のスタートガイド
  • コードサンプル

  • CameraX のサンプルアプリ