互換性フレームワークの変更(Android 15)

図 1. 開発者向けオプションの [アプリの互換性の変更] 画面に、切り替え可能な変更のリストが表示されています。

このページでは、Android 15(API レベル 35)の互換性フレームワークに含まれている切り替え可能な変更について説明します。Android 15 をサポートし、ターゲットとするアプリのテストとデバッグを行う際は、このリストを開発者向けオプションおよび ADB コマンドと組み合わせて使用してください。

以下に、互換性フレームワーク ツールでできることをいくつか示します。

  • アプリの targetSdkVersion を実際には変更せずに、ターゲット固有の変更をテストする。切り替えを使用して、特定のターゲット固有の動作変更を強制的に有効にし、既存のアプリに対する影響を評価できます。
  • 特定の変更にテストを集中させる。切り替えを使用することで、テスト対象以外のターゲット固有の変更をすべて無効にできます。これにより、一度にすべてのターゲット固有の変更に対処する必要がなくなります。
  • adb を介して切り替えを管理する。adb コマンドを使用すると、切り替え可能な変更を自動テスト環境で有効または無効にできます。
  • 標準の変更 ID を使用して迅速にデバッグする。切り替え可能な変更にはそれぞれ一意の ID と名前が付けられており、ログ出力から問題の根本原因を速やかにデバッグできます。

各ユースケースでのツールの使用方法について詳しくは、互換性フレームワーク ツールをご覧ください。

互換性フレームワークに含まれる動作変更

このセクションでは、Android 15 関連の変更の互換性フレームワークに含まれる切り替え可能な変更と、一般的なアプリテストに役立つ切り替え可能な変更について説明します。

変更リストはデフォルトの状態でフィルタできます。

Android 15 の互換性フレームワークの切り替え可能な変更

CAMERA_MIC_INDICATORS_NOT_PRESENT

変更 ID: 162547999
デフォルトの状態: すべてのアプリで無効。

このデバイスがカメラとマイクのインジケーターをサポートすることを示します。変更 ID が存在しない場合、CompatChanges#isChangeEnabled メソッドは true を返すため、存在する場合は false になります。

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

変更 ID: 320741775
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、isSessionConfigurationSupported はセッション パラメータの互換性もチェックします(HAL でサポートされている場合)。

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

変更 ID: 296478951
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、PendingIntent の作成者はデフォルトでバックグラウンド アクティビティの起動をブロックします。

この変更について詳しくは、Android 15 の動作変更ページで、 安全なバックグラウンド アクティビティの起動に関するセクションをご覧ください。

DEPRECATE_UI_FONT

変更 ID: 279646685
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、Android 15 以降を搭載したデバイスでアプリが実行されている場合、elegantTextHeight TextView 属性はデフォルトで true になります。これにより、デフォルトで使用されるコンパクトなフォントが、読みやすく大きな縦方向の測定値を持つスクリプトに置き換えられます。

この変更について詳しくは、Android 15 の動作変更ページで、 elegantTextHeight 属性のデフォルトが true に変更に関するセクションをご覧ください。

DOWNSCALED

変更 ID: 168419799
デフォルトの状態: すべてのアプリで無効。

この変更により、アプリごとのバッファのダウンスケーリング変更が管理されます。この変更を有効にすると、以下のスケーリング ファクタを適用できます。

アプリのパッケージでこの変更が有効になっている場合、アプリは、有効になっている最大のスケーリング ファクタに強制的に変更されます。たとえば、80% と 70%(DOWNSCALE_80DOWNSCALE_70)の両方が有効になっている場合は、80% が使用されます。この変更と DOWNSCALED_INVERSE の両方が有効になっている場合、DOWNSCALED_INVERSE が優先され、スケーリング ファクタが逆に適用されます。

DOWNSCALED_INVERSE

変更 ID: 273564678
デフォルトの状態: すべてのアプリで無効。

