Krótkie wprowadzenie do Inspektora GPU na Androidzie

Z tego artykułu dowiesz się, jak przeprowadzić profilowanie systemu i profilowanie klatek w aplikacji na Androida za pomocą narzędzia Android GPU Inspector (AGI).

Ten krótki przewodnik jest przeznaczony dla deweloperów, którzy znają się na tworzeniu grafiki na Androidzie.

Wymagania dotyczące komputera

Komputer, na którym działa AGI, musi spełniać te wymagania:

Pobieranie i instalowanie AGI

Pobierz i zainstaluj AGI na swoim systemie operacyjnym.

Wymagania dotyczące aplikacji na Androida

W tej sekcji opisujemy wymagania dotyczące profilowanej aplikacji na Androida:

  • Aplikacja na Androida musi być debugowalna. Atrybut debuggable w manifeście Androida aplikacji musi być ustawiony na true. Ten atrybut umożliwia prawidłowe instrumentacje ze sterownika graficznego. W przypadku aplikacji Vulkan ten atrybut umożliwia AGI dodanie własnej warstwy Vulkan podczas uruchamiania aplikacji.

    <application [...] android:debuggable="true">
    

Jeśli Twoja aplikacja natywnie korzysta z Vulkan, AGI wymaga też:

  • W aplikacji muszą być włączone warstwy weryfikacji Vulkan. Jeśli nie są włączone, możesz uruchomić te polecenia, aby wymusić uruchomienie aplikacji z warstwami weryfikacji zawartymi w pliku APK AGI (com.google.android.gapid.<abi>):

    app_package=<YOUR APP PACKAGE NAME HERE>
    abi=arm64v8a # Possible values: arm64v8a, armeabi-v7a, x86
    
    adb shell settings put global enable_gpu_debug_layers 1
    adb shell settings put global gpu_debug_app ${app_package}
    adb shell settings put global gpu_debug_layer_app com.google.android.gapid.${abi}
    adb shell settings put global gpu_debug_layers VK_LAYER_KHRONOS_validation
    

    Po zakończeniu profilowania możesz wyłączyć te warstwy weryfikacji za pomocą tych poleceń:

    adb shell settings delete global enable_gpu_debug_layers
    adb shell settings delete global gpu_debug_app
    adb shell settings delete global gpu_debug_layers
    adb shell settings delete global gpu_debug_layer_app
    
  • Gdy aplikacja działa z włączonymi warstwami weryfikacji Vulkan , nie może zgłaszać żadnych ostrzeżeń ani błędów. Przed profilowaniem napraw wszelkie błędy weryfikacji Vulkan.

  • Jeśli używasz sterowników GPU w wersji beta, dodaj te metadane do <application> tagu w manifeście Androida:

    <meta-data
              android:name="com.android.graphics.developerdriver.enable"
              android:value="true" />
    

Wymagania dotyczące urządzeń z Androidem

AGI ma te wymagania dotyczące urządzeń z Androidem:

Weryfikacja urządzenia

AGI wymaga zgodnego sterownika GPU. Aby zapewnić prawidłowe dane profilowania, AGI przy pierwszym połączeniu nowego urządzenia przeprowadza weryfikację, która trwa około 10 sekund. Po pomyślnym zakończeniu weryfikacji możesz używać urządzenia do profilowania aplikacji na Androida.

Nie przeszkadzaj urządzeniu podczas weryfikacji. Może to spowodować, że weryfikacja się nie powiedzie. Jeśli weryfikacja urządzenia się nie powiedzie, ale urządzenie jest prawidłowo skonfigurowane, możesz ponowić weryfikację, ponownie wybierając urządzenie.

Weryfikacja jest jednorazową czynnością, a jej wyniki są zapisywane w pamięci podręcznej na potrzeby przyszłego korzystania z AGI. AGI ponownie przeprowadzi weryfikację, jeśli zmieni się konfiguracja urządzenia, np. jeśli zostanie zaktualizowany sterownik GPU lub wersja Androida.

