Wydarzenia i programy

Pełna optymalizacja: podsumowanie Tygodnia wyróżnień za skuteczność

3 minuty czytania
Wyświetl profil Bena Weissa Wyświetl profil Charlesa Mungera
Ben Weiss & Sara Hamilton

W zeszłym tygodniu skupiliśmy się na udostępnianiu sprawdzonych metod i wskazówek, które pomagają przyspieszyć działanie aplikacji na Androida, zmniejszyć ich rozmiar i zwiększyć stabilność. Od podstawowych możliwości optymalizatora R8 i optymalizacji z wykorzystaniem profili po poprawę wydajności dzięki Jetpack Compose i nowy przewodnik dotyczący zwiększania wydajności aplikacji – omówiliśmy narzędzia niewymagające dużego nakładu pracy, ale przynoszące duże korzyści, które są potrzebne do tworzenia wydajnych aplikacji.

Ten post to indeks i mapa drogowa, dzięki którym możesz wracać do tych zasobów, gdy tylko zechcesz zoptymalizować aplikację. Oto 5 najważniejszych wniosków z naszej wspólnej podróży.

Używaj optymalizatora R8, aby przyspieszyć działanie aplikacji

Najbardziej skuteczną zmianą, która nie wymaga dużego nakładu pracy, jest pełne włączenie optymalizatora R8. Nie tylko zmniejsza on rozmiar aplikacji, ale też przeprowadza dogłębną optymalizację całego programu, aby zasadniczo przepisać kod pod kątem wydajności. Sprawdź reguły Keep i ponownie włącz R8 w zadaniach inżynieryjnych.

Pomoże Ci w tym nasza zaktualizowana i rozszerzona dokumentacja optymalizatora R8.

Po włączeniu pełnego trybu R8 Reddit odnotował 40% szybsze uruchamianie „na zimno” i 30% mniej błędów ANR.

Pełne studium przypadku znajdziesz na naszym blogu.

image.png

Inżynierowie Disney+ inwestują w wydajność aplikacji i optymalizują wrażenia użytkowników. Czasami nawet pozornie niewielkie zmiany mogą mieć ogromny wpływ. Podczas sprawdzania konfiguracji R8 zespół zauważył, że używana jest flaga -dontoptimize. Po włączeniu optymalizacji przez usunięcie tej flagi zespół Disney+ zauważył znaczną poprawę wydajności aplikacji.

image.png

Gdy następnym razem ktoś zapyta Cię, co możesz zrobić, aby poprawić wydajność aplikacji, po prostu prześlij mu link do tego posta.

Więcej informacji znajdziesz w poście na blogu z dnia 1: Używanie R8 do zmniejszania rozmiaru aplikacji, optymalizowania jej i przyspieszania jej działania

Wskazówki dotyczące zwiększania wydajności

Profile podstawowe skutecznie eliminują potrzebę kompilacji Just in Time, co poprawia szybkość uruchamiania, przewijania, animacji i ogólną wydajność renderowania.Profile uruchamiania sprawiają, że uruchamianie aplikacji jest jeszcze szybsze, dzięki inteligentnemu uporządkowaniu plików classes.dex aplikacji.

Aby dowiedzieć się więcej o tym, jak ważne są profile podstawowe dla wydajności aplikacji, przeczytaj blog inżynieryjny Meta , w którym firma ta opisała, jak profile podstawowe poprawiły różne krytyczne wskaźniki wydajności w jej aplikacjach nawet o 40%.

W Jetpack Compose 1.10 nadal zwiększamy wydajność Jetpack Compose. Funkcje takie jak wstrzymywanie kompozycji i konfigurowalne okno pamięci podręcznej są kluczowe do utrzymania płynnego przewijania w przypadku złożonych elementów listy.Więcej informacji na ten temat znajdziesz w najnowszym odcinku #TheAndroidShow.

Więcej informacji znajdziesz w poście na blogu z środy: Dalsze rozważania na temat wydajności

Mierzenie wydajności może być proste