この変更により、アプリごとのバッファの逆ダウンスケーリング変更が管理されます。この変更を有効にすると、以下のスケーリング ファクタを逆に適用できます(つまり、解像度がアップスケールされます)。

アプリのパッケージでこの変更が有効になっている場合、アプリは、有効になっている最小のスケーリング ファクタに強制的に変更されます。たとえば、80% と 70%(DOWNSCALE_80DOWNSCALE_70)の両方が有効になっている場合は 80% が使用されます。これは、80% のスケーリング係数を逆に適用すると 125% になるためです。これは、70% のスケーリング係数を逆に適用した場合の 142.86% よりも小さい値です。この変更と DOWNSCALED の両方が有効になっている場合、DOWNSCALED_INVERSE が優先され、スケーリング ファクタが逆に適用されます。

DOWNSCALE_30

変更 ID: 189970040
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 30% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリは実際のディスプレイの垂直解像度と水平解像度が 333.33% のディスプレイで実行されていると認識されます。

DOWNSCALE_35

変更 ID: 189969749
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリは実際のディスプレイの垂直解像度と水平解像度が 35% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 285.71% のディスプレイで実行されていると認識されます。

DOWNSCALE_40

変更 ID: 189970038
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 40% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージでこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 250% のディスプレイで実行されていると認識されます。

DOWNSCALE_45

変更 ID: 189969782
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 45% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージでこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 222.22% のディスプレイで実行されていると認識されます。

DOWNSCALE_50

変更 ID: 176926741
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージでこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 50% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージでこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 200% のディスプレイで実行されていると認識されます。

DOWNSCALE_55

変更 ID: 189970036
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 55% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージでこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 181.82% のディスプレイで実行されていると認識されます。

DOWNSCALE_60

変更 ID: 176926771
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージでこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 60% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリは実際のディスプレイの垂直解像度と水平解像度が 166.67% のディスプレイで実行されていると認識されます。

DOWNSCALE_65

変更 ID: 189969744
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリは実際のディスプレイの垂直解像度と水平解像度が 65% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリは実際のディスプレイの垂直解像度と水平解像度が 153.85% のディスプレイで実行されていると認識されます。

DOWNSCALE_70

変更 ID: 176926829
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージでこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 70% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 142.86% のディスプレイで実行されていると認識されます。

DOWNSCALE_75

変更 ID: 189969779
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリは実際のディスプレイの垂直解像度と水平解像度が 75% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 133.33% のディスプレイで実行されていると認識されます。

DOWNSCALE_80

変更 ID: 176926753
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージでこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 80% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 125% のディスプレイで実行されていると認識されます。

DOWNSCALE_85

変更 ID: 189969734
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリは実際のディスプレイの垂直解像度と水平解像度が 85% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリは実際のディスプレイの垂直解像度と水平解像度が 117.65% のディスプレイで実行されていると認識されます。

DOWNSCALE_90

変更 ID: 182811243
デフォルトの状態: すべてのアプリで無効。

DOWNSCALED も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリは実際のディスプレイの垂直解像度と水平解像度が 90% のディスプレイで実行されていると認識されます。DOWNSCALED_INVERSE も有効になっている場合、パッケージに対してこの変更を有効にすると、アプリでは実際のディスプレイの垂直解像度と水平解像度が 111.11% のディスプレイで実行されていると認識されます。

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

変更 ID: 202956589
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、Arrays.asList(...).toArray() の使用時に、結果の配列のコンポーネントの型は、基になる配列の要素の型ではなく、Object になります。したがって、次のコードは ClassCastException をスローします。

String[] elements = (String[]) Arrays.asList("one", "two").toArray();

この場合、結果の配列のコンポーネント タイプとして String を保持するには、代わりに Collection.toArray(Object[]) を使用します。

String[] elements = Arrays.asList("two", "one").toArray(new String[0]);

この変更について詳しくは、Android 15 の動作変更ページで、 OpenJDK API の変更に関するセクションをご覧ください。

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

