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 のサンプルアプリ