Profilowanie wydajności aplikacji

Uznaje się, że aplikacja ma słabą wydajność, jeśli reaguje powoli, wyświetla przerywane animacje, urządzenie zawiesza się lub zużywa zbyt dużo energii. Rozwiązanie problemów ze skutecznością obejmuje identyfikację obszarów gdy aplikacja nieefektywnie wykorzystuje zasoby, takie jak procesor, pamięć, karta graficzna, sieć lub baterii urządzenia.

Aby wykryć i rozwiązać te problemy, skorzystaj z opisanych narzędzi i technik do profilowania oraz analizy porównawczej. w tej kwestii. Aby poznać techniki pomiaru skuteczności i poznać przykłady ich stosowania metod rozwiązywania konkretnych problemów można znaleźć w artykule Pomiary skuteczności reklam.

Android Studio udostępnia kilka narzędzi do profilowania, które pomagają znaleźć i zwizualizować potencjalne problemy:

  • Program profilujący CPU pomaga monitorować problemy z wydajnością środowiska wykonawczego.
  • Program profilujący pamięci pomaga śledzić alokacje pamięci.
  • Program profilujący śledzi zużycie energii, która może przyczyniać się do zużycia baterii. wyczerpywać się.

Narzędzia te są zgodne z Androidem 5.0 (poziom interfejsu API 21) i nowszymi. Więcej informacji na temat: można znaleźć na innych stronach w tej sekcji przewodnika użytkownika.

Biblioteki Jetpack Benchmark pozwalają aplikacji mierzyć różne ważne operacje:

  • Wskaźnik porównawczy: mierz ważne przypadki użycia związane z wydajnością, w tym uruchamianie aplikacji. i ponownego renderowania wyzwalanego przez takie działania jak animacje w interfejsie czy przewijanie.
  • Mikrotestowy test porównawczy: pozwala mierzyć koszt procesora konkretnych funkcji.

Więcej informacji o tych bibliotekach znajdziesz w artykule Analiza porównawcza Twojej aplikacji.

Aplikacje z możliwością profilowania

Profileable jest plikiem manifestu konfigurację w Androidzie Q. Może on określać, czy użytkownik urządzenia może profilować tę aplikację za pomocą takich narzędzi, jak Android Studio, Simpleperf Perfetto.

Przed profileable większość deweloperów mogła tylko profilować aplikacji możliwe do debugowania na Androidzie, co spowodowało znaczne koszty związane z wydajnością. co jest efektem ubocznym. Te koszty wydajności mogą unieważnić wyniki profilowania, zwłaszcza jeśli były związane z czasem. Tabela 1 zawiera podsumowanie różnic między debugowalnymi i profilowalnymi danymi. aplikacji.

Tabela 1. Podsumowanie kluczowych różnic między aplikacjami z możliwością debugowania a aplikacjami z możliwością profilowania.
Funkcja Możliwe do debugowania Profilowalne
Program profilujący pamięci Pełna

Tak:

Nie:

Program profilujący procesora Pełna

Tak:

Nie:

Program profilujący sieci Tak Nie
Program profilujący energooszczędność Tak Nie
Program profilujący zaawansowane Tak Tak
Monitorowanie zdarzeń Tak Nie

Usługa Profileable została wprowadzona, aby deweloperzy mogli zezwolić na udostępnianie swoich aplikacji do narzędzi do profilowania, a jednocześnie generować bardzo niewielkie koszty wydajności. Profilowalny plik APK to pakiet APK wersji z wierszem <profileable android:shell="true"/> dodano w sekcji <application> pliku manifestu.

Automatyczne tworzenie i uruchamianie aplikacji z możliwością profilowania

Możesz skonfigurować, skompilować i uruchomić profilowalną aplikację jednym kliknięciem. Ta funkcja wymaga wirtualne lub fizyczne urządzenie testowe z interfejsem API na poziomie 29 lub wyższym i z Google Play. Aby użyć funkcji kliknij strzałkę obok ikony aplikacji Profil. i wybierz jedną z 2 opcji:

Profilowalne menu kompilacji jednym kliknięciem.
  • Aplikacja profilu „aplikacja” przy niskim narzutze uruchamia procesor i pamięć z profilami. W narzędziu do profilowania pamięci Rejestrowanie przydziałów natywnych jest włączona.

    Profilowanie z niskim narzutem.
  • Aplikacja profilu „aplikacja” z pełnymi danymi uruchamia procesor, pamięć i Profile energetyczne.

    Profilowanie z wykorzystaniem pełnych danych.

Ręczne tworzenie i uruchamianie profilowej aplikacji

Aby ręcznie utworzyć profilowalną aplikację, musisz najpierw utworzyć aplikację do wersji a potem zaktualizuje swój plik manifestu, co zmieni aplikację w wersję możliwą do profilowania. Po skonfigurowaniu profilowalnej aplikacji uruchom program profilujący i wybierz profilowalny do analizy.

Tworzenie wersji aplikacji

