Jetpack Compose zapewnia doskonałą wydajność od razu po zainstalowaniu. Skonfiguruj aplikację zgodnie ze sprawdzonymi metodami, aby uniknąć typowych pułapek i zoptymalizować wydajność aplikacji Compose.
Analiza porównawcza Jetpack Compose
Aby sprawdzić wydajność Jetpack Compose w porównaniu z widokami, używamy testów porównawczych, które koncentrują się na ważnych ścieżkach użytkownika w rzeczywistych warunkach, takich jak zimne uruchomienie aplikacji czy przewijanie listy lub siatki z obrazami. Przeprowadzamy te testy porównawcze za pomocą aplikacji Pokedex o otwartym kodzie źródłowym, porównując jej widoków i Compose implementacje.
Te testy porównawcze pokazują, że Compose 1.9 i nowsze wersje osiągają taką samą wydajność jak widoki w przypadku zacięć podczas przewijania.
Więcej informacji o dodatkowych danych i naszych metodach znajdziesz w artykule Testy porównawcze.
Kluczowych pojęć
Oto niektóre z kluczowych pojęć związanych z wydajnością w Compose:
- Fazy: zrozumienie faz kompozycji, układu i rysowania jest kluczowe do optymalizacji sposobu, w jaki Compose aktualizuje interfejs.
- Profile podstawowe: te profile wstępnie kompilują niezbędny kod, co przyspiesza uruchamianie aplikacji i zapewnia płynniejsze interakcje.
- Stabilność: zwiększ stabilność aplikacji, aby skuteczniej pomijać niepotrzebne ponowne kompozycje, co poprawi wydajność.
Prawidłowe skonfigurowanie aplikacji
Jeśli aplikacja działa słabo, może to być spowodowane problemem z konfiguracją. Pierwszym krokiem jest sprawdzenie tych opcji konfiguracji:
- Kompilacja w trybie wydania za pomocą R8: spróbuj uruchomić aplikację w trybie wydania. Tryb debugowania jest przydatny do wykrywania wielu problemów, ale wiąże się z obniżeniem wydajności i może utrudniać wykrywanie innych problemów. Aby zapewnić wydajną i efektywną kompilację do publikacji, włącz też optymalizację i zmniejszanie rozmiaru za pomocą kompilatora R8.
- Używanie profili podstawowych: profile podstawowe poprawiają wydajność dzięki wstępnej kompilacji kodu na potrzeby najważniejszych ścieżek użytkownika. Compose zawiera profil domyślny, ale najlepiej jest utworzyć też profil specyficzny dla aplikacji. Więcej informacji o profilach podstawowych znajdziesz w ogólnej dokumentacji dotyczącej wydajności Androida.
Narzędzia
Zapoznaj się z zestawem narzędzi, które pomogą Ci mierzyć i analizować wydajność aplikacji Compose.
Sprawdzone metody
Podczas tworzenia aplikacji za pomocą Compose pamiętaj o tych sprawdzonych metodach:
- Unikanie kosztownych obliczeń: używaj funkcji
remember, aby zapisywać w pamięci podręcznej wyniki kosztownych obliczeń. - Pomoc w przypadku układów leniwych: używaj parametru
keyaby udostępniać stabilne klucze do układów leniwych, co pozwoli zminimalizować niepotrzebne ponowne kompozycje. - Ograniczanie niepotrzebnych ponownych kompozycji: używaj funkcji
derivedStateOf, aby ograniczyć ponowne kompozycje w przypadku szybkiej zmiany stanu. - Odroczenie odczytu stanu: odraczaj odczyt stanu tak długo, jak to możliwe, umieszczając go w funkcjach lambda.
- Używanie modyfikatorów lambda do zmiany stanu: w przypadku często zmieniających się zmiennych stanu używaj modyfikatorów opartych na lambdach, takich jak
Modifier.offset { ... }. - Unikanie zapisów wstecznych: nigdy nie zapisuj stanu, który został już odczytany w komponencie.
Więcej informacji znajdziesz w przewodniku po sprawdzonych metodach.
Widoki
Jeśli zamiast Compose używasz widoków, zapoznaj się z przewodnikiem Poprawa wydajności układu.
Dodatkowe materiały
- Przewodnik po wydajności aplikacji: poznaj sprawdzone metody, biblioteki i narzędzia, które pomogą Ci poprawić wydajność na Androidzie.
- Sprawdzanie wydajności: sprawdzanie wydajności aplikacji.
- Analiza porównawcza: analiza porównawcza wydajności aplikacji.
- Uruchamianie aplikacji: optymalizacja uruchamiania aplikacji.
- Profile podstawowe: informacje o profilach podstawowych.