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 w sekcji<application>
odszukaj konfigurację pliku manifestuprofileable
:<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ń związanych z profilowaniem, ale jeśli chcesz rejestrować alokacje w języku Java lub Kotlin albo tworzyć zrzuty stosu, powinieneś użyć aplikacji z możliwością debugowania. 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ść. Aplikacja do profilowania opiera się na wersji release
aplikacji i umożliwia wykonywanie podzbioru typowych zadań profilowania bez obciążenia wydajnościowego związanego z wersją debugową.
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 (Kompiluj > 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 otwiera się na urządzeniu testowym, a w Android Studio otwiera się panel Profilowanie.
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 należy wybrać główny proces, który reprezentuje Twoją aplikację.
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 skrócić czas uruchamiania aplikacji lub zarejestrować proces, który odbywa się podczas uruchamiania aplikacji, musisz uwzględnić uruchamianie. W przeciwnym razie możesz rozpocząć profilowanie w bieżącym stanie aplikacji.
Kliknij Rozpocznij zadanie profilujce. Zadania rozpoczyna się w osobnej karcie.
Interakcja z aplikacją, aby wywołać działania.
Zatrzymaj nagrywanie (jeśli to konieczne), zaczekaj, aż zostanie przeanalizowane, i sprawdź 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 przez czas trwania bieżącej sesji w Android Studio. Jeśli chcesz zachować je na dłużej, wyeksportuj je, klikając Eksportuj nagranie . Nie wszystkie typy śladów można wyeksportować.
Aby zaimportować ślad, np. z poprzedniego uruchomienia Android Studio, kliknij Importuj nagranie na karcie Wcześniejsze nagrania i wybierz plik śladu. Plik możesz też zaimportować, przeciągając go do okna edytora Android Studio.
Edytowanie konfiguracji nagrywania
Aby edytować konfigurację nagrywania zadań profilowania, kliknij ustawienia profilowania . Dostępne są 2 główne ustawienia:
- W przypadku zadań, które obejmują próbkowanie, interwał próbkowania reprezentuje 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 przestaniesz nagrywać, 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ć.