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 żądanie (transakcję powierzchni) do zsynchronizowania z ramką, którą obecnie rysuje.
Pozwala to tworzyć nowe animacje przejść do aplikacji, które nie są dostępne 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
Poniżej znajdziesz informacje na temat tej funkcji.
ActivityOptions.makeRemoteAnimation
RemoteAnimationAdapter
RemoteAnimationRunner
Activity.registerRemoteAnimations
Referencyjną implementację animacji uruchamiania powiadomienia znajdziesz tutaj: ActivityLaunchAnimator.kt
.
Implementacja
Możesz w razie potrzeby wdrożyć tę funkcję w Menu z aplikacjami lub UI systemu. Możesz też skorzystać z implementacji AOSP w interfejsie SystemUI/Launcher3.
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.