WindowManager

アプリ デベロッパーは Jetpack WindowManager ライブラリを使用して、新しいデバイスのフォーム ファクタとマルチウィンドウ環境をサポートできます。最初のリリースでは折りたたみ式デバイスをターゲットにしていますが、今後のバージョンではより多くのディスプレイ タイプとウィンドウ機能に対応する予定です。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2025 年 7 月 2 日 1.4.0 - 1.5.0-beta01 -

依存関係の宣言

Window Manager への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    implementation "androidx.window:window:1.4.0"

    // For Java-friendly APIs to register and unregister callbacks
    implementation "androidx.window:window-java:1.4.0"

    // For RxJava2 integration
    implementation "androidx.window:window-rxjava2:1.4.0"

    // For RxJava3 integration
    implementation "androidx.window:window-rxjava3:1.4.0"

    // For testing
    implementation "androidx.window:window-testing:1.4.0"
}

Kotlin

dependencies {
    implementation("androidx.window:window:1.4.0")

    // For Java-friendly APIs to register and unregister callbacks
    implementation("androidx.window:window-java:1.4.0")

    // For RxJava2 integration
    implementation("androidx.window:window-rxjava2:1.4.0")

    // For RxJava3 integration
    implementation("androidx.window:window-rxjava3:1.4.0")

    // For testing
    implementation("androidx.window:window-testing:1.4.0")
}

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.5

バージョン 1.5.0-beta01

2025 年 7 月 2 日

androidx.window:window-*:1.5.0-beta01 がリリースされました。バージョン 1.5.0-beta01 にはこれらの commit が含まれています。

バージョン 1.5.0-alpha02

2025 年 5 月 7 日

androidx.window:window-*:1.5.0-alpha02 がリリースされました。バージョン 1.5.0-alpha02 には、これらの commit が含まれています。

