Wydajność w Wear OS jest kluczowym czynnikiem, 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 stosuj się do nich, 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 aktualizacji znajdziesz w artykule Deklarowanie zależności. Więcej informacji znajdziesz na naszym blogu w artykule 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, aby system mógł je 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:
- Użyj testów makrobenchmarkowych.
- Użyj określonych poleceń ADB, aby sprawdzić stan konfiguracji profilu aplikacji. Kroki dotyczące obu tych technik są opisane w przewodniku po pomiarze i weryfikacji wydajności.
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 znajdziesz informacje o R8, w tym najważniejsze kroki 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 na potrzeby 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 rzeczywistych urządzeniach z aplikacjami uruchomionymi z opcjami kompilacji wydania.
Podczas testów porównawczych używaj jednak wariantu kompilacji benchmarkowej, który różni się od debugowania wydania. Szczegółowe informacje znajdziesz w przewodniku po konfiguracji makrobenchmarków.
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 nieużywane. Aby ręcznie wywołać to zadanie, uruchom to polecenie po uruchomieniu aplikacji i odczekaniu 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 makrobenchmarkowe
Makrobenchmarki 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ów 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
Dzięki nowym typom animacji wprowadzonym 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. Na podstawie tych informacji sprawdź zawartość profili podstawowych i zidentyfikuj 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 zidentyfikowanie ulepszeń wydajności.
Na przykład za pomocą narzędzi takich jak Edycja na żywo i podglądy elementów kompozycyjnych, możesz zidentyfikować elementy interfejsu, które się zacinają, oraz powiązane z nimi 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 najnowszymi wiadomościami i filmami w przewodniku po wydajności aplikacji.