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 poszukaj konfiguracji manifestu profileable 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:

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

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

    Karta główna programu profilującego
  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 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.

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

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

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