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 Material 3 Expressive należy 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 przy użyciu 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 Twojej aplikacji zgodnie z oczekiwaniami.
Podstawowe techniki zwiększania wydajności
Zacznij od najbardziej skutecznych typów narzędzi do optymalizacji wydajności: profili bazowych (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 znajdziesz w sekcji Deklarowanie zależności. Więcej informacji znajdziesz w 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 dystrybuowane 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 skutecznoś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.
Aby rozpocząć, 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 skuteczności 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 bazowych 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 nieaktywne. Aby ręcznie wywołać to zdarzenie, 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 artykułem Wczytywanie z boku profilu podstawowego.
UI Automator API
UI Automator API automatyzuje interakcje w sposób zautomatyzowany. 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 makrobenchmarkowe
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 serwisie GitHub.
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 skuteczności możesz używać innych narzędzi, które poprawią Twoją produktywność i 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 Live Edit i Composable Previews, aby identyfikować niestabilne elementy interfejsu i powiązane z nimi obszary w kodzie aplikacji, co pozwoli Ci zwiększyć wydajność.
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 do aplikacji funkcje takie jak elastyczne czcionki i przekształcanie kształtów.
Jeśli migrujesz z widoków, zapoznaj się z naszym przewodnikiem po migracji i sprawdzonymi metodami dotyczącymi wydajności Jetpack Compose, aby sprawdzić, czy interfejsy Twojej aplikacji działają wydajnie podczas korzystania z Jetpack Compose.
Inne materiały
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.