Wydajność na Wear OS jest kluczową kwestią 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 procesów w aplikacji.
Skorzystaj z przewodnika Wydajność Jetpack Compose, aby skonfigurować i utworzyć aplikację o optymalnej wydajności za pomocą Jetpack Compose. W tym dokumencie opisujemy niektóre techniki opisane w tym przewodniku.
Twórz i stosuj strategie pomiaru wydajności, aby sprawdzać, czy te techniki działają w Twojej aplikacji zgodnie z oczekiwaniami.
Podstawowe techniki poprawy wydajności
Zacznij od najskuteczniejszych 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 dotyczące aktualizowania znajdziesz w sekcji Deklarowanie zależności. Więcej informacji znajdziesz w poście na blogu o wersji 1.8 i w prelekcji z I/O Co nowego w Compose.
Profile podstawowe
Aby poprawić wydajność aplikacji, użyj profili podstawowych. Grupuj klasy i metody, które reprezentują kluczowe przepływy pracy aplikacji, które system może wstępnie skompilować za pomocą profilu podstawowego. Może to skrócić czas uruchamiania, zmniejszyć liczbę klatek z zacięciami i zapewnić dodatkowe ulepszenia wydajności.
Każda biblioteka Jetpack Compose jest dostarczana z własnymi regułami profilu. Jeśli aplikacja zależy od biblioteki, reguły profilu biblioteki są automatycznie scalane i rozpowszechniane z pakietem APK aplikacji na potrzeby wstępnej kompilacji.
Profile podstawowe możesz zweryfikować za pomocą tych metod:
- Użyj testów makrobenchmark.
- Użyj konkretnych poleceń ADB, aby sprawdzić stan konfiguracji profilu aplikacji. Instrukcje dotyczące obu tych technik znajdziesz w przewodniku po pomiarach i weryfikacji skuteczności.
Profile startowe
Profile startowe, które są podzbiorem profili podstawowych, dodatkowo optymalizują zawarte w nich klasy i metody, 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ń, czy warto zwiększyć rozmiar pliku APK, aby skrócić czas oczekiwania na uruchomienie.
Aby rozpocząć, przeczytaj artykuł Tworzenie profilu start-upu.
R8
Używaj kompilatora R8 do zmniejszania i optymalizowania aplikacji. R8 usuwa nieużywany kod i zasoby, przepisuje kod w celu optymalizacji wydajności środowiska wykonawczego i wykonuje inne czynności.
W przewodnikach Poprawianie wydajności – omówienie przeczytaj uwagi dotyczące R8, w tym kluczowe kroki usuwania nieużywanych zasobów.
Pomiar i weryfikacja skuteczności
Aby dowiedzieć się więcej o ogólnych strategiach pomiaru wydajności na Androidzie, przeczytaj artykuł Omówienie pomiaru wydajności aplikacji. W tej sekcji opisujemy niektóre techniki omówione w tej dokumentacji.
Wybierz wariant kompilacji do pomiarów
Tryb debugowania jest przydatny do wykrywania wielu problemów, ale wiąże się ze znacznym obciąż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 wersji.
Ostateczne wnioski dotyczące wydajności wyciągaj tylko na podstawie testów przeprowadzonych z aplikacjami działającymi z opcjami kompilacji do publikacji i na rzeczywistych urządzeniach.
Jednak podczas testów porównawczych używaj wariantu kompilacji testu porównawczego, który różni się od debugowania wersji w kilku kluczowych kwestiach. Szczegółowe informacje znajdziesz w przewodniku po konfiguracji Macrobenchmark.
Sprawdzanie poprawności profili podstawowych aplikacji
Zacznij od sprawdzenia stanu swojego profilu:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
Jeśli stan nie jest ustawiony na 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 naładowane i nieaktywne. Aby uruchomić to ręcznie, po uruchomieniu aplikacji i upływie czasu wystarczającego na uruchomienie profilu w tle przez instalator profilu uruchom to polecenie. 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 Instalowanie profilu podstawowego z nieoficjalnych źródeł.
UI Automator API
Interfejs UI Automator API automatyzuje interakcje w sposób zautomatyzowany. Używaj tego interfejsu API do testowania porównawczego poszczególnych elementów interfejsu podczas sprawdzania ścieżek użytkowników pod kątem potencjalnych optymalizacji.
Testy Macrobenchmark
Makrotesty porównawcze testują większe przypadki użycia aplikacji, zwłaszcza jej uruchamianie i złożone operacje na interfejsie. Aby rozpocząć, zapoznaj się z przewodnikiem po implementacji.
Przykład użycia testów makro do sprawdzania wydajności profili podstawowych znajdziesz w przykładowych testach wydajności na GitHubie.
Biblioteka JankStats
Używaj biblioteki JankStats do śledzenia i analizowania problemów z wydajnością aplikacji.
Przykład znajdziesz w przykładowej aplikacji JankStats na 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 zweryfikować zawartość profili bazowych i zidentyfikować potencjalne nieefektywne fragmenty kodu.
Dodatkowe narzędzia
Oprócz narzędzi do poprawy wydajności możesz używać innych narzędzi, aby zwiększyć produktywność i usprawnić przepływ pracy.
Narzędzia biurowe 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 Live Edit i Composable Previews możesz identyfikować elementy interfejsu, które powodują zacinanie się, oraz powiązane z nimi obszary w kodzie aplikacji, aby poprawić wydajność.
Przeprowadź wszystkie końcowe testy wydajności na zestawie fizycznych urządzeń z Wear OS, które dokładnie odzwierciedlają docelową bazę użytkowników.
Jest to szczególnie ważne podczas migracji do Material 3 Expressive, który wprowadza do aplikacji funkcje takie jak czcionki elastyczne i przekształcanie kształtów.
Jeśli przechodzisz z widoków, zapoznaj się z przewodnikiem po migracji i 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.