Profilowanie wydajności aplikacji

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 plik AndroidManifest.xml aplikacji i w sekcji <application> odszukaj konfigurację pliku manifestu profileable:

    <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:

  1. Utwórz konfigurację uruchamiania/debugowania, jeśli jeszcze jej nie masz.
  2. Wybierz wariant kompilacji wersji (Kompiluj > Wybierz wariant kompilacji).
  3. 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:

  1. 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ę.

    Karta główna narzędzia Profiler
  2. 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.

  3. 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.

  4. Kliknij Rozpocznij zadanie profilujce. Zadania rozpoczyna się w osobnej karcie.

  5. Interakcja z aplikacją, aby wywołać działania.

  6. 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ć.