Jeśli urządzenie jest wymienione jako obsługiwane, AGI powinno przejść weryfikację. Jeśli urządzenie nie jest wymienione, jego sterownik GPU jest najprawdopodobniej niezgodny z AGI.

Jeśli Twoje urządzenie jest obsługiwane, ale weryfikacja się nie powiodła

Upewnij się, że spełniasz wszystkie wymagania dotyczące Androida i wymagania dotyczące komputera opisane w poprzednich sekcjach oraz że urządzenie jest prawidłowo podłączone do komputera za pomocą kabla USB.

Jeśli wszystkie wymagania są spełnione, zgłoś problem w naszym repozytorium GitHub opisując jego objawy.

Jeśli Twoje urządzenie nie jest obsługiwane

Współpracujemy z naszymi partnerami OEM, aby dodać obsługę większej liczby urządzeń. Możesz zgłosić problem w naszym repozytorium GitHub, aby poprosić o obsługę urządzenia.

Przechwytywanie danych profilowania

W sekcjach poniżej opisujemy, jak przechwytywać dane profilowania i otwierać wynikowy plik śledzenia, aby móc analizować wyniki.

Konfigurowanie ustawień Androida

Zanim zaczniesz profilowanie, musisz skonfigurować te ustawienia aplikacji na Androida i urządzenia, które określają aplikację i urządzenie do profilowania.

  1. Podłącz urządzenie z Androidem do komputera za pomocą kabla USB.

  2. Uruchom AGI na komputerze.

    Przy pierwszym uruchomieniu AGI wyświetli ekran Witamy , na którym pojawi się prośba o podanie ścieżki do pliku wykonywalnego adb. AGI zapisuje te ustawienia w pliku .agic w folderze HOME. Jeśli masz już to zrobione, możesz pominąć ten krok.

    Ekran powitalny
    Rysunek 1. Ekran powitalny.
  3. W polu Ścieżka do adb wpisz ścieżkę do pliku wykonywalnego adb. Pola wyboru znajdujące się za tym polem są opcjonalne.

  4. Kliknij Rozpocznij , aby wyświetlić ekran uruchamiania.

    Ekran startowy AGI
    Rysunek 2. Główny ekran uruchamiania Android GPU Inspector.
  5. Na ekranie uruchamiania kliknij Przechwyć nowy log czasu. Wyświetli się okno Przechwyć nowy log czasu. Możesz też kliknąć przycisk Przechwyć log czasu profilu systemu.

    Okno Przechwyć nowy log czasu
    Rysunek 3. Okno **Przechwyć nowy log czasu**.
  6. W sekcji Urządzenie i typ wybierz urządzenie z Androidem, które chcesz profilować. Jeśli nie jest ono widoczne na liście Urządzenie , kliknij strzałkę przeładowania, aby odświeżyć listę.

  7. W sekcji Aplikacja wybierz aplikację, którą chcesz profilować. Jeśli w pakiecie jest tylko 1 aktywność, możesz wybrać pakiet zamiast aktywności.

    AGI zawiera przykładową aplikację Vulkan. Aby użyć przykładowej aplikacji zamiast własnej, wykonaj te czynności:

    1. Kliknij przycisk ... obok pola Aplikacja.

      Wyświetli się okno Wybierz aplikację do śledzenia , w którym znajdziesz listę aplikacji, które można śledzić na wybranym urządzeniu.

    2. W polu tekstowym Filtr wpisz gapid, aby wyświetlić tylko aplikacje, których nazwa pakietu zawiera gapid.

    3. Rozwiń pakiet i wybierz com.google.android.gapid.VkSampleActivity, a następnie kliknij OK.

      Spowoduje to powrót do okna Przechwyć nowy log czasu, a pole Aplikacja zostanie wypełnione wybraną aplikacją.

  8. W sekcji Aplikacja pozostaw pozostałe pola puste.

  9. Kliknij OK.

Teraz możesz używać AGI do profilowania systemu i klatek.

Profilowanie systemu

