Wydajność Jetpack Compose na Wear OS

Wydajność na Wear OS jest kluczowym czynnikiem 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 dynamicznych efektów w Materialu 3 Expressive warto sprawdzić i poprawić wydajność kluczowych procesów w aplikacji.

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

Twórz i stosuj strategie pomiaru skuteczności, aby sprawdzać, czy te techniki działają w przypadku Twojej aplikacji zgodnie z oczekiwaniami.

Podstawowe techniki zwiększania wydajności

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

Zaktualizuj zależność Compose do wersji 1.8 lub nowszej, która wprowadza kilka ważnych nowych funkcji i poprawia ogólną stabilność biblioteki. Instrukcje znajdziesz w sekcji Deklarowanie zależności. Więcej informacji znajdziesz na naszym blogu o wersji 1.8 oraz w prezentacji Co nowego w Compose na konferencji I/O.

Profile podstawowe

Aby poprawić wydajność aplikacji, używaj profili podstawowych. Grupuj 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ę niestabilnych klatek i zapewnić dodatkowe ulepszenia wydajności.

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

Zweryfikuj profile podstawowe, korzystając z tych technik:

  • Używaj testów makrobenchmarkowych.
  • Użyj konkretnych poleceń ADB, aby sprawdzić stan konfiguracji profilu aplikacji. Instrukcje dotyczące obu tych technik znajdziesz w przewodniku Pomiar i weryfikacja wydajności.

Profile startupów

Profile uruchamiania to podzbiór profili podstawowych, który dodatkowo optymalizuje klasy i metody, które zawiera, aby skrócić czas oczekiwania na uruchomienie aplikacji.

Dodanie profilu uruchamiania zwiększy rozmiar pliku APK aplikacji, więc zanim dodasz go do wersji produkcyjnej, oceń kompromis między rozmiarem pliku APK a opóźnieniem uruchamiania.

Na początek przeczytaj artykuł Tworzenie profilu startupu.

R8

Używaj kompilatora R8 do zmniejszania i optymalizowania aplikacji. R8 usuwa nieużywany kod i zasoby, przepisuje kod, aby zoptymalizować wydajność środowiska wykonawczego, i wykonuje inne działania.

W przewodnikach Poprawianie wydajności – omówienie znajdziesz informacje o R8, w tym najważniejsze kroki usuwania nieużywanych zasobów.

Pomiar i weryfikacja skuteczności

Ogólne strategie pomiaru skuteczności na Androidzie znajdziesz w artykule Omówienie pomiaru skutecznoś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 korzysta z 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 działających z opcjami kompilacji wersji i na rzeczywistych urządzeniach.

Podczas testów porównawczych używaj jednak wariantu kompilacji porównawczej, który różni się od debugowania wersji. Szczegółowe informacje znajdziesz w przewodniku po konfiguracji testów porównawczych na poziomie makro.

Sprawdzanie poprawności profili bazowych aplikacji

Zacznij od sprawdzenia stanu swojego profilu:

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

Jeśli stan nie jest oznaczony jako status=speed-profile, reguły profilu nie zostały jeszcze zastosowane w celu optymalizacji aplikacji.

Reguły są stosowane za pomocą zadania w tle, które jest uruchamiane, gdy urządzenie jest ładowane i nie jest używane. Aby ręcznie wywołać to działanie, uruchom to polecenie po uruchomieniu aplikacji i upłynięciu wystarczającej ilości czasu, aby instalator profilu mógł zainicjować profil w tle. Zwykle trwa to 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 przypadku sytuacji, w których optymalizacja następuje podczas instalacji, zapoznaj się z sekcją Wczytywanie z boku profilu podstawowego.

UI Automator API

Interfejs UI Automator API automatyzuje interakcje w sposób programowy. Użyj tego interfejsu API, aby porównać poszczególne elementy interfejsu podczas sprawdzania ścieżek użytkowników pod kątem potencjalnych optymalizacji.

Testy Macrobenchmark

Testy makro porównawcze sprawdzają 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ów do weryfikacji wydajności profili podstawowych znajdziesz w przykładowych testach wydajności w GitHubie.

Biblioteka JankStats

Używaj biblioteki JankStats do śledzenia i analizowania problemów z wydajnością w aplikacjach.

Przykład znajdziesz w przykładowej aplikacji JankStats w GitHubie.

Śledzenie systemu

Dzięki nowym typom animacji wprowadzonym w Material 3 Expressive możesz używać funkcji System Trace w Android Studio, aby sprawdzać i diagnozować opóźnienia w potencjalnie problematycznych ścieżkach użytkowników. Na podstawie tych informacji możesz sprawdzić zawartość profili podstawowych i zidentyfikować potencjalne nieefektywności w logice kodu.

Dodatkowe narzędzia

Oprócz narzędzi do zwiększania wydajności możesz używać innych narzędzi, które pomogą Ci zwiększyć produktywność i usprawnić przepływ pracy.

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 możliwości poprawy wydajności.

Możesz na przykład używać narzędzi takich jak Edycja na żywoComposable Previews, aby identyfikować niestabilne elementy interfejsu i powiązane z nimi obszary w kodzie aplikacji, co pozwala wprowadzać ulepszenia wydajności.

Przeprowadź wszystkie końcowe testy wydajności na zestawie fizycznych urządzeń z Wear OS, które dokładnie reprezentują Twoją grupę docelową.

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

Jeśli migrujesz z widoków, zapoznaj się z naszym przewodnikiem po migracjisprawdzonymi 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.