同期アプリの切り替えの実装

同期アプリの切り替えは Android 9 の機能で、既存のアプリの移行アーキテクチャを強化します。ユーザーがアプリを開く、閉じる、またはアプリ間での切り替えを行うと、SystemUI またはランチャー(ホーム画面)のプロセスは、ビュー アニメーションとウィンドウ アニメーションの同期を確保して、フレームごとにアニメーションを制御するリクエストを送信します。SystemUI またはランチャーがアニメーションの一環として新しいフレームを描画すると、画面上でのアプリの構成方法を決定するアニメーション アプリのサーフェスに別の変換をリクエストし、現在描画しているフレームに同期されるように、サーフェスのトランザクションのリクエストにマークを付けます。

これにより、Android 8.x 以前では不可能な、新しいアプリの遷移アニメーションが可能になります。たとえば、アプリの起動アニメーションは、ホーム画面のアイコンをアプリのサーフェスにシームレスに移行でき、通知の起動アニメーションは、通知をアプリのサーフェスに移行できます。

例とソース

この機能については、次のリファレンスをご覧ください。

通知の起動アニメーションのリファレンス実装については、ActivityLaunchAnimator.kt をご覧ください。

実装

必要に応じてランチャーやシステム UI にこの機能を実装するか、SystemUI や Launcher3 で AOSP 実装を使用できます。

検証

アニメーションのパフォーマンスを検証するには、テスト UI のパフォーマンスで説明されているように、アニメーション中に、SystemUI やランチャーなどの制御アプリのパフォーマンスを測定します。