変更 ID: 324203798
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、既存のアプリで ClientTransaction#getActivityToken() の非 SDK 使用によるアプリの互換性の問題が発生しないように、バンドル LaunchActivityItem のみを許可します。

ENABLE_MATCH_LOCAL_NETWORK

変更 ID: 319212206
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、アプリはデフォルトでローカル ネットワークからネットワーク コールバックを受け取ります。Android 14(API レベル 34)以前をターゲットとするアプリは、ローカル ネットワークから ConnectivityManager.NetworkCallback を受信するために、引き続き NetworkRequestNetworkCapabilitiesNetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK を追加する必要があります。

ENABLE_STRICT_FORMATTER_VALIDATION

変更 ID: 270674727
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、String.format() API と Formatter.format() API を使用する際の引数の索引、フラグ、幅、精度の検証が厳格になりました。

この変更について詳しくは、Android 15 の動作変更ページで、 OpenJDK API の変更に関するセクションをご覧ください。

ENFORCE_EDGE_TO_EDGE

変更 ID: 309578419
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、Android 15 以降を搭載したデバイスでは、アプリはデフォルトで端から端まで表示されます。

この変更について詳しくは、Android 15 の動作変更ページで、 エッジツーエッジの適用に関するセクションをご覧ください。

ENFORCE_STRICT_QUERY_BUILDER

変更 ID: 143231523
デフォルトの状態: すべてのアプリで無効。

有効にすると、SQLiteQueryBuilder はすべての CalendarProvider2 クエリの選択に対し、悪意のある引数がないか検証します。

FGS_BOOT_COMPLETED_RESTRICTIONS

変更 ID: 296558535
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、次のタイプを除くすべてのタイプのフォアグラウンド サービスのバックグラウンド起動を BOOT_COMPLETED ブロードキャストから無効にします。

この変更について詳しくは、Android 15 の動作変更ページで、 BOOT_COMPLETED ブロードキャスト レシーバによるフォアグラウンド サービスの起動の制限に関するセクションをご覧ください。

FGS_INTRODUCE_TIME_LIMITS

変更 ID: 317799821
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、特定のタイプのフォアグラウンド サービスには時間制限が適用されます。問題のタイプのフォアグラウンド サービスが割り当てられた制限時間内に停止されなかった場合、Service.onTimeout(int, int) を使用してコールバックが受信され、数秒以内に停止する必要があります。アプリがこれを行わないと、ANR と宣言されます。

この変更について詳しくは、Android 15 の動作変更ページで、 データ同期 メディア処理のフォアグラウンド サービスのタイプに関するタイムアウト動作のセクションをご覧ください。

FGS_SAW_RESTRICTIONS

変更 ID: 319471980
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、システム オーバーレイ ウィンドウがすでに存在しない限り、すべてのタイプのシステム アラート ウィンドウでフォアグラウンド サービスのバックグラウンドの開始が無効になります。

この変更について詳しくは、Android 15 の動作変更ページで、 アプリが SYSTEM_ALERT_WINDOW 権限を保持している間にフォアグラウンド サービスを開始する場合の制限に関するセクションをご覧ください。

FORCE_DISABLE_HEVC_SUPPORT

変更 ID: 174227820
デフォルトの状態: すべてのアプリで無効。

アプリの HEVC メディア機能のサポートを強制的に無効にします。アプリは、サポートされているメディア機能をマニフェストで宣言する必要がありますが、このフラグを使用すると、アプリに HEVC のサポートを強制できます。これにより、HEVC でエンコードされたメディアにアクセスするときにコード変換を強制できます。このフラグを設定すると、アプリの OS レベルのデフォルトがオーバーライドされます。このフラグはデフォルトでは無効です。つまり、OS のデフォルトが優先されます。このフラグと FORCE_ENABLE_HEVC_SUPPORT の両方が有効になっている場合、OS は両方のフラグを無視します。

