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
コードサンプル