Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Zsynchronizowane przejścia między aplikacjami to funkcja Androida 9, która ulepsza dotychczasową architekturę przejść między aplikacjami. Gdy użytkownik otwiera, zamyka lub przełącza się między aplikacjami, proces SystemUI lub Launcher (ekran główny) wysyła żądanie, aby sterować animacją klatka po klatce z gwarantowaną synchronizacją animacji widoku i animacji okna. Gdy SystemUI lub Launcher rysuje nową klatkę w ramach animacji, wysyła żądanie dotyczące innej transformacji na animowanej powierzchni aplikacji, która określa, jak aplikacja jest komponowana na ekranie. Następnie oznacza to żądanie, transakcję powierzchni, która ma być zsynchronizowana z ramką, którą jest obecnie rysowana.
Umożliwia to tworzenie nowych animacji przełączania aplikacji, które nie są możliwe na Androidzie 8.x i starszych. Na przykład animacja uruchamiania aplikacji może płynnie przekształcać ikony na ekranie głównym w interfejs aplikacji, a animacja uruchamiania powiadomienia może przekształcać powiadomienia w interfejs aplikacji.
Przykłady i źródło
Informacje o tej funkcji znajdziesz w tych dokumentach.
Implementację referencyjną animacji uruchamiania powiadomienia znajdziesz w ActivityLaunchAnimator.kt.
Implementacja
W razie potrzeby możesz zaimplementować tę funkcję w Menu z aplikacjami/System UI lub skorzystać z implementacji AOSP w System UI/Menu z aplikacjami 3.
Weryfikacja
Aby sprawdzić wydajność animacji, zmierz wydajność aplikacji sterującej, np. SystemUI lub Launchera, podczas animacji zgodnie z opisem w artykule Testowanie wydajności UI.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Implement synchronized app transitions\n\nSynchronized App Transitions is a feature in Android 9\nthat enhances the existing app transition architecture. When a user opens,\ncloses, or switches between apps, the SystemUI or Launcher (homescreen) process\nsends a request to control the animation frame-by-frame with guaranteed\nsynchronization between view animations and window animations. When the SystemUI\nor Launcher draws a new frame as part of an animation, it requests a different\ntransform on the animating app surface that determines how the app is composed\non the screen, and marks the request, a surface transaction, to be synchronized\nwith the frame it's currently drawing.\n\nThis allows for new app transition animations that are not possible on Android\n8.x and lower. For example, the\n[app launch animation](/static/docs/core/display/images/app-launch-animation.mp4)\ncan transform homescreen icons seamlessly into the app surface and the\n[notification launch animation](/static/docs/core/display/images/notification-launch-animation.mp4)\ncan transform notifications into the app surface.\n\nExamples and source\n-------------------\n\nSee the following references for this feature.\n\n- [`ActivityOptions.makeRemoteAnimation`](https://android.googlesource.com/platform/frameworks/base/+/33a701a55c28dd20390acee1ba7881a500830d7d/core/java/android/app/ActivityOptions.java#843)\n- [`RemoteAnimationAdapter`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/view/RemoteAnimationAdapter.java)\n- [`RemoteAnimationRunner`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/view/IRemoteAnimationRunner.aidl)\n- [`Activity.registerRemoteAnimations`](https://android.googlesource.com/platform/frameworks/base/+/f84e2f60fec6f6d2ecfb3b90ddf075101f4b902f/core/java/android/app/Activity.java#7672)\n\nFor a reference implementation for the notification launch animation, see\n[`ActivityLaunchAnimator.kt`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/packages/SystemUI/animation/src/com/android/systemui/animation/ActivityLaunchAnimator.kt).\n\nImplementation\n--------------\n\nYou can implement this feature on Launcher/System UI as required or you can use\nthe AOSP implementation in SystemUI/Launcher3.\n| **Note:** This feature increases the load on the GPU and CPU during animations.\n\nValidation\n----------\n\nTo validate the performance of the animations, measure the performance of the\ncontrolling app, i.e. SystemUI or Launcher, during the animations as described\nin\n[Test UI performance](https://developer.android.com/training/testing/performance)."]]