FORCE_ENABLE_HEVC_SUPPORT

変更 ID: 174228127
デフォルトの状態: すべてのアプリで無効。

アプリが HEVC メディア機能をサポートできるようにする(強制的に有効にする)アプリは、サポートされているメディア機能をマニフェストで宣言する必要があります。ただし、このフラグを使用すると、アプリに HEVC のサポートを強制できます。これにより、HEVC でエンコードされたメディアにアクセスする際のコード変換を回避できます。このフラグを設定すると、アプリの OS レベルのデフォルトがオーバーライドされます。デフォルトでは無効になっています。つまり、OS のデフォルトが優先されます。このフラグと FORCE_DISABLE_HEVC_SUPPORT の両方が有効になっている場合、OS は両方のフラグを無視します。

FORCE_NON_RESIZE_APP

変更 ID: 181146395
デフォルトの状態: すべてのアプリで無効。

適用されるパッケージを強制的にサイズ変更不可にします。

FORCE_RESIZE_APP

変更 ID: 174042936
デフォルトの状態: すべてのアプリで無効。

適用されるパッケージを強制的にサイズ変更可能にします。これにより全画面表示ウィンドウ モードでのサイズ変更が可能になりますが、アプリを強制的にサイズ変更可能なマルチウィンドウ モードにするものではありません。

GWP_ASAN

変更 ID: 145634846
デフォルトの状態: すべてのアプリで無効。

サンプリングされるネイティブ メモリのバグ検出をアプリで有効にします。

GWP-ASan の使用方法について詳しくは、GWP-ASan ガイドをご覧ください。

IS_DEVICE_OWNER_USER_AWARE

変更 ID: 307233716
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、isDeviceOwnerApp(String) メソッドはコンテキスト内に含まれるユーザーを使用します。Android 14(API レベル 34)以前をターゲットとするアプリの場合は、呼び出し元のプロセスのユーザーが使用されます(Process.myUserHandle())。

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

変更 ID: 308670109
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、アプリはデバイスのサイレント(DND)モードのグローバルな状態やポリシーを変更できなくなります(ユーザー設定の変更や DND モードのオフによる変更も含みます)。代わりに、アプリは AutomaticZenRule を提供する必要があります。AutomaticZenRule は、既存の最も制限の厳しいポリシー勝ちのスキームを備えたグローバル ポリシーに統合されます。

この変更について詳しくは、Android 15 の動作変更ページの アプリがサイレント モードのグローバル状態を変更できるタイミングの変更に関するセクションをご覧ください。

NATIVE_HEAP_ZERO_INIT

変更 ID: 178038272
デフォルトの状態: すべてのアプリで無効。

ネイティブ ヒープのメモリ割り当ての自動ゼロ初期化を有効にします。

NATIVE_MEMTAG_ASYNC

変更 ID: 145772972
デフォルトの状態: すべてのアプリで無効。

このプロセスで非同期(ASYNC)メモリタグのチェックを有効にします。このフラグは、ARM メモリタグ付け拡張機能(MTE)をサポートするハードウェアにのみ影響します。

NATIVE_MEMTAG_SYNC

変更 ID: 177438394
デフォルトの状態: すべてのアプリで無効。

このプロセスで同期(SYNC)メモリタグのチェックを有効にします。このフラグは、ARM メモリタグ付け拡張機能(MTE)をサポートするハードウェアにのみ影響します。NATIVE_MEMTAG_ASYNC とこのオプションの両方を有効にすると、このオプションが優先され、SYNC モードで MTE が有効になります。

OVERRIDE_ANY_ORIENTATION

変更 ID: 265464455
デフォルトの状態: すべてのアプリで無効。

この変更を有効にすると、アクティビティでリクエストされた向きに関係なく、次の向きのオーバーライドを適用できます。

OVERRIDE_ANY_ORIENTATION_TO_USER

変更 ID: 310816437
デフォルトの状態: すべてのアプリで無効。

