パフォーマンスを測定するための新しいメトリック
長い間、Androidは開発者に互換性ライブラリ「サポートライブラリ」を提供してきました。 Androidバージョン9以降、このライブラリは非推奨になり、「AndroidX」と呼ばれる新しいバージョンに置き換えられました。短くするために、この互換性レイヤーは、開発者に、それをサポートしていない可能性のある古いAndroidデバイスで新しいAPIを適切に処理する比較的簡単な方法を提供します。
AndroidPerformanceクラスはAndroidXとは異なります。これらの非推奨のフォールバックを直接提供するのではなく、その目標は、開発者として、現在のデバイスのハードウェアが何を実行できるかについての洞察を提供することです。これは、別の大きな違いのヒントにもなります。Androidパフォーマンスクラスは、AndroidXのように、ビルド時ではなく実行時に利用できます。
具体的には、Androidは執筆時点で、メディア、カメラ、ジェネリックの3つのパフォーマンスクラスを提供しています。これらのクラスは、このバージョンで導入されたため、Android12以降で完全に利用できるようになります。 Android 11の場合、これらのクラスのサブセットが利用可能になります。
// Example taken directly from
// Android's explanation, just
// to give a quick overview.
if (Build.VERSION.MEDIA_PERFORMANCE_CLASS >= Build.VERSION_CODES.S) {
// Provide the most premium experience for highest performing devices
...
}
else if (Build.VERSION.MEDIA_PERFORMANCE_CLASS == Build.VERSION_CODES.R)
// Provide a high quality experience
...
}
else {
// Remove extras to keep experience functional
...
}
デバイスをグループ化する新しい方法
パフォーマンスクラスを使用すると、新しい方法でコンシューマーをグループ化できます。 Androidバージョンに依存するだけでなく、さらに悪いことに、特定のデバイスベンダーIDをチェックしてカスタムルールセットと照合する代わりに、これらの新しいパフォーマンスクラスを使用して、機能ごとにコンシューマーを直接(確実に)グループ化できます。
各バージョンで正確にサポートされているものは、「Android互換性定義ドキュメント」で確認できます。同じくAndroidチームによって開発された「互換性テストスイート」と呼ばれる新しいツールは、デバイスに対して提案された互換性を検証します。ただし、心配しないでください。これらのことは、ハードウェアメーカーとそのエンジニアにのみ関係します。アプリ開発者としてあなたにとって重要なことは、アプリケーションコードで新しいAPIを使用することです。
上位互換性のある戦略
最後に、この新しいパフォーマンスクラスが将来のAndroidバージョンでどのように使用されるかに注意することが重要です。たとえば、Android 12を搭載したデバイスは、メディアパフォーマンスクラスバージョン12もサポートしています。Android13がリリースされても、このデバイスはAndroid 13にアップグレードできますが、パフォーマンスクラスバージョン12は維持されます。 、しかしそれでも私はこの振る舞いを強調したかった。パフォーマンスクラスのバージョンは、メーカーが最新のAndroidバージョンに更新するのを妨げるものではありません。