Aplikacja ma niską wydajność, jeśli reaguje wolno, wyświetla poruszone animacje, zawiesza się lub zużywa zbyt dużo energii. Rozwiązywanie problemów z wydajnością wymaga profilowania aplikacji lub identyfikowania obszarów, w których aplikacja nieefektywnie korzysta z zasobów, takich jak procesor, pamięć, grafika czy bateria urządzenia. W tym temacie opisujemy narzędzia i techniki Android Studio, które pomogą Ci rozwiązać typowe problemy ze skutecznością.
Aby dowiedzieć się, jak uruchamiać samodzielne narzędzia do profilowania bez uruchamiania całego środowiska IDE Android Studio (tylko w systemie Windows lub Linux), zapoznaj się z artykułem Uruchamianie samodzielnego narzędzia do profilowania.
Wymagania
Aby przeprowadzić profilowanie aplikacji, zalecamy:
Aplikacja z wersją kompilacji wersji, w której włączono konfigurację pliku manifestu
profileable
, zwana też aplikacją z profilowaniem. Domyślnie ta konfiguracja ma wartość „true” (prawda). Aby sprawdzić lub zmienić tę konfigurację, otwórz plik manifestu lub plikAndroidManifest.xml
aplikacji i poszukaj konfiguracji manifestuprofileable
w sekcji<application>
:<profileable android:shell="true" />
Wirtualne lub fizyczne urządzenie testowe z interfejsem API na poziomie 29 lub nowszym i Google Play.
Wtyczka Android Gradle w wersji 7.3 lub nowszej.
Aplikacje z możliwością profilowania a aplikacje z możliwością debugowania
Aplikacja z możliwością profilowania umożliwia wykonywanie większości typowych zadań profilowania, ale jeśli chcesz rejestrować przydziały Java/Kotlin lub zrzut stosu, skorzystaj z aplikacji debuggable. Debugowany proces aplikacji i urządzenie z poziomem interfejsu API 26 lub nowszym umożliwiają też wyświetlanie osi czasu Interakcja, która pokazuje interakcje użytkownika i zdarzenia z cyklu życia aplikacji w widokach zadań, które ją udostępniają.
Aplikacja z możliwością debugowania opiera się na wariancie kompilacji debug
i pozwala korzystać z narzędzi programistycznych, takich jak debuger. Ma jednak wpływ na wydajność. Profilowalna aplikacja opiera się na wariancie kompilacji aplikacji release
i umożliwia podzbiór typowych zadań profilowania bez dodatkowej wydajności kompilacji do debugowania.
Tworzenie i uruchamianie aplikacji, której można stworzyć profil
Aby skompilować i uruchomić aplikację, którą można profilować, w Android Studio wykonaj te czynności:
- Utwórz konfigurację uruchamiania/debugowania, jeśli jeszcze jej nie masz.
- Wybierz wariant kompilacji wersji (Kompilacja > Wybierz wariant kompilacji).
- Kliknij Więcej działań > Profil „aplikacja” z minimalnym obciążeniem lub Profil „aplikacja” z pełnymi danymi („aplikacja” to nazwa konfiguracji uruchomienia, więc może się różnić w Twoim przypadku). Aby wybrać jedną z tych opcji, zapoznaj się z wymaganiami. Aplikacja otworzy się na urządzeniu testowym, a w Android Studio otworzy się panel Profiler.
Jeśli te instrukcje nie pomogą, zapoznaj się z artykułem Ręczne tworzenie i uruchamianie aplikacji do profilowania.
Rozpocznij profilowanie
Aby rozpocząć zadanie profilowania:
Wybierz proces z listy na karcie Początek w panelu Profiler. W większości przypadków najlepiej jest wybrać proces, który najlepiej odpowiada Twojej aplikacji.
W sekcji Lista zadań wybierz zadanie profilowania. Więcej informacji o zadaniach znajdziesz na innych stronach w tej sekcji. Nie wszystkie zadania profilowania są dostępne w przypadku każdego procesu. Jeśli nie wiesz, od czego zacząć, uzyskaj ogólny widok aktywności związanej z wydajnością, sprawdzając aplikację na żywo.
W menu Rozpocznij zadanie profilu z wybierz, czy chcesz rozpocząć zadanie profilu od uruchomienia, czy dołączyć do procesu w trakcie jego wykonywania. Jeśli chcesz poprawić czas uruchamiania aplikacji lub zarejestrować proces, który ma miejsce podczas jej uruchamiania, uwzględnij w nim uruchomienie. W przeciwnym razie możesz zacząć profilowanie w obecnym stanie aplikacji.
Kliknij Rozpocznij zadanie profilujce. Zadania rozpoczyna się w osobnej karcie.
Interakcja z aplikacją, aby wywołać działania.
Zatrzymaj nagrywanie (w razie potrzeby), poczekaj na jego przeanalizowanie i zobacz wyniki.
Porównywanie, eksportowanie i importowanie śladów
Gdy zatrzymasz zadanie profilowania, zostanie ono automatycznie zapisane na karcie Wcześniejsze nagrania w panelu Profilator. Zapisane nagrania możesz wykorzystać do porównania wykorzystania zasobów w różnych scenariuszach. Nagrania są zapisywane na czas bieżącej sesji w Android Studio. Jeśli chcesz je zachować dłużej, wyeksportuj je, klikając Eksportuj nagranie . Nie wszystkie typy śladów można wyeksportować.
Aby zaimportować log czasu, na przykład z poprzedniego uruchomienia w Android Studio, kliknij Importuj nagranie na karcie Wcześniejsze nagrania i wybierz plik śledzenia. Plik możesz też zaimportować, przeciągając go do okna edytora Android Studio.
Edytowanie konfiguracji nagrywania
Aby edytować konfigurację nagrywania zadań profilującego, kliknij ustawienia programu profilującego . Dostępne są 2 główne ustawienia:
- W przypadku zadań, które obejmują próbkowanie, interwał próbkowania oznacza czas między każdą próbką. Im krótszy interwał wybierzesz, tym szybciej osiągniesz limit rozmiaru pliku dla zapisywanych danych.
- Limit rozmiaru pliku to ilość danych, które można zapisać na połączonym urządzeniu. Gdy zatrzymasz nagrywanie, Android Studio przeanalizuje te dane i wyświetli je w oknie narzędzia do profilowania. Jeśli zwiększysz limit i zapiszesz dużą ilość danych, Android Studio będzie potrzebować znacznie więcej czasu na przeanalizowanie pliku i może przestać odpowiadać.