Nie można zarządzać tym, czego się nie mierzy. Nasz przewodnik po zwiększaniu wydajności dzieli proces pomiaru na 5 etapów, zaczynając od łatwo dostępnych danych i przechodząc do zaawansowanych narzędzi lokalnych.

Na poziomie 1 nauczymy Cię, jak korzystać z łatwo dostępnych danych z Android Vitals, które zawierają dane z terenu dotyczące błędów ANR, awarii i nadmiernego wykorzystania baterii.

Nauczymy Cię też, jak zwiększać poziom. Na przykład pokażemy, jak osiągnąć poziom 3 dzięki lokalnemu testowaniu wydajności za pomocą Jetpack Macrobenchmark i nowego interfejsu API UiAutomator 2.4 , aby dokładnie mierzyć i weryfikować wszelkie zmiany w wydajności aplikacji.

Więcej informacji znajdziesz w poście na blogu z czwartku: [Link to Thursday's Blog: Leveling Guide for your Performance Journey]

Ulepszone debugowanie wydajności

Zaawansowana optymalizacja nie powinna oznaczać nieczytelnych raportów o awariach. Nowe funkcje mają pomóc Ci w debugowaniu R8 i pracy w tle:

Automatyczne ponowne śledzenie Logcata

Począwszy od Android Studio Narwhal, ślady stosu można automatycznie deobfuskować w oknie Logcat. Dzięki temu możesz od razu zobaczyć i debugować wszelkie awarie w wersji gotowej do produkcji.

Wąskie reguły Keep

We wtorek wyjaśniliśmy reguły Keep potrzebne do naprawiania awarii w czasie działania, podkreślając, że lepiej jest pisać konkretne reguły na poziomie elementów niż używać zbyt szerokich symboli wieloznacznych. Ponieważ jest to ważny temat, przygotowaliśmy też film.

Dzięki nowemu sprawdzeniu lint pod kątem szerokich reguł Keep w Android Studio Otter 3 Feature Drop masz też dostęp do tej funkcji.

image.png

Opublikowaliśmy też nowe wskazówki dotyczące testowania i rozwiązywania problemów z konfiguracją R8, aby pomóc Ci w prawidłowym skonfigurowaniu aplikacji.

Więcej informacji znajdziesz w poście na blogu z wtorku: Konfigurowanie reguł Keep w R8 i rozwiązywanie problemów z nimi

Praca w tle

Udostępniliśmy wskazówki dotyczące debugowania typowych scenariuszy, które mogą wystąpić podczas planowania zadań za pomocą WorkManagera.

Inspektor zadań w tle przedstawia zadania WorkManagera w postaci wizualnej i wykresu, co pomaga w debugowaniu przyczyn opóźnienia lub niepowodzenia zaplanowanej pracy. Odświeżona strona docelowa dokumentacji dotyczącej pracy w tle strona docelowa zawiera informacje o interfejsach API specyficznych dla zadań, które są zoptymalizowane pod kątem konkretnych przypadków użycia, co pomaga w osiągnięciu bardziej niezawodnego wykonywania.

Więcej informacji znajdziesz w poście na blogu z środy: Rozważania na temat wydajności pracy w tle

Optymalizacja wydajności to ciągły proces

Jeśli w tym tygodniu udało Ci się włączyć pełny tryb R8, następnym krokiem jest zintegrowanie wydajności z planem rozwoju produktu za pomocą wyniku wydajności aplikacji. Ten ustandaryzowany framework pomaga znaleźć działania, które przynoszą największe korzyści w zakresie ciągłego doskonalenia.

Tydzień zakończyliśmy sesją pytań i odpowiedzi #AskAndroid Live , podczas której inżynierowie odpowiadali na najtrudniejsze pytania dotyczące R8, optymalizacji z wykorzystaniem profili i innych kwestii. Jeśli Cię to ominęło, poszukaj powtórki.

Dziękujemy, że do nas dołączyłeś(-aś)! Teraz możesz zacząć tworzyć i kontynuować pracę.

Autorzy:
Czytaj dalej