Aby utworzyć wersję aplikacji do profilowania, wykonaj te czynności:

  1. Podpisz aplikację kluczem debugowania, dodając te wiersze do pliku build.gradle. Jeśli masz już działający wariant kompilacji wersji, możesz przejdź do następnego kroku.

            buildTypes {
              release {
                signingConfig signingConfigs.debug
              }
            }
          
  2. W Android Studio wybierz Kompilacja > Wybierz Utwórz wariant... i wybierz wersji produkcyjnej.

Zmień wersję na profilowalną

  1. Przekonwertuj z góry aplikację do wersji na profilowalną aplikację, otwierając AndroidManifest.xml i dodanie w nim poniższego <application> Więcej informacji: Tworzenie aplikacji na potrzeby wersji.

    <profileable android:shell="true"/>

  2. W zależności od wersji pakietu SDK konieczne może być dodanie tych wierszy do pliku build.gradle.

          aaptOptions {
            additionalParameters =["--warn-manifest-validation"]
          }
        

Profilowanie aplikacji

Aby profilować aplikację profilową, wykonaj te czynności:

  1. Uruchom aplikację w emulatorze programistycznym lub na urządzeniu.

  2. W Android Studio uruchom program profilujący, wybierając Wyświetl > Okna narzędzi > Profiler.

  3. Po uruchomieniu aplikacji kliknij Przycisk plusa programu profilującego w narzędziu do profilowania, aby wyświetlić menu. Wybierz swoje urządzenie, a potem wpis aplikacji w sekcji Inne profilowalne procesy.

    Profilowane menu
  4. Program profilujący powinien być dołączony do zgłoszenia. Dostępne są tylko programy do profilowania procesora i pamięci, z ograniczonymi funkcjami programu Memory Profiler.

    Profilowalny widok sesji
    Profilowane menu
    Profilowane menu

Sesje

Dane programu profilującego możesz zapisać jako sesje, które będą przechowywane do momentu i zamknij Android Studio. Rejestrując informacje dotyczące profilowania w wielu sesjach, przełączanie się między nimi, pozwala porównywać wykorzystanie zasobów w różnych scenariuszach.

  • Aby rozpocząć nową sesję, kliknij Rozpocznij nową sesję profilowania. Przycisk i z wyświetlonego menu wybierz proces aplikacji.
  • Gdy zapisz ślad lub przechwyć zrzutu stosu, Android Studio dodaje te dane (wraz z siecią aplikacji aktywności) jako osobnego wpisu w bieżącej sesji.
  • Aby zatrzymać dodawanie danych do bieżącej sesji, kliknij Zatrzymaj bieżącą sesję sesja profilowania
  • Aby zaimportować log czasu wyeksportowany z poprzedniego uruchomienia Android Studio, kliknij Rozpocznij nową sesję programu profilującego i wybierz Wczytaj z pliku.

Włącz dodatkową obsługę starszych urządzeń (poziom interfejsu API < 26)

Aby pokazać dodatkowe dane dotyczące profilowania w przypadku urządzenia z Androidem 7.1 lub starszym, z Androidem Studio musi wstrzyknąć logikę monitorowania do skompilowanej aplikacji. Te dodatkowe dane profilowania obejmują: następujące:

  • oś czasu zdarzeń we wszystkich oknach programu profilującego,
  • Liczba przydzielonych obiektów w narzędziu Memory Profiler
  • Zdarzenia czyszczenia pamięci w narzędziu Memory Profiler
  • Szczegółowe informacje o wszystkich przesyłanych plikach w narzędziu Network Profiler
.

Aby włączyć dodatkową pomoc na starszych urządzeniach, wykonaj te czynności:

  1. Wybierz Uruchom > Edytuj konfiguracje.
  2. Wybierz moduł aplikacji w panelu po lewej stronie.
  3. Kliknij kartę Profilowanie, a następnie zaznacz Włącz dodatkową obsługę starszych urządzeń (poziom interfejsu API < 26).
  4. Ponownie skompiluj i uruchom aplikację.

Włączenie dodatkowej obsługi starszych urządzeń ułatwia proces kompilacji wolniej, więc należy ją włączać tylko wtedy, gdy chcesz rozpocząć profilowanie swojej aplikacji.

Uruchamianie samodzielnych narzędzi do profilowania

Samodzielne profilerskie w Android Studio umożliwiają profilowanie aplikacji bez uruchamiania pełnej wersji Androida IDE Studio.

Aby uruchomić samodzielne profilerasz, wykonaj te czynności:

  1. Upewnij się, że narzędzie do profilowania nie działa w Android Studio.
  2. Przejdź do katalogu instalacji i przejdź do katalogu bin:

    Windows/Linux: studio-installation-folder/bin

    macOS: używanie samodzielnych programów do profilowania nie jest obsługiwane w systemie macOS.

  3. W zależności od systemu operacyjnego uruchom profiler.exe lub profiler.sh. Android Pojawi się ekran powitalny Studio. Po zniknięciu ekranu powitalnego zostanie otwarte okno programu profilującego.