スマートフォンのハードウェアは、多くの場合、ソフトウェアがデフォルトで許可する以上の機能を備えています。 これがまさにその理由です Googleカメラポート は、さまざまなデバイスで画質を劇的に向上させる簡単な方法として多くの人が認識しているため、フォーラムで非常に人気があります。 移植された Google カメラ アプリを使用すると、Google 以外のデバイスでも Google の優れた HDR+ 最適化とポートレート モードを使用できます。 ただし、これらのポートについて読んでいるときに、「Camera2 API」という特定の用語に遭遇したことがあるはずです。 このチュートリアルでは、この用語の実際の意味と、Android スマートフォンでの Camera2 API サポートのステータスを確認する方法を学びます。
Camera2 APIとは何ですか?
携帯電話の物理カメラ モジュールは非常に複雑なハードウェアですが、Android はすべてを認識する必要はありません SoC によって実装されたカメラのハードウェア抽象化レイヤー (HAL) のおかげで、それと対話するための低レベルのパラメーター ベンダー。 カメラ固有のアプリケーション プログラミング インターフェイス (API) は HAL 上に常駐し、アプリレベルのパブリック フレームワークとして機能します。 簡単に言うと、カメラ API を使用すると、アプリはカメラ センサーの詳細を気にすることなく、合理的な方法でデバイス上のカメラ機能を調べることができます。
Googleが導入したのは、 カメラ2 API オリジナルの後継として Android 5.0 Lollipop に カメラAPI アプリがスマートフォンに接続されている個々のカメラとどのように対話できるかをより適切に定義するためです。 効率的なゼロコピー バースト/ストリーミング フローなど、多数の詳細なカメラ コントロールをアプリに公開します。 露出、ゲイン、ホワイトバランスゲイン、色変換、ノイズ除去、シャープ化などのフレームごとの制御も可能です。
がある 5 つの異なるサポート レベル Camera2 API の場合:
- 遺産: フレームごとのコントロールなどのカメラ API2 機能をサポートしていないレガシー デバイス。 これらのデバイスは、カメラ API2 インターフェイスを通じてアプリに機能を公開します。これは、カメラ API1 インターフェイスを通じてアプリに公開される機能とほぼ同じです。
- 限定: これらのデバイスは、すべてのカメラ API2 機能のサブセットのみをサポートします。
- 満杯: これらのデバイスは、カメラ API2 の主要な機能をすべてサポートし、カメラ HAL 3.2 以降および Android 5.0 以降を使用する必要があります。
- レベル3: これらのデバイスは、完全な Camera2 API サポートに加えて、YUV 再処理と RAW 画像キャプチャに加えて、追加の出力ストリーム構成をサポートします。
- 外部の: 一部の例外を除き、LIMITED デバイスと同様です (例: 一部のセンサーまたはレンズ情報が報告されない場合や、フレーム レートがあまり安定しない場合があります)。 このレベルは、USB Web カメラなどの外部カメラに使用されます。
ほとんどのユーザーと同様に、皆さん全員が Camera2 API サポートに注目すべき理由は、スマートフォンで Google カメラ ポートが機能する必要があるからです。
Camera2 APIが有効かどうかを確認する方法
のウェブページ 画像テストスイート Compatibility Test Suite (CTS) の一部には、次のように記載されています。 カメラ HAL3 Camera2 API のサポートは次の場合に強く推奨されます。 認定デバイス Android 9 以降を実行していること。 そうは言っても、これまでの多くのデバイスには、そのままでは Camera2 API のサポートがありませんでした。 API を有効にするには、root で build.prop を変更するか、ベンダー固有の Fastboot コマンドを実行するためにロックを解除したブートローダーのみを必要とするものもあります。 しかし、最近では状況が変わり始めています。
デバイス上の Camera2 API サポートのステータスを確認するには、次のいずれかの方法を選択します。
方法 1: ADB を使用する
この方法を開始する前に、次の環境で PC/Mac にアクセスできることを確認してください。 ADBとFastbootがインストールされている.
- 携帯電話の開発者向けオプションから USB デバッグをオンにします。
- 必要な場合があります 開発者向けオプションを有効にする 初め。
- デバイスを PC/Mac に接続します。
- コマンド プロンプトまたは PowerShell (Windows)、またはターミナル ウィンドウ (macOS または Linux) を開きます。
- ADB バイナリの場所がグローバル PATH 設定で定義されていない場合は、シェルの作業ディレクトリを ADB バイナリが配置されている場所に変更する必要があります。
- 次のコマンドを入力します。
adb shell "getprop | grep HAL3"
- 結果が次のいずれかである場合:
[persist.camera.HAL3.enabled]: [1]
の場合、デバイスには Camera2 API を完全にサポートする Camera HAL3 が搭載されています。[persist.vendor.camera.HAL3.enabled]: [1]
方法 2: ターミナル エミュレータを使用する
PC/Mac を使用したくない場合は、任意のターミナル エミュレータ アプリを使用して、携帯電話から Camera2 API のステータスを直接確認できます。
- 選択したターミナル エミュレーター アプリをダウンロードします。 以下に人気のあるものをいくつかリストしました。
- アプリを開いて次のコマンドを入力します。
getprop | grep HAL3
- 結果が次のいずれかである場合:
[persist.camera.HAL3.enabled]: [1]
の場合、デバイスには Camera2 API を完全にサポートする Camera HAL3 が搭載されています。[persist.vendor.camera.HAL3.enabled]: [1]
[appbox googleplay "jackpal.androidterm"]
[appbox fdroid "com.termux"]
HAL3 のサポートがあるからといって、Camera2 API のすべての機能が利用できるわけではないことに注意してください。 同社は、RAW キャプチャのサポート、ISO レベル、露出時間などの機能を変更する可能性があります。 もっと。 より詳細な情報が提供される 3 番目の方法を選択することをお勧めするのはこのためです。
方法 3: 専用のサードパーティ アプリを使用する
コマンドラインインターフェースをいじりたくないですか? 次に、Google Play ストアから対象の Android デバイスに Camera2 API Probe アプリをダウンロードするだけです。
[アプリボックス googleplay "com.airbeat.device.inspector"]
インストールすると、デバイスに搭載されているカメラ レンズの数に応じて、アプリに 2 つ以上のセクションが表示されます (例: 「カメラ ID: 0」は背面カメラ モジュールを表します)。 各カメラ ID の下に、さまざまな機能のサブカテゴリとそのサポートの詳細が表示されます。 特に、デバイスの Camera2 API サポート レベルを示す「ハードウェア サポート レベル」というカテゴリに興味があります。
ご覧のとおり、アプリはデバイスの正確な Camera2 API レベルを見つけるだけでなく、カメラ モジュールでサポートされている他の機能もリストします。 この情報は、これらの機能を利用できる特定の Google カメラ ポートなどのサードパーティのカメラ アプリをインストールするときに役立つ場合があります。
さらに深く掘り下げて、サポートされている Camera2 (および CameraX) 拡張機能に関する詳細情報を確認したい場合は、次のコマンドを入力してください。 CameraX 情報 XDA 認定開発者 Zacharee による 1 つずつ。 このアプリには、デバイス メーカーがサードパーティ アプリに公開している機能のみがリストされていることに注意してください。 ネイティブ カメラ アプリに組み込まれている機能を列挙するために使用しないでください。
価格:無料。
このガイドを使用して、デバイスで Camera2 API が有効になっているかどうかをすぐに確認できることを願っています。 ご希望の方法をコメント欄でお知らせください。