Wydajność Jetpack Compose na Wear OS

Wydajność w Wear OS jest kluczowym aspektem, który należy wziąć pod uwagę w przypadku aplikacji, ponieważ wiele urządzeń z Wear OS ma ograniczone zasoby procesora i GPU w porównaniu z większymi urządzeniami mobilnymi. Wraz z wprowadzeniem bogatszych animacji i efektów dynamicznych w Material 3 Expressive należy sprawdzić i poprawić wydajność kluczowych przepływów pracy w aplikacji.

Aby skonfigurować i opracować aplikację pod kątem optymalnej wydajności za pomocą Jetpack Compose, skorzystaj z przewodnika po wydajności Jetpack Compose. W tym dokumencie opisujemy niektóre techniki opisane w tym przewodniku.

Utwórz strategie pomiaru wydajności i postępuj zgodnie z nimi, aby sprawdzić, czy te techniki działają w Twojej aplikacji zgodnie z oczekiwaniami.

Podstawowe techniki poprawy wydajności

Zacznij od najbardziej skutecznych typów narzędzi do poprawy wydajności: profili podstawowych (w tym profili uruchamiania) i optymalizatora kodu R8.

Zaktualizuj zależność Compose do wersji 1.8 lub nowszej, która wprowadziła kilka ważnych nowych funkcji i poprawiła ogólną stabilność biblioteki. Instrukcje dotyczące aktualizacji znajdziesz w artykule Deklarowanie zależności. Więcej informacji znajdziesz na naszym blogu o wersji 1.8 oraz w prezentacji What's New in Compose I/O.

Profile podstawowe

Aby poprawić wydajność aplikacji, użyj profili podstawowych. Pogrupuj klasy i metody, które reprezentują kluczowe przepływy pracy w aplikacji, które system może wstępnie skompilować za pomocą profilu podstawowego. Może to skrócić czas uruchamiania, zmniejszyć liczbę klatek zacinających się i zapewnić dodatkowe ulepszenia wydajności.

Każda biblioteka Jetpack Compose jest dostarczana z własnymi regułami profilu. Gdy aplikacja zależy od biblioteki, reguły profilu biblioteki są automatycznie scalane i rozpowszechniane z plikiem APK aplikacji na potrzeby wstępnej kompilacji.

Sprawdź profile podstawowe, korzystając z tych technik:

Profile uruchamiania

Profile uruchamiania, które są podzbiorem profili podstawowych, dodatkowo optymalizują klasy i metody, które zawierają, aby skrócić czas oczekiwania na uruchomienie aplikacji.

Dodanie profilu uruchamiania zwiększy rozmiar pliku APK aplikacji, dlatego przed dodaniem go do wersji produkcyjnej oceń kompromis między rozmiarem pliku APK a czasem oczekiwania na uruchomienie.

Aby rozpocząć, przeczytaj artykuł Tworzenie profilu uruchamiania.

R8

Użyj kompilatora R8, aby zmniejszyć rozmiar aplikacji i je zoptymalizować. R8 usuwa nieużywany kod i zasoby, przepisuje kod, aby zoptymalizować wydajność w czasie działania, i wykonuje inne działania.

W przewodnikach z serii Poprawa wydajności przeczytaj informacje o R8, w tym o najważniejszych krokach usuwania nieużywanych zasobów.

Pomiar i weryfikacja wydajności

Aby dowiedzieć się więcej o ogólnych strategiach pomiaru wydajności w Androidzie, przeczytaj artykuł Omówienie pomiaru wydajności aplikacji. W tej sekcji opisujemy niektóre techniki omówione w tej dokumentacji.

Wybieranie wariantu kompilacji do pomiarów

Tryb debugowania jest przydatny do wykrywania wielu problemów, ale wiąże się ze znacznym obniżeniem wydajności, nie używa profili podstawowych i może utrudniać wykrywanie problemów z kodem, które mogą wpływać na wydajność.

Aby dokładnie poznać wydajność aplikacji, uruchom ją w trybie wydania.