Aby profilować system:

  1. Na ekranie uruchamiania AGI kliknij Przechwyć nowy log czasu, aby wyświetlić okno Przechwyć profil systemu.

  2. Na liście Typ wybierz Profil systemu.

  3. W sekcji Rozpoczęcie i czas trwania ustaw Rozpocznij o na Ręcznie, a Czas trwania na 2.

  4. W sekcji Opcje śledzenia kliknij Skonfiguruj. Wyświetli się lista opcji profilowania.

    Okno konfiguracji przechwytywania
    Rysunek 4. Opcje profilowania w onie Przechwyć profil systemu.
  5. Wybierz dane profilowania, które chcesz przechwycić.

  6. W sekcji GPU kliknij Wybierz.

    Wyświetli się lista liczników do wyboru.

    Konfiguracja licznika
    Rysunek 5. Wybieranie liczników.
  7. Kliknij domyślne , aby wybrać zestaw domyślnych liczników, a następnie kliknij OK , aby wrócić do opcji profilowania.

  8. Kliknij OK , aby wrócić do głównego okna Przechwyć profil systemu.

  9. W sekcji Dane wyjściowe wybierz Katalog wyjściowy, w którym mają być przechowywane pliki śledzenia generowane podczas profilowania. Pole Nazwa pliku powinno zostać wypełnione automatycznie, ale możesz je też edytować.

  10. Kliknij OK. Spowoduje to uruchomienie wybranej aplikacji na urządzeniu z Androidem i wyświetlenie wyskakującego okienka z przyciskiem Rozpocznij.

  11. Kliknij przycisk Rozpocznij , aby rozpocząć przechwytywanie danych profilowania, i poczekaj kilka sekund na zakończenie procesu.

  12. Kliknij Otwórz log czasu. Początkowy widok jest podobny do systrace.

    Ślad profilu systemowego
    Rysunek 6. Interfejs profilera systemu.

    Oprócz danych dostępnych w systrace AGI wyświetla też informacje o wydajności GPU. Więcej informacji o wyświetlaniu danych profilowania systemu znajdziesz w artykule Wyświetlanie profilu systemu AGI.

Więcej informacji o dodatkowych ustawieniach znajdziesz w artykule Opcje profilowania systemu.

Profilowanie klatki

Aby profilować poszczególne klatki z aplikacji:

  1. Na ekranie uruchamiania AGI kliknij Przechwyć nowy log czasu, aby wyświetlić okno Przechwyć nowy log czasu. Możesz też kliknąć przycisk Przechwyć log czasu profilu klatki.

  2. Na liście Typ wybierz Vulkan lub OpenGL on ANGLE w zależności od tego, którego interfejsu API grafiki używa Twoja aplikacja. Upewnij się, że wybierasz właściwy interfejs, w przeciwnym razie AGI nie przechwyci żadnych poleceń graficznych.

  3. W sekcji Rozpoczęcie i czas trwania ustaw Rozpocznij o na Ręcznie. Jeśli klikniesz przycisk Przechwyć log czasu profilu klatki, ten krok zostanie już wykonany.

  4. W sekcji Dane wyjściowe wybierz Katalog wyjściowy, w którym mają być przechowywane pliki śledzenia. Pole Nazwa pliku powinno zostać wypełnione automatycznie, ale możesz je też edytować.

  5. Opcjonalnie: niektóre aplikacje uruchamiają inny proces, który wykonuje całe przetwarzanie grafiki. Aby przechwycić ten proces, podaj jego nazwę.

  6. Kliknij OK. Spowoduje to uruchomienie aplikacji na urządzeniu z Androidem i wyświetlenie wyskakującego okienka z przyciskiem Rozpocznij.

  7. Kliknij przycisk Rozpocznij i poczekaj kilka sekund na zakończenie profilowania.

  8. Kliknij Otwórz log czasu , aby wyświetlić dane profilowania. Więcej informacji o poszczególnych panelach w interfejsie profilera klatek znajdziesz w artykule Omówienie profilowania klatek.

Więcej informacji o dodatkowych ustawieniach znajdziesz w artykule Opcje profilowania klatek.