有効にすると、SCREEN_ORIENTATION_USER が有効になり、アクティビティによってリクエストされた向きがオーバーライドされます。固定画面のアプリは、このオーバーライドで ignoreOrientationRequest が有効になっている大画面デバイスで全画面表示にオーバーライドできます。

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

変更 ID: 314961188
デフォルトの状態: すべてのアプリで無効。

有効にすると、向きが固定されているアプリのフリーフォーム ウィンドウ モードでのカメラの互換性処理から、オーバーライドが適用されるパッケージが除外されます。

自由形式のウィンドウ モードでは、互換性処理により、アプリ ウィンドウをレターボックス表示し、アプリが一般的に縦向きデバイスで想定されるもの(背面カメラと前面カメラでそれぞれ 90 度と 270 度のセンサー回転、ディスプレイの回転を 0 に設定)に変更することで、縦向きデバイスでの実行をエミュレートします。

このフラグは、処理に適切に応答しないアプリの互換性処理を無効にするために使用します。

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

変更 ID: 191514214
デフォルトの状態: すべてのアプリで無効。

この変更が有効になっている場合、適用されるパッケージで android:resizeableActivity の現在の値と Android 6.0(API レベル 23)以下のターゲット SDK が無視され、アクティビティはサイズ変更不可と見なされます。この場合、カメラの回転と切り抜きの値は、現在のディスプレイの回転を考慮した必要な補正にのみ依存します。

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

変更 ID: 189229956
デフォルトの状態: すべてのアプリで無効。

この変更が有効になっている場合、適用されるパッケージでデフォルトのカメラの回転と切り抜きの動作がオーバーライドされ、常に CaptureRequest.SCALER_ROTATE_AND_CROP_NONE が返されるようになります。

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

変更 ID: 316897322
デフォルトの状態: すべてのアプリで無効。

有効にすると、MediaProjection セッションを開始するときに、1 つのアプリをキャプチャするか、画面全体をキャプチャするかをユーザーに選択させることができます。これにより、MediaProjectionConfig#createConfigForDefaultDisplay の使用がオーバーライドされます。

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

変更 ID: 266124927
デフォルトの状態: すべてのアプリで無効。

適用先のアプリの SCREEN_ORIENTATION_REVERSE_LANDSCAPE を有効にします。OVERRIDE_ANY_ORIENTATION も有効にしていない限り、SCREEN_ORIENTATION_REVERSE_LANDSCAPE はアクティビティで横向きが指定されている場合にのみ使用されます。この変更を有効にすると、横向きが Surface.ROTATION_90 に対応するデバイスと Surface.ROTATION_270 に対応するデバイスの違いについて、アプリの動作をテストできます。

OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE

変更 ID: 332679525
デフォルトの状態: すべてのアプリで無効。

有効にすると、ディスプレイ カットアウト モードの動作でレイアウトがオーバーライドされます。これは、エッジツーエッジが適用されていない場合にのみ適用されます。

OVERRIDE_MIN_ASPECT_RATIO

変更 ID: 174042980
デフォルトの状態: すべてのアプリで無効。

この変更により、所定の最小アスペクト比を強制的に適用するすべての変更が管理されます。この変更を有効にすると、以下の最小アスペクト比を適用できます。

この変更がアプリ パッケージに対して有効になっている場合、アプリのマニフェスト値よりも大きい場合を除き、アプリのマニフェストで指定された最小アスペクト比が、有効な最大アスペクト比にオーバーライドされます。

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

変更 ID: 218959984
デフォルトの状態: すべてのアプリで無効。

有効にすると、利用可能なすべての画面スペースを使用するため、縦向きの全画面表示の最小アスペクト比の制限をオーバーライドします。

OVERRIDE_MIN_ASPECT_RATIO_LARGE

変更 ID: 180326787
デフォルトの状態: すべてのアプリで無効。

OVERRIDE_MIN_ASPECT_RATIO も有効になっている場合、パッケージでこの変更を有効にすると、アクティビティの最小アスペクト比が OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE で定義された高値に設定されます。

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