Ostateczne wnioski dotyczące wydajności wyciągaj tylko na podstawie testów przeprowadzonych na aplikacjach uruchomionych z opcjami kompilacji do publikacji i na rzeczywistych urządzeniach.

Podczas testów porównawczych używaj jednak wariantu kompilacji benchmark, który różni się od debugowania wydania. Szczegółowe informacje znajdziesz w przewodniku po konfiguracji makrobenchmark.

Sprawdzanie profili podstawowych aplikacji

Zacznij od sprawdzenia stanu profilu:

adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME

Jeśli stan nie jest równy status=speed-profile, reguły profilu nie zostały jeszcze zastosowane do optymalizacji aplikacji.

Reguły są stosowane za pomocą zadania w tle, które jest uruchamiane, gdy urządzenie jest naładowane i nie jest używane. Aby ręcznie wywołać to zadanie, uruchom to polecenie po uruchomieniu aplikacji i upływie wystarczającego czasu, aby instalator profilu mógł uruchomić profil w tle. Ten proces trwa zwykle około 40 sekund.

adb shell cmd package bg-dexopt-job

Następnie ponownie uruchom poprzednie polecenie, aby sprawdzić, czy stan to speed-profile.

W sytuacjach, w których optymalizacja następuje podczas instalacji, przeczytaj artykuł Wczytywanie profilu podstawowego.

UI Automator API

Interfejs API UI Automator automatyzuje interakcje programowo. Użyj tego interfejsu API, aby porównać dyskretne elementy interfejsu podczas sprawdzania ścieżek użytkownika pod kątem potencjalnych optymalizacji.

Testy makrobenchmark

Makrobenchmark testują większe przypadki użycia aplikacji, zwłaszcza uruchamianie aplikacji i złożone manipulacje interfejsem. Aby rozpocząć, zapoznaj się z przewodnikiem po implementacji.

Przykład użycia makrobenchmark do sprawdzenia wydajności profili podstawowych znajdziesz w przykładach wydajności w GitHubie.

Biblioteka JankStats

Użyj biblioteki JankStats, aby śledzić i analizować problemy z wydajnością w aplikacjach.

Przykład znajdziesz w przykładzie JankStats w GitHubie.

Śledzenie systemu

W przypadku nowych typów animacji wprowadzonych w Material 3 Expressive użyj funkcji śledzenia systemu w Android Studio, aby sprawdzić i zdiagnozować opóźnienia w potencjalnie problematycznych ścieżkach użytkownika. Dzięki tym informacjom możesz sprawdzić zawartość profili podstawowych i zidentyfikować potencjalne nieefektywności w logice kodu.

Dodatkowe narzędzia

Oprócz narzędzi do poprawy wydajności możesz używać innych narzędzi, które zwiększają produktywność i ułatwiają pracę.

Narzędzia zwiększające produktywność w Android Studio

Android Studio udostępnia kilka narzędzi, które mogą skrócić czas potrzebny na identyfikowanie ulepszeń wydajności.

Na przykład za pomocą narzędzi takich jak Edycja na żywo i podglądy elementów kompozycyjnych, możesz identyfikować elementy interfejsu, które się zacinają, oraz powiązane obszary w kodzie aplikacji, aby poprawić wydajność.

Przeprowadź wszystkie ostateczne testy wydajności na zestawie fizycznych urządzeń z Wear OS , które dokładnie reprezentują grupę docelowych użytkowników.

Jest to szczególnie ważne podczas migracji do Material 3 Expressive, który wprowadza do aplikacji funkcje takie jak elastyczne czcionki i przekształcanie kształtów.

Jeśli migrujesz z widoków, zapoznaj się z przewodnikiem po migracji i naszymi sprawdzonymi metodami dotyczącymi wydajności Jetpack Compose, aby sprawdzić, czy interfejsy aplikacji działają wydajnie podczas korzystania z Jetpack Compose.

Inne zasoby

Aby być na bieżąco z najnowszymi informacjami o wydajności Androida, zapoznaj się z sekcją Najnowsze wiadomości i filmy w przewodniku po wydajności aplikacji.