Google の CameraX ベンダー拡張 API を使用すると、サードパーティのカメラ アプリが標準のカメラ アプリの優れた機能の一部を使用できるようになります。
インターネット上で長年続いているジョークがあります。「誰かが Android スマートフォンを使用しているかどうかは、 セルフィーの品質が悪い. ミームは確かにかなり誇張されていますが、残念ながら、その裏には少しの真実があります。 少なくとも理論上では、Android スマートフォンは通常、カメラ性能の点で iPhone よりも優れています。 LG や Samsung などの OEM は、競合する iPhone よりも多くのピクセルと大きな口径を備えたカメラを使用する傾向があります。 ただし、スペックがすべてではありません。 Apple がカメラ ゲームで競争できる理由の 1 つは、iOS のソフトウェアのおかげです。 Apple から ZTE まで、すべての OEM は写真やビデオの見栄えを良くするために何らかのソフトウェア マジックを使用しています。 両社は、最終結果をより満足のいくものにするために、アルゴリズムを使用してノイズを削減し、色の彩度やコントラストを微調整し、さらには暗いシーンを明るくします。 これは歴史的に、Android OEM が Apple に及ばなかった点です。
ソフトウェア開発
しかし、最近では状況が変わり始めています。 この変化の最大の例はおそらく Google と Pixel のラインナップでしょう。 ハードウェアの点では、Pixel カメラは他の主力カメラと比較することはできません。 ただし、Google が違いを生むのはソフトウェアです。 ポートレート モード、夜景モード、HDR+、超解像度ズームなどの機能を備えた Pixel は、次のような機能を備えているという評判を得ています。 市場で最高のスマートフォンカメラ.
他の Android OEM も Google の後に続いています。 Samsung、OPPO、Xiaomi、Vivo、OnePlus などは、Pixel の人気の高いカメラ機能の独自バージョンを導入しており、独自のユニークな機能もいくつか持っています。 Android OEM は、「AI」や「機械学習」などの流行語を使って、自社のソフトウェアが写真やビデオを強化するソフトウェアであると説得しようとしています。 Android スマートフォンは、カメラ性能のあらゆる面で iPhone と真の意味で競争できる段階に達しました。
問題
残念ながら、サードパーティのアプリという大きな例外がまだ 1 つあります。 50 台のカメラを搭載した超高級フラッグシップ機は、内蔵カメラ アプリで素晴らしい写真を撮るかもしれませんが、Instagram に切り替えると、 Snapchat やサードパーティのカメラ アプリでも、基本的には、キャプチャしたものが同じように見えないことが保証されます。 良い。 それだけでは十分ではないかのように、すべての優れたカメラ機能やモードも利用できなくなります。 これは、iOS とは異なり、Android には統一されたカメラ フレームワークが実際には存在しないためです。 確かに、基本的な機能は備わっています。 サードパーティ製アプリでも写真やビデオを撮影したり、フラッシュを使用したりできます。 しかし、携帯電話に広角または望遠用のセカンダリセンサーが搭載されている場合はどうなるでしょうか? 開発者が 2 番目のセンサーにアクセスできる可能性はありますが、開発者が使用する方法はデバイスに固有のものである必要があります。
あなたが LG V40 を持っているとします (知っています、知っています、想像してみてください)。 V40 には、標準、望遠、超広角の 3 つのセンサーが搭載されています。 内蔵カメラ アプリは、これらすべての異なるセンサーを問題なく切り替えます。 ただし、Instagram でウルトラワイドセンサーを使用することは忘れてください。 今後、InstagramはLGのカメラアプリがさまざまなセンサーをどのように使用するかを検討し、ユーザーが広角またはズームショットを撮影する方法を開発する可能性がある。 ただし、それはおそらく LG V40 でのみ機能します。 Galaxy S10 には同じ 3 つのセンサー モード (標準、望遠、ウルトラワイド) がありますが、Instagram チームはサムスン向けに別の方法を開発する必要があります。
ここで、Huawei、Vivo、OnePlus、Xiaomi、OPPO、Nokia、ZTE、HTC、その他考えられるすべてのブランドをミックスに加えてみましょう。 ご想像のとおり、各ブランドの各携帯電話に追加される可能性のあるセンサーだけにアクセスする方法を開発しようとすると、非常に面倒になります。 そして、現在および新しいすべての携帯電話との互換性を維持する必要があります。
これらの制限はカメラの機能にも適用されます。 ポートレート モード、夜景モード、HDR+ などは、デバイスごとに特定の方法を使用する必要があるか、サードパーティ アプリからは完全にアクセスできません。
Instagram のようなアプリにとって、これはそれほど大きな問題ではないことは明らかです。 それは彼らの焦点ではないので、いつでも携帯電話のカメラアプリを使用して最初にショットを撮ることができます。 では、専用のカメラアプリはどうでしょうか?
効果
Google Play ストアを開き、「カメラ」を検索します。 何百もの結果が見つかります。 ファーストパーティのカメラ ソフトウェアが改良されたにもかかわらず、サードパーティのカメラ アプリは依然として非常に人気があります。 手動露出やフォーカスなどのより技術的な機能 (携帯電話のカメラ アプリにはない機能) を提供することを目的としたものもあります。 デバイス全体で一貫した UX を提供することを目的とするものもあります。
特に後者の理由により、Android のカメラの断片化により、広く互換性のあるカメラ アプリの開発と維持が非常に困難になる可能性があります。 追加機能を提供したい場合、すべての潜在的なファーストパーティ アプリの潜在的な機能をすべて含めるにはどうすればよいでしょうか? 一貫したエクスペリエンスを求めている場合、広角センサーを備えたすべてのデバイスで広角センサーへのアクセスが機能することを現実的に保証するにはどうすればよいでしょうか?
答えは「できません」です。 できるだけ多くのデバイスでできるだけ多くの機能をサポートしようとすることはできますが、最終的には、比較的少ない報酬に対して多大な労力がかかることになります。 少なくとも数人の開発者が、Android 用のフル機能のカメラ アプリの作成を単純に諦めてしまったことは想像に難くありません。 実際、何人かはそうしています。
死傷者
Play ストアでカメラ アプリを検索してください。 いくつかのことに気づくでしょう。 1 つは、 多く オプションの。 2 つ目は、ほとんどの場合、かなり似たようなことを行います (事後フィルターの適用など)。 3 つ目は、より高度なオプションはおそらくそれほど頻繁に更新されないことです。 ストアにはもう掲載されていない検索結果が Google で見つかる場合もあります。
最近、誰かがやめたというかなり大きな例が出てきました。 MomentはAndroid向けのPro Cameraアプリの開発を中止することを決定した。
Moment の Pro Camera アプリは、高度な写真とビデオの機能を Android にもたらすことを目的としていました。 これらはそれらの機能のほんの一部です:
- RGBヒストグラム
- スプリットフォーカス
- 露出、ISO、シャッタースピード、ホワイトバランスを手動で制御
- フォーカスピーキング
- RAWキャプチャ
- 動的なフレームレートと解像度の変更
問題は、これらの機能の多くが多くのデバイスでは動作しないことです。 Moment の機能互換性リストを見るのは、ダンス フロアの写真を見るようなものです。 同じ製品ライン内であっても、機能サポートは信じられないほど細分化されています。 2 年間の開発期間を経て、Moment にはアプリの開発を継続する能力がなくなりました。
緑色 = Moment Pro カメラでサポートされています。 黄色 = デバイスではサポートされていますが、Moment Pro カメラではサポートされていません。 赤 = デバイスでサポートされていません。 画像出典:モーメント。 取得方法: 9to5Google.
ソリューション?
Android が最初にリリースされてから 12 年近くが経過しましたが、ついにカメラの断片化に対する解決策が見つかるかもしれません。
このソリューションは Google から直接提供されていますが、Android に直接組み込まれているわけではありません。 代わりに、それは Jetpack サポート ライブラリ. Android アプリの開発に慣れている場合は、おそらく AppCompat および AndroidX サポート ライブラリ スイートに遭遇したことがあるでしょう。 Google のこれらのライブラリは、開発者が新しい機能やスタイルを導入しながら、古い Android バージョンとの下位互換性を維持しやすくすることを目的としています。
Jetpack (のようなもの) に新しく追加されたのは、CameraX ライブラリです。 他の Jetpack ライブラリと同様に、CameraX の目標はカメラ開発を容易にすることです。 最も基本的な形式では、CameraX は Android をラップします。 カメラ2、OEM がカメラ機能を API に公開している場合に限り、アプリがデバイス上のカメラ機能を調査できるようにする API。 ユーザーは、Camera2 API Probe アプリケーションを使用してどのカメラ機能が Camera2 API に公開されているかを確認し、それを標準のカメラ アプリケーションで利用できる機能と比較できます。
価格:無料。
4.2.
CameraX を Camera2 API のラッパーとして使用する利点は、発生する可能性のあるデバイス固有の互換性の問題が内部的に解決されることです。 これだけでも定型コードを削減し、カメラの問題の調査に費やす時間を削減できるため、カメラ アプリ開発者にとって役立ちます。 ただし、CameraX ができることはそれだけではありません。
最初の部分は主に開発者のみにとって興味深いものですが、開発者とエンド ユーザーの両方に適用される別の部分があります。 ベンダー拡張機能. これは、Android のカメラ機能の断片化に対する Google の回答です。 デバイス メーカーは、CameraX (および開発者とユーザー) がネイティブ カメラ機能を利用できるようにする拡張ライブラリを自社の携帯電話に同梱することを選択できます。 たとえば、Samsung のポートレート モード効果はとても気に入っているが、カメラ アプリ自体は気に入らないとします。 Samsung が自社の携帯電話に CameraX ポートレート モード拡張機能を実装することを決定した場合、CameraX を使用するサードパーティ アプリはすべて Samsung のポートレート モードを使用できるようになります。 明らかに、これはその 1 つの機能だけに限定されるものではありません。 メーカーは理論的には、CameraX を使用して自社のカメラ機能をアプリに公開できます。
残念ながら、先ほども述べたように、これはメーカーの要件ではないという注意点があります。 グーグルは言う Pixel 4 以降、すべての新規および今後の Pixel デバイスで拡張機能がサポートされます。 OPPO 言う 彼らはビューティーモードとHDRモードをオープンしました。 他の OEM は、CameraX でナイト モードのみを利用できるようにすることも、拡張機能をまったく実装しないことも選択できます。 どのデバイスがどの CameraX 拡張機能 (存在する場合) をサポートするかは、完全にメーカー次第です。 グーグル デバイスのリストを維持するために使用されます ベンダー拡張機能をサポートし、どのようなカメラ機能が公開されているかをサポートしていますが、過去数か月間リストを更新していません。 私たちは数週間前に Google に最新のリストを提供してもらえるかどうか問い合わせましたが、同社はまだリストの返答をしていません。 それだけの価値があるのに、 最近の Google ブログ投稿 Samsung、LG、OPPO、Xiaomi、Motorola のデバイス (Android 10 上) は何らかの拡張機能を提供すると述べています 機能はありますが、ブログ投稿では、どのデバイスがサポートされているか、どのような機能がサポートされているかが正確に指定されていません。 提供する。
十分な数のメーカーが拡張機能の実装を決定すれば、Android のサードパーティ製カメラシーンはさらに明るくなるでしょう。 CameraX のフレームワークがカメラ機能を処理してくれるため、開発者は可能な限りすべてのデバイスにカメラ機能を再実装するのに時間を無駄にする必要はありません。 デバイス間で同様の機能に共通のインターフェイスからアクセスできるため、機能の断片化が少なくなります。 さらに多くの可能性があります。
もちろん、これはすべて、今後 CameraX Vendor Extension ライブラリを実装するようメーカーを説得できる Google の能力にかかっています。 CameraX が広く実装されない限り、現在の断片化がさらに進むだけです。 でも個人的には期待してます。 Google は、そうしたいときに非常に説得力を持たせることができ、CameraX には多大な労力が費やされているようです。 Android のカメラの問題に対する解決策が目前に迫っているのを見るのは非常に興味深いことであり、CameraX が時間の経過とともにどのように改善され、拡張されるかが楽しみです。
CameraX についてどう思われますか? Google は Android 向けに統一されたカメラ エクスペリエンスを実現することに成功するでしょうか?