Android 10 以降はモジュラー システム コンポーネントをサポートすることにより、Android エコシステムに対するメジャー API レベルのリリースに含まれない機能やセキュリティのアップデートが促進され、新機能にリリース済み Android バージョンとの下位互換性を持たせることができます。このような改善によって、開発が柔軟になり、アプリ デベロッパーのリーチも広がります。私たちは、これらの API を組み込むための新しい SDK 拡張機能 フレームワークを構築しています。このSDK 拡張機能の最初の一般公開版(拡張レベル 4)をリリースしました。
API と機能の導入の高速化
メジャー API レベルのリリースに含まれない新機能を導入できれば、イノベーションを加速できます。以前の投稿 (英語)でお知らせしたように、Android 向けプライバシー サンドボックスのベータ版の最初のリリースを Android 13 デバイス向けにロールアウトすることを計画しています。まずは、限定的な本番環境でのテストの準備として、この SDK 拡張機能を使って皆さんのソリューションを AdServices API に組み込むことができます。プライバシー サンドボックスのベータ版リリースに参加する方法や、テストデバイスやエミュレータで開発環境をセットアップする方法は、こちらをご覧ください。
下位互換性
SDK 拡張機能を使うと、一部のプラットフォーム機能のサポートを既存の Android バージョンに拡張し、ユーザーへのリーチを広げることができます。たとえば、写真選択ツールはこれまで API レベル 33(Android T)以降でしか利用できませんでしたが、R 拡張バージョン 2 以降を搭載したデバイスの SDK 拡張機能を通して、現在は API レベル 30(Android R)まで利用できるようになっています。
利用できる API の確認
利用できる拡張機能 API を確認できるように、その API が利用できる API レベルと最小拡張機能バージョンを表す情報を API リファレンスに追加しました。たとえば、ACTION_PICK_IMAGES (英語) の API リファレンスからは、Android R 拡張機能バージョン 2 以降で利用できることがわかります。
拡張機能バージョンは、Android のバージョンを確認するときによく使う Build.VERSION.SDK_INT と同じような方法で、実行時に問い合わせることができます。たとえば写真選択ツール API が利用できるかどうかを確認する必要がある場合なら、新しい API SdkExtensions.getExtensionVersion (英語) を使います。R 拡張機能では、R に対応するバージョン コード(30)を使います。
fun isPhotoPickerAvailable(): Boolean {
return SdkExtensions.getExtensionVersion(VERSION_CODES.R) >= 2
}
別の確認方法である Build.VERSION.SDK_INT を使う場合は、次のようにします。
fun isPhotoPickerAvailable(): Boolean {
return Build.VERSION.SDK_INT >= 33
}
これは安全で正しい確認方法ですが、この関数は API が利用可能になった一部のデバイスで false を返します。SDK_INT によるチェックは最適ではないので、API が利用できるかどうかを確認する場合は、拡張機能バージョンをチェックすることをお勧めします。SDK_INT >= 33 であるすべてのデバイスでも R 拡張機能バージョンは >= 2 となりますが、R 拡張機能バージョンが >= 2 である SDK_INT < 33 のデバイスも存在します。
同じように、AdServices API リファレンスには、Ad Services 拡張機能 4 で追加というような記載がある可能性があります。Ad Services 拡張機能は SdkExtensions.AD_SERVICES 定数を利用します。利用できるかどうかの確認は、次のようにして行います。
fun isAdServicesAvailable(): Boolean {
return SdkExtensions.getExtensionVersion(SdkExtensions.AD_SERVICES) >= 4
}
デベロッパーの利便性向上のため、Jetpack を拡張して拡張機能バージョンを簡単に扱えるようにしています。たとえば、写真選択ツールが利用できるかどうかを確認する Jetpack ライブラリ関数 (英語) を利用できます。これを使うと、細かい条件を考慮したバージョン チェックの手間が省けます。SDK 拡張機能を通してリリースされる API を正しく利用できるように、今後もさらに多くの Jetpack ライブラリ(プライバシー サンドボックスのプライバシー保護 API など)をリリースする予定です。
ツールのサポート
アプリの品質保証に役立ててもらうため、Android Lint の NewApi チェックに拡張機能バージョン ツールのサポートを追加します。Android Studio Flamingo 以降では、SDK 拡張機能を通して起動する API の適切なバージョン チェックを自動生成できます。この新しいバージョン チェックの利用は完全に任意ですが、これを利用することで、新しい API が存在する場合にそれを広く利用できるようになります。
SDK 拡張機能について学ぶ
私たちは SDK 拡張機能をデベロッパーの皆さんに提供するようになったばかりですが、今後はさらに多くの機能を利用できるようにする予定です。SDK Manager で最新の SDK 拡張機能 4 が利用できます。SDK 拡張機能の詳細もご覧ください。また、プライバシー サンドボックスのベータ版や写真選択ツールのドキュメントも確認できます。
Reviewed by Mari Kawanishi - Developer Marketing Manager, Google Play