変更 ID: 180326845
デフォルトの状態: すべてのアプリで無効。

OVERRIDE_MIN_ASPECT_RATIO も有効になっている場合、パッケージでこの変更を有効にすると、アクティビティの最小アスペクト比が OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE で定義された中央値に設定されます。

OVERRIDE_MIN_ASPECT_RATIO_ONLY_FOR_CAMERA

変更 ID: 325586858
デフォルトの状態: すべてのアプリで無効。

有効にすると、所定の最小アスペクト比を強制的に適用する処理を制限し、アプリがカメラに接続している場合にのみ適用されるようにします。

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

変更 ID: 203647190
デフォルトの状態: すべてのアプリで有効。

OVERRIDE_MIN_ASPECT_RATIO も有効になっている場合、この変更により、画面の向きが縦向きのアクティビティに対する、アクティビティの最小アスペクト比を強制的に特定の値(OVERRIDE_MIN_ASPECT_RATIO_LARGEOVERRIDE_MIN_ASPECT_RATIO_MEDIUM など)にする他の変更が制限されます。

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

変更 ID: 236283604
デフォルトの状態: すべてのアプリで無効。

この変更を有効にすると、適用されるパッケージが、デバイス メーカーが設定できる画面の向きの無視の制限から除外されます。

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

変更 ID: 265451093
デフォルトの状態: すべてのアプリで無効。

適用先のアプリの SCREEN_ORIENTATION_NOSENSOR を有効にします。OVERRIDE_ANY_ORIENTATION も有効になっていない場合、SCREEN_ORIENTATION_NOSENSOR はアクティビティで他の固定の向きが指定されていない場合にのみ使用されます。

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

変更 ID: 265452344
デフォルトの状態: すべてのアプリで無効。

適用先のアプリで SCREEN_ORIENTATION_PORTRAIT を有効にします。OVERRIDE_ANY_ORIENTATION も有効化されていない限り、SCREEN_ORIENTATION_PORTRAIT はアクティビティが他の固定の向きを指定していない場合にのみ使用されます。

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

変更 ID: 319400769
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、RFC 6266 に準拠する Content-Disposition ヘッダーの解析が許可されます。特に、異なる文字エンコードを使用できる filename* 値の解析が可能になります。

RATE_LIMIT_TOASTS

変更 ID: 174840628
デフォルトの状態: この変更は切り替えられません。互換性フレームワークによってログに記録されるだけです。

Toast.show() 呼び出し数のレート制限を有効にして、限られた時間内の過剰なトーストでユーザーに過度の負荷をかけないようにします。特定の時間枠で許可された数よりも多いトーストを表示しようとすると、トーストは破棄されます。

STREAM_INT_DIFFERS_FROM_NEXT_INT

変更 ID: 308103782
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、Random.ints() メソッドは Random.nextInt() メソッドとは異なる数値のシーケンスを返すようになりました。これは、https://bugs.openjdk.org/browse/JDK-8301574 の変更によるものです。

この変更について詳しくは、Android 15 の動作変更ページで、 OpenJDK API の変更点に関するセクションをご覧ください。

USE_EXPERIMENTAL_COMPONENT_ALIAS

変更 ID: 196254758
デフォルトの状態: すべてのアプリで無効。

有効にすると、「android」パッケージでコンポーネント エイリアスを使用できるようになります。

USE_NEW_ISO_LOCALE_CODES

変更 ID: 291868760
デフォルトの状態: Android 15(API レベル 35)以上をターゲットとするアプリで有効。

有効にすると、ヘブライ語、イディッシュ語、インドネシア語の言語コードが、廃止された形式(ヘブライ語: iw、イディッシュ語: ji、インドネシア語: in)に変換されなくなります。

この変更について詳しくは、Android 15 の動作変更ページで、 OpenJDK API の変更点に関するセクションをご覧ください。