Etapy tworzenia i skuteczność

Gdy Compose aktualizuje klatkę, przechodzi przez 3 fazy:

  • Kompozycja: Compose określa, co ma się wyświetlać. Uruchamia funkcje kompozycyjne i tworzy drzewo interfejsu.
  • Układ: Compose określa rozmiar i położenie każdego elementu w drzewie interfejsu.
  • Rysowanie: Compose renderuje poszczególne elementy interfejsu.

Compose może inteligentnie pominąć dowolną z tych faz, jeśli nie jest ona potrzebna. Załóżmy na przykład, że pojedynczy element graficzny przełącza się między 2 ikonami o tym samym rozmiarze. Ponieważ rozmiar tego elementu się nie zmienia, a do drzewa interfejsu nie są dodawane ani usuwane żadne elementy, Compose może pominąć fazy kompozycji i układu oraz przerysować ten jeden element.

Błędy w kodzie mogą jednak utrudnić Compose określenie, które fazy można bezpiecznie pominąć. W takim przypadku Compose uruchamia wszystkie 3 fazy, co może spowolnić interfejs. Dlatego wiele sprawdzonych metod dotyczących skuteczności pomaga Compose pomijać fazy, których nie musi wykonywać.

Więcej informacji znajdziesz w przewodniku Fazy Jetpack Compose.

Zasady ogólne

Istnieje kilka ogólnych zasad, których należy przestrzegać, aby poprawić ogólną skuteczność:

  • Tam, gdzie to możliwe, przenoś obliczenia poza funkcje kompozycyjne. Funkcje kompozycyjne mogą wymagać ponownego uruchomienia za każdym razem, gdy zmienia się interfejs. Każdy kod umieszczony w funkcji kompozycyjnej jest wykonywany ponownie, potencjalnie dla każdej klatki animacji. Ogranicz kod funkcji kompozycyjnej tylko do tego, co jest potrzebne do utworzenia interfejsu.
  • Odłóż odczytywanie stanu tak długo, jak to możliwe. Przenosząc odczytywanie stanu do podrzędnej funkcji kompozycyjnej lub późniejszej fazy, możesz zminimalizować ponowne komponowanie lub całkowicie pominąć fazę kompozycji. Możesz to zrobić, przekazując funkcje lambda zamiast wartości stanu w przypadku często zmieniającego się stanu oraz preferując modyfikatory oparte na lambdach, gdy przekazujesz często zmieniający się stan. Przykład tej techniki znajdziesz w sekcji Odłóż odczytywanie tak długo, jak to możliwe w artykule Przestrzeganie sprawdzonych metod.

Dodatkowe materiały