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 ではユースケースを重視しています。ユースケースを使用すると、必須のタスクに集中でき、各デバイスの微妙な違いに対処する必要がなくなります。ほとんどの一般的なカメラのユースケースがサポートされています。
- プレビュー: 画像を表示します。
- 画像解析: アルゴリズムで使用するバッファにシームレスにアクセスします(ML Kit に渡すためなど)。
- 画像キャプチャ: 画像を保存します。
- 動画キャプチャ: 動画と音声を保存します。
デバイス間の一貫性
カメラの動作に一貫性を持たせることは困難です。アスペクト比、画面の向き、回転、プレビュー サイズ、画像サイズを考慮する必要があります。CameraX では、こうした基本的な動作に対処します。
Google は Android 5.0 以来、各種のデバイスとすべてのオペレーティング システム バージョンでさまざまなカメラの動作をテストする CameraX Test Lab の自動化を維持しています。これらのテストは継続的に実施されており、さまざまな問題を特定して解決しています。
カメラ拡張機能
CameraX にはオプションの Extensions API があり、デバイスのネイティブ カメラアプリと同じ機能を利用できます。しかも、追加するコードはわずか 2 行です。
拡張機能には、ボケ(ポートレート)、ハイ ダイナミック レンジ(HDR)、夜間モード、顔写真加工(いずれもデバイスのサポートが必要)が含まれています。
事例紹介
CameraX によって Monzo の開発がどのように簡略化されたかについては、Monzo の事例紹介をご覧ください。
ドキュメント
参考情報
CameraX について詳しくは、以下の参考情報をご確認ください。
Codelab
コードサンプル