API の変更

  • Large と XLarge の WindowSizeClass ブレークポイントを追加しました。(I40d85
  • WindowMetrics の計算をアプリケーション コンテキストに拡張します。(I8eeebb/360934048
  • WindowLayoutInfo への直接アクセスを可能にするゲッターを提供(Ie9513
  • アプリのプロセスが再起動されたときに、エンベディングの状態を自動保存し、エンベディングの状態を自動復元する API を導入します。(Ie0295
  • 試験運用版の WindowInsets API を削除しました。(I68a71
  • いくつかのコンストラクタを非表示にしました(I87b8d

バグの修正

  • 一部のケースで EmbeddingRule が異なる hashCode を返す問題を修正しました。(I748cc

バージョン 1.5.0-alpha01

2025 年 3 月 12 日

androidx.window:window-*:1.5.0-alpha01 がリリースされました。バージョン 1.5.0-alpha01 にはこれらの commit が含まれています。

新機能

  • 次の 1.5.0 の初回リリース。

バージョン 1.4

バージョン 1.4.0

2025 年 5 月 20 日

androidx.window:window-*:1.4.0 がリリースされました。バージョン 1.4.0 にはこれらのコミットが含まれています。

1.3.0 以降の重要な変更

  • アクティビティの埋め込み
    • 起動アニメーションをカスタマイズする API
    • インタラクティブな分割線
    • ActivityStack 固定
    • 全画面表示ダイアログの暗転
    • 埋め込みアクティビティ ウィンドウ情報コールバック
    • ActivityStack 管理の改善
    • 指定された ActivityStack にアクティビティを起動する
  • WindowMetricsCalculator
    • テスト容易性のサポートを改善
  • WindowMetrics
    • withDpheightDp を計算する便利なメソッド
    • 境界チェックを isAtLeast に更新し、下限を使用して新しい値の追加をサポート
  • WindowSizeClass
    • WindowMetrics から計算する方法を追加
  • WindowInfoTracker
    • デバイスでサポートされているポーズを検出する API を追加

バージョン 1.4.0-rc02

2025 年 4 月 23 日

androidx.window:window-*:1.4.0-rc02 がリリースされました。バージョン 1.4.0-rc02 にはこれらの commit が含まれています。

バグの修正

  • ActivityEmbedding の ProGuard クラッシュを修正しました。

バージョン 1.4.0-rc01

2025 年 3 月 12 日

androidx.window:window-*:1.4.0-rc01 がリリースされました。バージョン 1.4.0-rc01 には、これらの commit が含まれています。

新機能

  • WindowSizeClass API の更新。
  • アクティビティ埋め込み API の更新。

バージョン 1.4.0-beta02

2025 年 2 月 12 日

androidx.window:window-*:1.4.0-beta02 がリリースされました。バージョン 1.4.0-beta02 にはこれらの commit が含まれています。

新機能

  • プロパティにのみ存在し、ゲッターには存在しないアノテーションを修正。

バージョン 1.4.0-beta01

2025 年 1 月 15 日

androidx.window:window-*:1.4.0-beta01 がリリースされました。バージョン 1.4.0-beta01 にはこれらの commit が含まれています。

新機能

  • ActivityEmbedding アニメーションのカスタマイズを可能にする API を追加
  • ウィンドウの指標を偽装できるように WindowMetricsCalculator テスト API を拡張しました。

API の変更

  • いくつかのコンストラクタを非表示にしました(I87b8d
  • アプリが ActivityEmbedding アニメーションをカスタマイズできるようにしました(If31a8
  • watchosDeviceArm64 KMP ターゲットとターゲット kotlin 1.9 のサポートを追加しました(Icf15db/364652024
  • WindowMetricsCalculator API を公開します。(I1cebf

バグの修正

  • このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin を使用している場合、次のコンパイラ引数を使用して正しい使用法を適用する必要があります。-Xjspecify-annotations=strict(Kotlin コンパイラのバージョン 2.1.0 以降ではこれがデフォルトです)。(Ie69acb/326456246

バージョン 1.4.0-alpha05

2024 年 10 月 16 日

androidx.window:window-*:1.4.0-alpha05 がリリースされました。バージョン 1.4.0-alpha05 には、これらの commit が含まれています。

新機能

  • WindowMetrics から widthDpheightDp を取得する便利な関数を追加します。

API の変更

  • widthDpheightDpWindowMetrics に追加します。(Ide026
  • 試験運用版の WindowInsets API を削除しました。(I68a71
  • 境界チェック メソッド名を isAtLeast に更新(Ib0ab7

バージョン 1.4.0-alpha04

2024 年 10 月 2 日

androidx.window:window-*:1.4.0-alpha04 がリリースされました。バージョン 1.4.0-alpha04 にはこれらの commit が含まれています。

API の変更

  • WindowMetrics から WindowSizeClass を計算するメソッドを追加しました。(874dba
  • わかりやすくするため、WindowSizeClass メソッドを containsWidthDpcontainsHeightDpcontainsWindowSizeDp に変更しました。(fa760d
  • WindowAreaController を抽象基底クラスに変換します。(I90893

バグの修正

  • テスト FoldingFeature の作成時に相対境界のサポートを追加しました。(2e6b3e
  • WindowSizeClass を選択する際の一般的なバグを修正しました。

バージョン 1.4.0-alpha03

2024 年 9 月 18 日

androidx.window:window-*:1.4.0-alpha03 がリリースされました。バージョン 1.4.0-alpha03 には、これらの commit が含まれています。

新機能

  • WindowMetrics から WindowSizeClass を取得するユーティリティ メソッドを追加します。(I83f1f
  • isAtLeastcontainsBreakpoint に変更しました。(I85b47
  • 浮動小数点数を使用して computeWindowSizeClass にオーバーロードを追加します。(I3dcb2b/364677934b/364677802b/364680886

バグの修正

  • デフォルトの WindowSizeClass ブレークポイント セットに欠落していたブレークポイントを追加します。
  • 一部のケースでコンパクト ディメンションが正しく選択されないバグを修正しました。

バージョン 1.4.0-alpha02

2024 年 9 月 4 日

androidx.window:window-*:1.4.0-alpha02 がリリースされました。バージョン 1.4.0-alpha02 には、これらの commit が含まれています。

新機能

カスタム WindowSizeClass のサポートを追加しました。

  • デベロッパーが独自のコンストラクタを使用できるように、WindowSizeClass のコンストラクタを開きます。
  • デベロッパーが WindowSizeClass 値の範囲を処理できるように、isAtLeast ユーティリティ メソッドを追加しました。
  • Set<WindowSizeClass> に拡張関数を追加して、Set から最適な一致を計算します。
  • Android の推奨ブレークポイントの定数を追加します。
  • Android の推奨ブレークポイントに対応するブレークポイント セットを追加します。

API の変更

  • WindowSizeClass の境界メソッド名を更新します。(If89a6
  • 将来的に新しいブレークポイント値の追加をサポートするように WindowSizeClass API を更新します。絶対的な境界の代わりに下限を使用し、WindowSizeClass を処理する際に下限チェックを使用することをデベロッパーに推奨します。既存の WindowWidthSizeClassWindowHeightSizeClass は、今後開発されないため、非推奨となります。(I014ce

バージョン 1.4.0-alpha01

2024 年 8 月 7 日

androidx.window:window-*:1.4.0-alpha01 がリリースされました。バージョン 1.4.0-alpha01 には、これらの commit が含まれています。

新機能

  • ActivityStack Pinning を使用すると、アプリは 1 つのコンテナにコンテンツを固定し、そのナビゲーションを他のコンテナから分離できます。
  • インタラクティブな分割線を使用すると、アプリは分割表示で 2 つのアクティビティの間に固定またはドラッグ可能な分割線を表示できます。
  • 全画面表示ダイアログを暗くすると、アプリでダイアログを暗くする領域を指定し、タスク ウィンドウ全体を暗くするか、ダイアログを表示するコンテナのみを暗くするかを選択できます。
  • 埋め込みアクティビティ ウィンドウ情報コールバックを使用すると、アプリは埋め込みアクティビティ ウィンドウの更新を継続的に受け取ることができます。
  • アニメーションの背景の埋め込みにより、アプリはアニメーションの背景を指定できるようになり、ActivityEmbedding が使用されている場合の切り替えアニメーションの品質が向上します。
  • ActivityStack 管理の改善により、アプリは ActivityEmbedding が使用されているときに ActivityStacks をより詳細に制御できるようになります。たとえば、次のような制御が可能です。
  • 指定された ActivityStack でアクティビティを起動する
  • ActivityStack を終了する

API の変更

  • 新しい API WindowInfoTracker#supportedPostures:

    • 折りたたみ式デバイスがテーブルトップ モードをサポートしているかどうかを判断する API。WindowAreaSessionPresenter#getWindow を追加
  • ActivityStack の固定をサポートする API を追加:

    • SplitPinRule クラス
    • SplitController#pinTopActivityStack
    • SplitController#unpinTopActivityStack
  • インタラクティブな区切り線を有効にして構成するための API を追加

    • DividerAttributes クラス
    • SplitAttributes.Builder#setDividerAttributes
  • ダイアログの EmbeddingConfigurationDimAreaBehavior を設定する API を追加

    • EmbeddingConfiguration クラス
    • DimAreaBehavior クラス
    • ActivityEmbeddingController#setEmbeddingConfiguration
  • 埋め込みアクティビティ ウィンドウ情報の更新を受信する API を追加

    • EmbeddedActivityWindowInfo クラス
    • ActivityEmbeddingController#embeddedActivityWindowInfo
  • 埋め込みアニメーションの背景を設定する API を追加

    • EmbeddingAnimationBackground
    • SplitAttributes.Builder#setAnimationBackground
  • ActivityStacks を完了する API を追加

    • ActivityEmbeddingController#finishActivityStacks
  • 起動 ActivityStack を設定する API を追加

    • ActivityEmbeddingOptions#setLaunchingActivityStack
  • 次の API は安定版であり、試験運用版ではなくなりました。

    • ActivityEmbeddingController#invalidateVisibleActivityStacks(SplitController#invalidateTopVisibleSplitAttributes から移動)
    • ActivityEmbeddingController#getActivityStack
    • SplitController#updateSplitAttributes
  • 1.4 用の API を追加します。(I56774

バグの修正

  • セッションがアクティブな場合に、ACTIVE ではなく UNAVAILABLE が返される一部のデバイスのバグを修正しました。
  • 不安定な API サポートのため、vendorApiLevel が 2 のデバイスでの transferActivityToWindowArea のサポートを削除します。
  • Activity Embedding のドラッグ可能な区切り線を全画面表示にドラッグできるようにする API を導入しました。(I645c9
  • アプリが SplitAttributes のアニメーション パラメータを介して ActivityEmbedding アニメーションを無効にできるようにします。(Idc01a
  • AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合、および AGP 8.1 以降(D8 バージョン 8.1 など)ですべてのビルドで、API モデリングを介して自動的に行われるため、新しいプラットフォーム API へのアクセスの手動でのアウトライン設定を削除しました。AGP を使用していないクライアントは、D8 バージョン 8.1 以降に更新することをおすすめします。詳しくは、こちらの記事をご覧ください。(Ia60e0b/345472586
  • 拡張機能が SplitAttributes のアニメーション パラメータを取得できるようにして、デバイスがアニメーションの切り替えに使用できるようにします。(Iede00
  • オーバーレイ API を非表示(Ic4251
  • 分割の固定またはドラッグ可能な区切り線を構成する API を導入(Ia7a78
  • WindowMetrics に密度を追加しました(Id6723
  • SupportedPostures を取得する API を追加しました。(If557a
  • 試験運用版 API から setLaunchingActivityStack を削除しました(I191cf
  • ActivityEmbeddingController#embeddedActivityWindowInfo を導入(I24312
  • #getToken を非推奨にし、#getActivityStackToken を追加しました(Ie0471
  • embeddedActivityWindowInfo フロー API のコールバック アダプタを導入(Ida77f
  • overlayInfo Flow API のコールバック アダプターを追加(I7264f
  • テスト用に extensionsVersion をオーバーライドする WindowSdkExtensionsRule を導入します。(Ifb928
  • - ActivityOptionsCompat の使用と互換性を持たせるため、#setLaunchingActivityStack を Bundle に移行します。
    • ユーザーは ActvityOptions 自体ではなく activityOptions.toBundle を渡す必要があります。
    • #setLaunchingActivityStack(Activity) を削除しました。ユーザーは、ActivityEmbeddingController#getActivityStac(Activity) を使用して ActivityStack を取得し、ActivityStack#setLaunchingActivityStack に渡すように移行する必要があります。(Ie0ccc
  • - WM Jetpack と拡張機能間の通信用の識別子として ActivityStack.TokenSpltInfo.Token を導入します。
    • IBinder の代わりに Token を取得/返すように API を非推奨/置き換え。(I12b24
  • - ActivityEmbeddingController#invalidateVisibleActivityStacks を導入します。
    • SplitController#invalidateTopVisibleSplitAttributes を削除しました。この機能は #invalidateVisibleActivityStacks に統合されています。(I02ef5
  • - 埋め込み構成を設定する API を追加しました。(I59a4a
  • - 上部の ActivityStack androidx.Window API の固定/固定解除を追加
    • デモアプリを更新して、上部の ActivityStack の固定/固定解除を許可(I24dd3
  • #finishActivityStacksActivityEmbeddingOptions を再度追加しました(Ic1ab3
  • 不安定な API を削除しました。(Ibc534b/302380585

バージョン 1.3

バージョン 1.3.0

2024 年 5 月 29 日

androidx.window:window-*:1.3.0 がリリースされました。バージョン 1.3.0 にはこれらの commit が含まれています。

1.2.0 以降の重要な変更

  • ウィンドウ サイズクラスの Kotlin マルチプラットフォームのサポート。

バージョン 1.3.0-rc01

2024 年 5 月 14 日

WindowManager Jetpack 1.3 では、WindowSizeClass 機能の Kotlin マルチプラットフォーム サポートと、複数のバグの修正が追加されています。

androidx.window:window-*:1.3.0-rc01 がリリースされました。バージョン 1.3.0-rc01 には、これらの commit が含まれています。

バージョン 1.3.0-beta02

2024 年 5 月 1 日

androidx.window:window-*:1.3.0-beta02 がリリースされました。バージョン 1.3.0-beta02 にはこれらの commit が含まれています。

API の変更

  • カスタム WindowSizeClass の作成と使用のサポートを削除しました。(Id1143

バグの修正

  • 特定のデバイス実装で ProGuard が一部のファイルを削除することによって発生する KotlinReflectionInternalError を修正しました。(I01b02

バージョン 1.3.0-beta01

2024 年 4 月 3 日

androidx.window:window-*:1.3.0-beta01 がリリースされました。バージョン 1.3.0-beta01 には、これらの commit が含まれています。

バージョン 1.3.0-alpha03

2024 年 3 月 6 日

androidx.window:window-*:1.3.0-alpha03 がリリースされました。バージョン 1.3.0-alpha03 には、これらの commit が含まれています。

API の変更

  • WindowSizeClassUtil をより焦点を絞ったメソッドに分割します。(Ie9292
  • 復元 WindowSizeClass#computeI21355b/324293374

バグの修正

  • 提供されたコンテキストが正しくアンラップされないクラッシュを修正しました。(94d10ceb/318787482

バージョン 1.3.0-alpha02

2024 年 2 月 7 日

androidx.window:window-*:1.3.0-alpha02 がリリースされました。バージョン 1.3.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • 独自のサイズクラスを使用したいデベロッパーの柔軟性を高めるために、Window Size Class API の API サーフェスに更新が行われました。

API の変更

  • 幅セレクタに高さの制約を追加します。(I23393
  • セットから WindowSizeClass を選択するためのユーティリティ関数を追加します。デベロッパーが独自のセレクタを作成できるように、試験運用版のスコアリング関数を追加しました。指定された境界内で最も広い WindowSizeClass を選択するセレクタ拡張関数を追加します。(I0c944
  • カスタム ブレークポイントを追加できるように、WindowSizeClass コンストラクタを開きます。(Ic1ff3
  • 幅、高さ、密度からサイズクラスを作成するコンビニエンス関数を追加。(If67f4

バグの修正

  • 浮動小数点値が 0 に切り捨てられた場合の例外を修正。(272ffac

バージョン 1.3.0-alpha01

2023 年 11 月 15 日

androidx.window:window-*:1.3.0-alpha01 がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • 背面ディスプレイにアクセスするための試験運用版ウィンドウ API を公開します。
  • FoldingFeature を作成するためのテスト API が安定版になりました。
  • 偽の ActivityEmbedding 値を設定するためのテスト API が安定版になりました。
  • WindowLayoutInfoPublisherRule は、UiContext から値を取得するときにオーバーライドを報告するようになりました。
  • WindowInfoTracker は、折りたたみ機能データを UiContext パラメータにレポートします。
  • デバイスで拡張機能のバージョンを公開します。
  • ユーザーのアプリごとのオーバーライドの WindowProperties 定数:
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE - アプリがユーザー向けの縦横比の互換性オーバーライドをオプトアウトしたことをシステムに通知します。
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE - ユーザーのアスペクト比の互換性オーバーライド設定の全画面オプションをアプリがオプトアウトしたことをシステムに通知します

バージョン 1.2

バージョン 1.2.0

2023 年 11 月 15 日

androidx.window:window-*:1.2.0 がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください

1.1.0 以降の重要な変更

  • 背面ディスプレイにアクセスするための試験運用版ウィンドウ API を公開します。
  • FoldingFeature を作成するためのテスト API が安定版になりました。
  • 偽の ActivityEmbedding 値を設定するためのテスト API が安定版になりました。
  • WindowLayoutInfoPublisherRule は、UiContext から値を取得するときにオーバーライドを報告するようになりました。
  • WindowInfoTracker は、折りたたみ機能データを UiContext パラメータにレポートします。
  • デバイスで拡張機能のバージョンを公開します。

バージョン 1.2.0-rc01

2023 年 11 月 1 日

androidx.window:window-*:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください

新機能

  • 背面ディスプレイにアクセスするための試験運用版ウィンドウ API を公開します。
  • FoldingFeature を作成するためのテスト API が安定版になりました。
  • 偽の ActivityEmbedding 値を設定するためのテスト API が安定版になりました。
  • WindowLayoutInfoPublisherRule は、UiContext から値を取得するときにオーバーライドを報告するようになりました。
  • WindowInfoTracker は、折りたたみ機能データを UiContext パラメータにレポートします。
  • デバイスで拡張機能のバージョンを公開します。

バージョン 1.2.0-beta04

2023 年 10 月 18 日

androidx.window:window-*:1.2.0-beta04 がリリースされました。バージョン 1.2.0-beta04 に含まれる commit については、こちらをご覧ください

API の変更

バージョン 1.2.0-beta03

2023 年 9 月 20 日

androidx.window:window-*:1.2.0-beta03 がリリースされました。バージョン 1.2.0-beta03 に含まれる commit については、こちらをご覧ください

新機能

  • 特定のバージョンの拡張機能を必要とする API の RequiresApi チェックを追加しました。
  • デバイスの拡張機能のバージョンを公開する API を追加します。

API の変更

  • 公開 API で必要な Window SDK 拡張機能のバージョンをアノテーションします。
    • アクティビティの埋め込みコンポーネントの isXXXSupported を削除します。(Ie3dae
  • デバイスの拡張機能のバージョンを報告する WindowSdkExtensions を導入します。
    • 必要な拡張機能の最小バージョンをアノテーションするために RequiresWindowSdkExtension を導入します。(I05fd4
  • WindowAreaInfo#getCapability を null 値を許容しないようにします。(I17048

バージョン 1.2.0-beta01

2023 年 7 月 26 日

androidx.window:window-*:1.2.0-beta01 がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

  • 背面ディスプレイにアクセスするための試験運用版ウィンドウ API を公開します。
  • FoldingFeature を作成するためのテスト API が安定版になりました。
  • 偽の ActivityEmbedding 値を設定するためのテスト API が安定版になりました。
  • WindowLayoutInfoPublisherRule は、UiContext から値を取得するときにオーバーライドを報告するようになりました。
  • WindowInfoTracker は、折りたたみ機能データを UiContext パラメータにレポートします。

API の変更

  • WindowArea API を試験運用版としてマークし、1.3 の安定版リリースに向けて API の変更を継続できるようにしました(I857f5
  • API ファイルを更新し、互換性の抑制をアノテーションしました(I8e87ab/287516207

バージョン 1.2.0-alpha03

2023 年 6 月 21 日

androidx.window:window-*:1.2.0-alpha03 がリリースされました。バージョン 1.2.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • API サーフェスから非推奨の API を削除しました。
  • 同時ディスプレイをサポートする API を追加しました。
  • 強制的なサイズ変更のオーバーライドをオプトアウトするプロパティを追加。
  • 最小アスペクト比のオーバーライドをオプトアウトするプロパティを追加。
  • アクティビティ埋め込みに関する単体テストをサポートするために ActivityEmbeddingRule を安定化しました。

API の変更

  • 非推奨の API を削除しました(I18d39
  • 同時表示のサポートを追加します。(Ifcbb0

バグの修正

  • 強制サイズ変更オーバーライドのオプトアウト互換性プロパティを追加(Ie7ab1
  • 拡張機能インターフェースから SESSION_STATE_CONTENT_INVISIBLE を削除します。(I6ed19
  • Activity の埋め込みに関する単体テストをサポートするために、ActivityEmbeddingRule を安定化しました。(I8d6b6
  • 最小アスペクト比のオーバーライドのオプトアウト互換性プロパティを追加(I66390
  • サポートが終了した WindowArea API を削除しました(Ieb67c
  • 向きリクエスト ループ プロパティの名前を PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED に変更。(Ie2fbd
  • ウィンドウ領域セッション定数名を更新(I83675
  • 検出された場合にオリエンテーション リクエスト ループを無視するオプトアウト互換性プロパティを追加(I0a7a2
  • WindowAreaComponent#STATUS_ACTIVE を追加して、機能がすでに有効になっていることを示します。(I62bc3
  • RearDisplayPresentationMode API を追加しました(I0401c
  • 安定版の背景色 API を削除しました。(I34c3e
  • Window Area API を非表示にします。(I39de0
  • SplitControllerSplitInfo をオーバーライドするメソッドを追加します。SplitInfoActivityStack のダブルを作成するテストメソッドを追加します。(Icd69f
  • ActivityRule.Builder のタグを省略可能にします。(Ib0b44
  • RatioSplitTypeExpandContainersSplitHingeSplitType を削除しました。現在は SplitType です。
    • #splitEqually()#expandContainers()#splitByHinge を定数 SplitType SPLIT_TYPE_EQUALSPLIT_TYPE_EXPANDSPLIT_TYPE_HINGE に置き換えます。
    • ヒンジ分割タイプのフォールバック タイプを設定する機能を削除しました。現在のデバイスまたはウィンドウの状態によりヒンジ分割タイプを適用できない場合、親タスク コンテナを均等に分割するフォールバックが行われます。SplitController#setSplitAttributesCalculator を使用して、フォールバック分割タイプをカスタマイズします。(Ifcc59
  • add/removeSplitCallback のサポートを終了する
    • add/removeSplitCallbackSplitControllerCallbackAdapter に移動
    • SplitInfo リストを取得する Flow サポートを追加(I7f1b6
  • ActivityEmbeddingController のテストルールを追加しました(I42e9b
  • ActivityOptionsCompat の名前を ActivityEmbeddingOptions に変更(I89301
  • アクティビティの埋め込みが利用可能かどうかを示す splitSupportStatus を追加しました。(I10024
  • DEFAULT の値をより適切に表すために SplitAttributes.BackgroundColor を導入します。不透明でないアニメーションの背景色はサポートされていないことを明確にします。不透明でない色はデフォルトとして扱われ、現在のテーマのウィンドウの背景色が使用されます。(Ic6b95
  • alwaysAllow()alwaysDisallow()ALWAYS_ALLOWALWAYS_DISALLOW に置き換えました。(I3057b
  • SplitRuleSplitAttributesSplitAttributesCalculator の API を追加しました。(I92d23
  • TestActivityStack を追加して、テスト用の ActivityStack を作成
    • テスト用の SplitInfo を作成する TestSplitInfo を追加しました。(I8e779
  • デベロッパーがカスタマイズした SplitAttributesCalculator を検証できるように、偽の SplitAttributesCalculatorParams を作成する方法を追加(Id4a6e
  • WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context) を追加しました。(I66c7f

バージョン 1.2.0-alpha02

2023 年 6 月 7 日

androidx.window:window-*:1.2.0-alpha02 がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • テスト API を更新して、未指定の折りたたみ機能の定数を含めます。
  • WindowLayoutInfoPublishRule でオーバーライドすると、Context ベースの API を含む windowLayoutInfo のすべての値がオーバーライドされます。

API の変更

  • 指定されていない中央折りたたみ機能の定数を追加(I7530c

バグの修正

  • Context ベースの WindowLayoutInfo でオーバーライドをサポートするように WindowLayoutInfoPublishRule を更新します。(I2037a

バージョン 1.2.0-alpha01

2023 年 5 月 24 日

androidx.window:window-*:1.2.0-alpha01 がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

アクティビティ埋め込みと WindowLayoutInfoTracker に関するテスト API を安定化しました。ActivityEmbeddingRule が安定版に昇格しました。WindowMetricsCalculatorRule が安定版に昇格しました。テスト用の FoldingFeature を作成するユーティリティ関数が安定版に昇格しました。

API の変更

  • Activity の埋め込みに関する単体テストをサポートするために、ActivityEmbeddingRule を安定化しました。(I8d6b6
  • WindowMetrisCalculatorTestRule は安定しており、JVM テストのスタブ指標を許可します。正確な結果を得るには、エミュレータを使用することをおすすめします。
  • JVM テストをサポートするため、WindowLayoutInfo のテスト API を安定化しました。(Ie036e
  • テスト用の折りたたみ機能の値に IntRange を追加します。(I69f7d

バージョン 1.1

バージョン 1.1.0

2023 年 6 月 7 日

androidx.window:window-*:1.1.0 がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください

1.0.0 以降の重要な変更

アクティビティの埋め込み

  • アプリ マニフェストの <application> タグのブール値プロパティとして PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED を追加しました。
  • 分割機能を利用できない理由に関する詳細情報を提供するため、isSplitSupported を非推奨とし、splitSupportStatus に置き換えました。
  • splitSupportStatus プロパティの状態定数を提供するために、SplitController.SplitSupportStatus ネストされたクラスを追加しました。
  • SplitController を複数のモジュールにリファクタリングしました。
    • Activity または ActivityStack 関連 API の ActivityEmbeddingController モジュール。
    • isActivityEmbeddedSplitController から ActivityEmbeddingController に移動しました。
    • EmbeddingRule 関連のオペレーション用の RuleController モジュール:
    • SplitController API を削除しました。
    • clearRegisteredRules()
    • getSplitRules()
    • initialize()
    • registerRule()
    • unregisterRule()
    • RuleController API を追加しました。
    • addRule() - ルールを追加するか、同じタグを持つルールを更新します。
    • removeRule() - 登録済みルールのコレクションからルールを削除します。
    • setRules() - ルールのコレクションを確立します。
    • clearRules() - 登録されているすべてのルールを削除します。
    • parseRules() - XML ルール定義からルールを解析します。
  • すべてのモジュールでは、#getInstance() メソッドで初期化されるコンテキストが必要です。以下に例を示します。
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • 表示のアスペクト比に関連する列挙型のような動作定数を定義する EmbeddingAspectRatio クラスを追加しました。
  • 分割レイアウトを定義するために SplitAttributes クラスを追加しました。
  • 分割レイアウトをカスタマイズするために、SplitControllerSplitAttributes 計算関数を追加しました。
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • SplitAttributesCalculator API がデバイスでサポートされているかどうかを確認する isSplitAttributesCalculatorSupported()
  • EmbeddingRule#tag フィールドを追加しました。
  • SplitRule の API の更新:
    • defaultSplitAttributes を追加しました。分割のデフォルトの分割レイアウトを定義します。splitRatiolayoutDirection を置き換えます。
    • XML プロパティ splitRatiosplitLayoutDirectiondefaultSplitAttributes への変換を追加しました。
    • 最小サイズの定義を、ピクセルではなく密度非依存ピクセル(dp)を使用するように変更しました。
    • デフォルト値 600dp の minHeightDp を追加しました。
    • minWidthminWidthDp に変更し、デフォルト値を 600dp にしました。
    • minSmallestWidthminSmallestWidthDp に変更し、デフォルト値を 600dp にしました。
    • デフォルト値 ALWAYS_ALLOW を持つ maxAspectRatioInHorizontal を追加しました。
    • デフォルト値 1.4 の maxAspectRatioInPortrait を追加しました。
    • 終了動作定数を置き換えるために FinishBehavior ネストされたクラスを定義しました。
    • SplitPairRuleSplitPlaceholderRule の Builder ネストクラスにプロパティの変更を適用しました。
  • 分割に関する追加情報を提供するため、SplitInfo#getSplitRatio()SplitInfo#getSplitAttributes() に置き換えました。

WindowLayout

  • WindowInfoTracker に試験運用版のアクティビティ以外の UI コンテキストのサポートを追加しました。
  • WindowMetricsCalculator に試験運用版のアクティビティ以外の UI コンテキストを追加しました。

移行手順

  • アクティビティの埋め込みでアクティビティを分割して表示できるようにするには、アプリでマニフェストの <application> タグに PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED プロパティを追加する必要があります。 xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> これにより、システムはアプリの分割動作を事前に最適化できます。
  • SplitInfo 比率
    • 現在の分割がスタックされているかどうかを確認します。 kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • 現在の比率を確認します。 kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
  • SplitController の移行:
    • SplitController.getInstance()SplitController.getInstance(Context) に変更します。
    • SplitController.initialize(Context, @ResId int)RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) に変更します。
    • SplitController.getInstance().isActivityEmbedded(Activity)ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) に変更します。
    • SplitController.getInstance().registerRule(rule)RuleController.getInstance(Context).addRule(rule) に変更します。
    • SplitController.getInstance().unregisterRule(rule)RuleController.getInstance(Context).removeRule(rule) に変更します。
    • SplitController.getInstance().clearRegisteredRules()RuleController.getInstance(Context).clearRules() に変更します。
    • SplitController.getInstance().getSplitRules()RuleController.getInstance(Context).getRules() に変更します。
  • SplitRule プロパティの移行:
    • minWidthminSmallestWidth で、ピクセルではなく dp 単位が使用されるようになりました。アプリは次の呼び出しを使用できます。 kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) または、単に minWith をピクセル単位で displayMetrics#density で割ることもできます。
  • 終了動作定数は FinishBehavior 列挙型のようなクラス定数に移行する必要があります。
    • FINISH_NEVERFinishBehavior.NEVER に変更します。
    • FINISH_ALWAYSFinishBehavior.ALWAYS に変更します。
    • FINISH_ADJACENTFinishBehavior.ADJACENT に変更します。
  • レイアウトの方向は SplitAttributes.LayoutDirection に移行する必要があります。
    • ltrSplitAttributes.LayoutDirection.LEFT_TO_RIGHT に変更します。
    • rtlSplitAttributes.LayoutDirection.RIGHT_TO_LEFT に変更します。
    • localeSplitAttributes.LayoutDirection.LOCALE に変更します。
    • splitRatioSplitAttributes.SplitType.ratio(splitRatio) に移行する必要があります。
  • SplitPairRule.Builder migrations:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth)kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600. に変更
    • setLayoutDirection(layoutDirection)setSplitRatio(ratio)kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) に変更
    • setFinishPrimaryWithSecondarysetFinishSecondaryWithPrimaryFinishBehavior 列挙型のような定数を取ります。詳しくは、「SplitRule の移行」をご覧ください。
    • 縦向きのデバイスで分割を表示するには、setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) を使用します。
  • SplitPlaceholder.Builder migrations:
    • filters パラメータと placeholderIntent パラメータのみが含まれています。その他のプロパティはセッターに移動します。詳しくは、「SplitPairRule.Builder の移行」をご覧ください。
    • setFinishPrimaryWithPlaceholderFinishBehavior 列挙型定数を取ります。詳しくは、「SplitRule の移行」をご覧ください。
    • setLayoutDirection(layoutDirection)setSplitRatio(ratio) が次のように変更されます。 kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • 縦向きのデバイスで分割を表示するには、setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) を使用します。

バージョン 1.1.0-rc01

2023 年 5 月 10 日

androidx.window:window-*:1.1.0-rc01 がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください

新機能

  • ActivityEmbedding を安定版 API としてリリースします。
  • 各種バグを修正しました。

バージョン 1.1.0-beta02

2023 年 4 月 5 日

androidx.window:window-*:1.1.0-beta02 がリリースされました。バージョン 1.1.0-beta02 に含まれる commit については、こちらをご覧ください

新機能

  • 内部の修正とクリーンアップ。

バージョン 1.1.0-beta01

2023 年 3 月 22 日

androidx.window:window-*:1.1.0-beta01 がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください

アクティビティの埋め込み

  • アプリ マニフェストの <application> タグのブール値プロパティとして PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED を追加しました。
  • 分割機能を利用できない理由に関する詳細情報を提供するため、isSplitSupported を非推奨とし、splitSupportStatus に置き換えました。
  • splitSupportStatus プロパティの状態定数を提供するために、SplitController.SplitSupportStatus ネストされたクラスを追加しました。
  • SplitController を複数のモジュールにリファクタリングしました。
    • Activity または ActivityStack 関連 API の ActivityEmbeddingController モジュール。
    • isActivityEmbeddedSplitController から ActivityEmbeddingController に移動しました。
    • EmbeddingRule 関連のオペレーション用の RuleController モジュール:
    • SplitController API を削除しました。
      • clearRegisteredRules()
      • getSplitRules()
      • initialize()
      • registerRule()
      • unregisterRule()
    • RuleController API を追加しました。
      • addRule() - ルールを追加するか、同じタグを持つルールを更新します。
      • removeRule() - 登録済みルールのコレクションからルールを削除します。
      • setRules() - ルールのコレクションを確立します。
      • clearRules() - 登録されているすべてのルールを削除します。
      • `parseRules()` - XML ルール定義からルールを解析します。
  • すべてのモジュールでは、#getInstance() メソッドで初期化されるコンテキストが必要です。以下に例を示します。
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • 表示のアスペクト比に関連する列挙型のような動作定数を定義する EmbeddingAspectRatio クラスを追加しました。
  • 分割レイアウトを定義するために SplitAttributes クラスを追加しました。
  • 分割レイアウトをカスタマイズするために、SplitControllerSplitAttributes 計算関数を追加しました。
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • isSplitAttributesCalculatorSupported(): SplitAttributesCalculator API がデバイスでサポートされているかどうかを確認します。
  • EmbeddingRule#tag フィールドを追加しました。
  • SplitRule の API の更新:
    • defaultSplitAttributes を追加しました。分割のデフォルトの分割レイアウトを定義します。splitRatiolayoutDirection を置き換えます。
    • XML プロパティ splitRatiosplitLayoutDirectiondefaultSplitAttributes への変換を追加しました。
    • 最小サイズの定義を、ピクセルではなく密度非依存ピクセル(dp)を使用するように変更しました。
    • デフォルト値 600dp の minHeightDp を追加しました。
    • minWidthminWidthDp に変更し、デフォルト値を 600dp にしました。
    • minSmallestWidthminSmallestWidthDp に変更し、デフォルト値を 600dp にしました。
    • デフォルト値 ALWAYS_ALLOW を持つ maxAspectRatioInHorizontal を追加しました。
    • デフォルト値 1.4 を持つ maxAspectRatioInPortrait を追加しました。
    • 終了動作定数を置き換えるために FinishBehavior ネストされたクラスを定義しました。
    • SplitPairRuleSplitPlaceholderRuleBuilder ネストクラスにプロパティの変更を適用しました。
  • 分割に関する追加情報を提供するため、SplitInfo#getSplitRatio()SplitInfo#getSplitAttributes() に置き換えました。

WindowLayout

  • アクティビティ以外の UI コンテキストのサポートを WindowInfoTracker に追加しました。
  • WindowMetricsCalculator にアクティビティ以外の UI コンテキストを追加しました。

移行手順

  • アクティビティの埋め込みでアクティビティを分割して表示できるようにするには、アプリでマニフェストの <application> タグに PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED プロパティを追加する必要があります。 xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> これにより、システムはアプリの分割動作を事前に最適化できます。
  • SplitInfo 比率
    • 現在の分割がスタックされているかどうかを確認します。 kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • 現在の比率を確認します。 kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
  • SplitController migrations:
    • SplitController.getInstance()SplitController.getInstance(Context) に変更します。
    • SplitController.initialize(Context, @ResId int)RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) に変更されます。
    • SplitController.getInstance().isActivityEmbedded(Activity)ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) に変更します。
    • SplitController.getInstance().registerRule(rule)RuleController.getInstance(Context).addRule(rule) に変更します。
    • SplitController.getInstance().unregisterRule(rule)RuleController.getInstance(Context).removeRule(rule) に変更します。
    • SplitController.getInstance().clearRegisteredRules()RuleController.getInstance(Context).clearRules() に変更します。
    • SplitController.getInstance().getSplitRules()RuleController.getInstance(Context).getRules() に変更します。
  • SplitRule プロパティの移行:
    • minWidthminSmallestWidth で、ピクセルではなく dp 単位が使用されるようになりました。アプリは次の呼び出しを使用できます。 kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) または、単に minWith をピクセル単位で displayMetrics#density で割ることもできます。
  • 終了動作定数は FinishBehavior 列挙型のようなクラス定数に移行する必要があります。
    • FINISH_NEVERFinishBehavior.NEVER に変更します。
    • FINISH_ALWAYSFinishBehavior.ALWAYS に変更します。
    • FINISH_ADJACENTFinishBehavior.ADJACENT に変更します。
  • レイアウトの方向は SplitAttributes.LayoutDirection に移行する必要があります。
    • ltrSplitAttributes.LayoutDirection.LEFT_TO_RIGHT に変更します。
    • rtlSplitAttributes.LayoutDirection.RIGHT_TO_LEFT に変更します。
    • localeSplitAttributes.LayoutDirection.LOCALE に変更します。
    • splitRatioSplitAttributes.SplitType.ratio(splitRatio) に移行する必要があります。
  • SplitPairRule.Builder migrations:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth)kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600. に変更
    • setLayoutDirection(layoutDirection)setSplitRatio(ratio)kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) に変更されます
    • setFinishPrimaryWithSecondarysetFinishSecondaryWithPrimaryFinishBehavior 列挙型のような定数を取ります。詳しくは、「SplitRule の移行」をご覧ください。
    • 縦向きのデバイスで分割を表示するには、setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) を使用します。
  • SplitPlaceholder.Builder migrations:
    • filters パラメータと placeholderIntent パラメータのみが含まれています。その他のプロパティはセッターに移動します。詳しくは、「SplitPairRule.Builder の移行」をご覧ください。
    • setFinishPrimaryWithPlaceholderFinishBehavior 列挙型定数を取ります。詳しくは、「SplitRule の移行」をご覧ください。
    • setLayoutDirection(layoutDirection)setSplitRatio(ratio) が次のように変更されます。 kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • 縦向きのデバイスで分割を表示するには、setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) を使用します。

バージョン 1.1.0-alpha06

2023 年 2 月 22 日

androidx.window:window-*:1.1.0-alpha06 がリリースされました。バージョン 1.1.0-alpha06 に含まれる commit については、こちらをご覧ください

新機能

  • UI コンテキストから WindowLayoutInfo を取得する試験運用版を公開しました。

API の変更

  • アクティビティの埋め込みが利用可能かどうかを示す splitSupportStatus を追加しました。(I10024
  • UI Context WindowLayoutInfo API を試験運用版にしました。(I58ee0
  • RearDisplay モードを有効にするための WindowAreaController と API を導入しました。このモードは、現在のウィンドウを背面カメラに合わせたディスプレイに移動する際に使用します。(Iffcbf
  • デフォルトの背景色を更新しました。(I1ac1b
  • SplitAttributes パラメータを追加しました。(I18bdd
  • SplitRuleSplitAttributesSplitAttributesCalculator の API を追加しました。(I92d23
  • maxAspectRatio に関する API を改善しました。
    1. alwaysAllow()alwaysDisallow()ALWAYS_ALLOWALWAYS_DISALLOW に置き換えました。
    2. @see の API ドキュメントを独立したドキュメントとして更新しました。(I3057b
  • 以下のコンストラクタは、アプリによって呼び出されるものではないため、公開 API から削除されました。
    • SplitInfo コンストラクタ
    • ActivityStack コンストラクタ(Ide534
  • SplitRulemaxAspectRatioInPortrait/Landscape を受け取るようになりました。親境界のアスペクト比がリクエストされた maxAspectRatio 以下の場合にのみ、アクティビティを分割できます。(Ia5990
  • RuleController#parseRules を静的に変更しました。(I785df
  • ActivityEmbedding に関する API を改善しました。
    1. API 命名規則の調整 - 次のインスタンスについては add / remove を使用します
    2. registerRuleaddRule に変更
    3. unregisterRuleremoveRule に変更
    4. ActivityRule は分割ルールではないため、getSplitRulesgetRules に置き換えました
    5. 多数のルールを設定できる RuleController#setRules を追加しました
    6. SplitController のルール関連の API がシングルトン RuleController に抽出されます。該当する API は次のとおりです。
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. SplitController#isActivityEmbedded がシングルトン ActivityEmbeddingController に抽出されます。該当する API は次のとおりです。
    14. isActivityEmbedded
    15. SplitController#initialize を削除しました。XML ファイルからルールを設定するには、RuleController#parseRules#setRules を使用してください。変更前: SplitController.initialize(context, R.xml.static_rules) 変更後: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
    16. 静的ルールとランタイム ルールが区別されなくなりました。つまり、#clearRules を呼び出すと、静的 XML ルールの定義に登録されているか実行時かどうかにかかわらず、すべてのルールがクリアされます。SplitController#clearRegisteredRules の従来の動作を利用するには、XML リソース ID を指定して RuleController#parseRules を呼び出し、RuleController#setRules を呼び出してルールを再度設定してください。 変更前: SplitController.getInstance(context).clearRegisteredRules() 変更後: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)Ib3967
  • SplitRule API を改善しました。
    1. 最小サイズは、SplitRule のピクセルではなく DP で指定します。
    2. 最小サイズをオプションとして受け取るように SplitRule Builder をリファクタリングしました。(I95f17
  • SplitController を初期化するためにコンテキストを渡すようにしました。(I42549
  • SplitRule#layoutDir の名前を #layoutDirection に、SplitRule Builder#setLayoutDir の名前を Builder#setLayoutDirection に変更しました。(I3f6d1

バージョン 1.1.0-alpha04

2022 年 11 月 9 日

androidx.window:window-*:1.1.0-alpha04 がリリースされました。バージョン 1.1.0-alpha04 に含まれる commit については、こちらをご覧ください

新機能

  • ActivityEmbeddingActivityStack が空かどうかを判断するためのメソッドを公開しました。
  • ActivityEmbedding API から試験運用版 API タグを削除しました。
  • 構築には Builder がおすすめの方法であるため、ActivityRule コンストラクタを非表示にしました。
  • WindowMetricsWindowInsets を取得する試験運用版のメソッドを追加しました。
  • プレースホルダが終了しないように SplitPlaceholderFinishBehavior を更新しました。プレースホルダが終了すると、混乱を招く動作が発生していました。

API の変更

  • val isEmpty を一般公開しました。これは fun isEmpty を置き換わるものです。
  • ActivityStack パラメータのアクティビティの名前を activitiesInProcess に変更しました。(Ia5055
  • ActivityFilter#matchesClassNameActivityFilter#matchesClassNameOrWildCard は混乱を招くため、削除しました。
  • 呼び出し元がさまざまなフィルタを区別できるように、ActivityFilter#componentNameActivityFilter#intentAction を追加しました。(I41f22
  • 試験運用版 API から @Deprecated API を削除しました。(I216b3
  • アクティビティ埋め込み API の @ExperimentalWindowApi を削除しました。(I69ebe
  • ActivityRule コンストラクタを非表示にしました。代わりに Builder を使用してください。(If4eb6
  • アクティビティが ActivityFilter に含まれているかどうかを確認する API を追加しました。(Ia43cf
  • WindowMetrics クラスと WindowMetricsCalculatorCompat クラスの変更を反映するように API ファイルを更新しました。(I667fe
  • ActivityEmbedding プロパティの Javadoc とクラス名を更新しました。(Ia1386
  • AndroidManifest.xml で使用する ActivityEmbedding プロパティ タグ名を追加しました。(Id1ad4
  • 新しい API SplitPlaceholderFinishBehaviorSplitPlaceholderRule.finishPrimaryWithPlaceholder を追加しました。これは、プレースホルダのアクティビティが終了するタイミング、およびアクティビティの埋め込みにおける関連するアクティビティの動作を定義する既存の SplitPlaceholderRule.finishPrimaryWithSecondary に代わるものです。(I64647

バグの修正

  • RearDisplay モードを有効にするための WindowAreaController と API を導入しました。このモードは、現在のウィンドウを背面カメラに合わせたディスプレイに移動する際に使用します。(I388ab

バージョン 1.1.0-alpha03

2022 年 7 月 27 日

androidx.window:window-*:1.1.0-alpha03 がリリースされました。バージョン 1.1.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • 埋め込みルールのデフォルト値を更新しました。

API の変更

  • 埋め込みルール プロパティのデフォルト値を更新しました。(Ic4d35

バージョン 1.1.0-alpha02

2022 年 5 月 11 日

androidx.window:window-*:1.1.0-alpha02 がリリースされました。バージョン 1.1.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • Java と RxJava をサポートするためのアダプタ ライブラリをリリースします。

バージョン 1.1.0-alpha01

2022 年 5 月 11 日

androidx.window:window-*:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • Java と RxJava をサポートするためのアダプタをリリースします。

バージョン 1.1.0-alpha01

2022 年 4 月 20 日

androidx.window:window:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • アプリがバックグラウンド処理に移行すると折りたたみ機能の出力が停止するバグを修正しました。
  • 試験運用版の ActivityEmbedding API を拡張しました。

API の変更

  • アクティビティが埋め込まれているかどうかを確認する公開 API。(I39eb7

バグの修正

  • アクティビティ分割でコンテナの終了動作をカスタマイズする API を追加しました。(I1a1e4
  • アクティビティ分割ルールの新しい設定オプションを追加しました。(Iec6af

バージョン 1.0

バージョン 1.0.0

2022 年 1 月 26 日

androidx.window:window-*:1.0.0 がリリースされました。バージョン 1.0.0 に含まれる commit については、こちらをご覧ください

1.0.0 の主な機能

  • WindowInfoTrackerFoldingFeature により折りたたみ式スマートフォンをサポートします。WindowMetricsCalculator は現在の WindowMetrics の計算に役立ちます。

バージョン 1.0.0-rc01

2021 年 12 月 15 日

androidx.window:window-*:1.0.0-rc01 がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください

新機能

  • WindowInfoTracker による折りたたみ式スマートフォンのサポートを追加しました。
  • WindowMetrics の現在値と最大値を計算するメソッドを追加しました。
  • サポート用のテスト API を追加しました。

バージョン 1.0.0-beta04

2021 年 11 月 17 日

androidx.window:window-*:1.0.0-beta04 がリリースされました。バージョン 1.0.0-beta04 に含まれる commit については、こちらをご覧ください

新機能

  • WindowInfoRepository の名前を WindowInfoTracker に変更しました。
  • Activity を WindowInfoTracker の明示的なメソッド依存関係にします。
  • Robolectric を使用するデベロッパーをサポートするために、WindowMetricsCalculator に簡単な TestRule を追加しました。

API の変更

  • 拡張機能の抽出(I25a5f
  • ActivityStack に isEmpty を追加しました(I5a4e6
  • WindowInfoRepository の名前を WindowInfoTracker に変更しました。
    • java/rxjava/testing の依存関係を一致するように更新しました。(I0da63
  • 単純な WindowMetricsCalculator のテストルールを追加しました。(Ibacdb

バージョン 1.0.0-beta03

2021 年 10 月 27 日

androidx.window:window-*:1.0.0-beta03 がリリースされました。バージョン 1.0.0-beta03 に含まれる commit については、こちらをご覧ください

新機能

  • 試験運用版のアクティビティ埋め込み API を追加しました。この最初のレイアウト バージョンでは、2 つのアクティビティを並べて表示できます。

API の変更

  • currentWindowMetrics API は、正確に提供できないため削除しました。代わりに WindowMetricsCalculator を使用してください。(Icda5f
  • 拡張機能 API を更新しました。(Ica92b
  • アクティビティを埋め込んで親タスク ウィンドウ内に並べて表示できる新機能のインターフェースを追加しました。(I5711d
  • WindowMetrics と WindowLayoutInfo のコンストラクタを非表示にしました。代わりにテスト API を使用してください。(I5a1b5
  • 偽の WindowLayoutInfo オブジェクトを作成する API を追加しました。(I4a2fd

バグの修正

バージョン 1.0.0-beta02

2021 年 9 月 1 日

androidx.window:window-*:1.0.0-beta02 がリリースされました。バージョン 1.0.0-beta02 に含まれる commit については、こちらをご覧ください

新機能

  • 試験運用版 API にアノテーションを付けるために、試験運用版アノテーションを追加します。(I9f1b6
  • Rect を受け入れるテスト用 FoldingFeature を作成するテストメソッドを追加します。これにより、実際の Activity ではなく Robolectric を使用する場合のテストが容易になります。(Id1cca

バージョン 1.0.0-beta01

2021 年 8 月 18 日

androidx.window:window-*:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

  • 古い定数を削除し、FoldingFeature をインターフェースに変更しました。

API の変更

  • 古い定数を削除し、FoldFeature をインターフェースに変更します。(I9a2d5

バグの修正

  • Test Core ライブラリに依存するライブラリがバージョン 1.4.0 にアップグレードされました。Android プラットフォーム バージョン S で動作するようになります。(I88b72b/189353863

バージョン 1.0.0-alpha10

2021 年 8 月 4 日

androidx.window:window-*:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。

新機能

  • WindowInfoRepo の名前を WindowInfoRepository に変更し、対応するクラス / ファイルを調整します。
  • 時間の経過とともに値が変化するため、現在のウィンドウ指標を WindowInfoRepository の Flow に変換します。
  • WindowInfoRepoJavaAdapter の名前を WindowInfoRepoCallbackAdapter に変更します。
  • テスト用の FoldingFeature オブジェクトを作成するヘルパー メソッドを追加します。
  • パッケージを更新し、クラスがサポートする機能に基づいてクラスをグループ化します。

API の変更

  • ActivityExt の名前を ActivityExtensions に変更し、Repo を Repository に変更します。(I61a16
  • クラスのパッケージを更新します。(I23ae2
  • WindowInfoRepo から WindowMetrics を削除します。(I24663
  • WindowManager を削除し、WindowInfoRepo を使用します。
    • WindowBackend を内部化します。(I06d9a
  • ウィンドウ指標を Flow に変換します。
    • Java アダプタの名前を WindowInfoRepoCallbackAdapter に変更します。
    • callbackFlow を削除します。したがって、今後は試験運用版 API を使用しません。(Ia4d15
  • テスト表示機能を作成するヘルパー メソッドを追加します。
    • occlusionMode を occlusionType に変更します。(If4cff

バグの修正

  • core ライブラリが削除される ProGuard エラーを修正しました。
  • WindowLayoutInfo が追加のサブスクライバーに配信されないエラーを修正しました。
  • 構成を変更しても折りたたみ機能の更新がトリガーされないエラーを修正しました。

バージョン 1.0.0-alpha09

2021 年 6 月 30 日

androidx.window:window-*:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。

新機能

  • 整数の定数を制限なしの列挙型に変更します。
  • テスト用の折りたたみ機能を作成するためのテスト ユーティリティを追加します。

API の変更

  • テスト表示機能を作成するヘルパー メソッドを追加します。(I3cf54
    • occlusionModeocclusionType に変更します。

バグの修正

  • データ ストリームの複数のコンシューマを追加する際に、初期値を出力します。

バージョン 1.0.0-alpha08

2021 年 6 月 16 日

androidx.window:window-*:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。

新機能

  • WindowInfoRepository を使用する場合のテストを容易にするため、テスト アーティファクトをリリースしました。WindowInfoRepository を使用して、DisplayFeatures と WindowMetrics に関する情報を取得できます。(I57f66Ida620

バージョン 1.0.0-alpha07

2021 年 6 月 2 日

androidx.window:window-*:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。

新機能

  • ウィンドウ ライブラリのコアを Kotlin に移行します。今後は、コルーチンと suspend 関数を使用して非同期データを公開します。
  • WindowLayoutInfo のストリームと WindowMetrics を取得するための主要な接点として WindowInfoRepo を追加します。
  • コールバックの登録と登録解除を行う Java 対応 API を公開する window-java アーティファクトを導入しました。
  • RxJava に対応させた API を公開するアーティファクト window-rxjava2window-rxjava3 を導入しました。

API の変更

  • 依存関係を全体に提供する WindowServices を追加しました。
    • ウィンドウ レイアウト情報を消費するコルーチン ベースの API を追加しました。(Iab70f
  • ウィンドウ マネージャー ライブラリのコアを Kotlin に移行しました。(Icca34

バグの修正

  • 形状の境界を表すデータクラスを追加しました。(I6dcd1

バージョン 1.0.0-alpha06

2021 年 5 月 5 日

androidx.window:window:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。

新機能

  • Google は Kotlin への移行を開始しており、次のリリースで完了する予定です。
  • DeviceState が公開 API から削除されました。代わりに FoldingFeature を使用してください。
  • 現時点で STATE_FLIPPED はいかなるユースケースでもサポートされていないため、FoldingFeature の状態から削除しました。
  • サポートが終了した他の API も削除しました。

API の変更

  • Kotlin を依存関係として追加しました。
    • コアライブラリを Kotlin に移行しました。(Idd995
  • DisplayFeature ビルダーを削除しました。(I61fa4
  • 公開 API から DeviceState を削除しました。代わりに FoldingFeature を使用してください。(Id6079
  • 拡張機能からデバイス状態のコールバックを削除しました。(I5ea83
  • FoldingFeature から STATE_FLIPPED を削除しました。(I9c4e1
  • 非推奨となった登録メソッドを削除しました。(Ib381b

バージョン 1.0.0-alpha05

2021 年 3 月 24 日

androidx.window:window:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください

新機能

FoldingFeature に便利なメソッドを追加し、機能が分離しているかどうか、覆い隠しているかどうか、ヒンジの向きをアプリが判断できるようにしました。また、以下のために、ヒンジタイプを非表示にします。

WindowManager から同期読み取りメソッドを削除します。同期読み取りメソッドは、暗黙的な競合状態が生じるため、エラーが発生しやすくなります。WindowLayoutInfo のアップデートを受け取るため、リスナーとコールバックを登録します。

API の変更

  • FoldingFeatures の操作に役立つメソッドを追加(Ie733f
  • WindowManager から同期読み取りメソッドを削除(I96fd4

バージョン 1.0.0-alpha04

2021 年 3 月 10 日

androidx.window:window:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください

新機能

  • OEM が実装されていない場合、WindowLayoutInfo が出力されないバグを修正しました。ここでは空の WIndowLayoutInfo を出力するようにします。
  • アプリがバックグラウンドで動作しているときにヒンジ状態が変わると、状態が正しく更新されないバグを修正しました。この状態は統一されるようになります。
  • ランタイム依存関係からの警告を無視するように、ProGuard ファイルを更新しました。

バグの修正

  • OEM ライブラリがない場合は、空の値を出力します。(Ide935

バージョン 1.0.0-alpha03

2021 年 2 月 18 日

androidx.window:window:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • OEM の実装が空の場合は、WindowLayoutInfo に空の値を出力します。これにより、より多くのデバイスでライブラリを簡単に使用できるようになります。ただし、API は非同期であるため、アプリで防御のためのコードを作成してタイムアウト後にデフォルト値を出力することをおすすめします。OEM の実装について Google はいかなる保証もいたしません。また、初期値が遅延する可能性もあります。

バグの修正

  • OEM ライブラリがない場合は、空の値を出力します。(Ide935

バージョン 1.0.0-alpha02

2021 年 1 月 27 日

androidx.window:window:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。

新機能

  • API を合理化して誤りを減らすために、いくつかの API のサポートを終了しました。重要な変更の 1 つは、WindowManager から同期読み取りオペレーションを削除して DeviceState のサポートを終了したことです。同期読み取りオペレーションは競合状態を引き起こし、正しく UI が表示されない原因になることがあります。

  • DisplayFeature は、他の機能で今後実装されるインターフェースに移行されました。最初に提供される機能は FoldingFeature で、これは画面の折りたたみまたはヒンジを表現します。これには、DeviceState に取って代わるヒンジの状態も含まれます。

  • WindowMetrics は Android 11 で導入されましたが、その目的は、デベロッパーがウィンドウに関する指標(ウィンドウの画面上の位置とサイズ、システム インセットなど)を簡単にクエリできるようにすることでした。このリリースでは、デベロッパーが WindowMetrics を利用して古い Android バージョンのサポートを継続できるように、API をバックポートしました。WindowMetrics は、WindowManager#getCurrentWindowMetrics() API および WindowManager#getMaximumWindowMetrics() API で取得できます。

API の変更

  • 次のアルファ版で削除される API のサポートを終了しました(Ib7cc4
  • ExtensionInterface を更新して明示的なアクティビティ参照を受け入れるようにしました。(I07ded
  • WindowMetrics API を導入しました。(I3ccee
  • WindowManager から同期読み取りメソッドを削除しました(I69983
  • ExtensionWindowBackend パッケージが保護されるようにしました。(Ied208

バグの修正

  • 視覚的コンテキストを受け入れるように ExtensionInterface API を更新しました。(I8e827

外部からの協力

  • DeviceState と WindowLayoutInfo を結合して、データに簡単にアクセスできるようにしました。(Id34f4

バージョン 1.0.0-alpha01

2020 年 2 月 27 日

androidx.window:window:1.0.0-alpha01androidx.window:window-extensions:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。 これは、Window Manager ライブラリの最初のリリースです。

新機能

  • DisplayFeature: この新しい API は、連続する平坦な画面サーフェスが蝶番や折りたたみの部分で途切れた状態を識別します。
  • DeviceState: この新しい API は、スマートフォンの定義済みの物理状態(CLOSEDOPENEDHALF_OPENED など)のリストの中から現在の物理状態を提供します。