非推奨のサービスと機能

リリースのたびに、特定の Android API が古くなったり、デベロッパー エクスペリエンスの向上や新しいプラットフォーム機能のサポートを目的としたリファクタリングが必要になったりすることがあります。このような場合、Android は古くなった API のサポートを正式に終了し、代わりに新しい API を使用するようデベロッパーに案内します。

サポートの終了とは、API の正式なサポートが終了したことを指しますが、デベロッパーは引き続きそうした API を利用できます。このページでは、Android の今回のリリースでサポートが終了した API をいくつか紹介します。その他のサポートの終了については、API の差分レポートをご覧ください。

RenderScript

Android 12 以降、RenderScript API のサポートは終了しています。この API は引き続き機能しますが、デバイスとコンポーネント メーカーによるハードウェア アクセラレーションのサポートはいずれ終了することが予測されます。GPU アクセラレーションを最大限に活用できるよう、RenderScript からの移行をおすすめします。

Android プレイリスト

Android プレイリストのサポートが終了しました。この API はサポートされなくなりましたが、現在の機能は互換性を維持するために引き続き提供されます。

プレイリストは m3u ファイルとして読み込みおよび保存を行うことをおすすめします。

Display API のサポート終了

Android デバイスは、大画面、タブレット、折りたたみ式など、さまざまなフォーム ファクタで利用されています。各デバイスでコンテンツを適切にレンダリングするには、アプリで画面またはディスプレイのサイズを判断する必要があります。Android では、この情報を取得するためのさまざまな API が提供されてきました。Android 11 では WindowMetrics API が導入され、以下のメソッドが非推奨となりました。

Android 12 では引き続き WindowMetrics の使用を推奨し、以下のメソッドが非推奨となっています。

アプリは、WindowMetrics API を使用してウィンドウの境界をクエリするか、Configuration.densityDpi を使用して現在の密度をクエリする必要があります。

Jetpack WindowManager ライブラリには、Android 4.0.1(API レベル 14)以降をサポートする WindowMetrics クラスが含まれています。

WindowMetrics の使用例をいくつか示します。

まず、アプリのアクティビティが完全にサイズ変更可能であることを確認します。

アクティビティは、UI 関連の処理(特に WindowManager.getCurrentWindowMetrics())では、アクティビティ コンテキストの WindowMetrics に依存する必要があります。

アプリで MediaProjection を作成する場合は、プロジェクションがディスプレイをキャプチャするため、境界を正しいサイズにする必要があります。アプリが完全にサイズ変更可能な場合、アクティビティ コンテキストは正しい境界を返します。

Kotlin

val projectionMetrics = activityContext
        .getSystemService(WindowManager::class.java).maximumWindowMetrics

Java

WindowMetrics projectionMetrics = activityContext
        .getSystemService(WindowManager.class).getMaximumWindowMetrics();

アプリが完全にサイズ変更可能ではない場合は、WindowContext インスタンスから境界をクエリし、WindowManager.getMaximumWindowMetrics() を使用してアプリで利用可能な最大表示領域の WindowMetrics を取得する必要があります。

Kotlin

val windowContext = context.createWindowContext(mContext.display!!,
      WindowManager.LayoutParams.TYPE_APPLICATION, null)
val projectionMetrics = windowContext.getSystemService(WindowManager::class.java)
      .maximumWindowMetrics

Java

Context windowContext = mContext.createWindowContext(mContext.getDisplay(),
      WindowManager.LayoutParams.TYPE_APPLICATION, null;
WindowMetrics projectionMetrics = windowContext.getWindowManager()
      .getMaximumWindowMetrics();