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:
Wymagany jest jeden z tych systemów operacyjnych:
Windows: Windows 7 lub nowszy.
macOS: El Capitan (10.11) lub nowszy.
Linux: wymagana jest 64-bitowa wersja Java JDK lub JRE 8 (lub nowsza); zalecany jest system Ubuntu Trusty Tahr (14.04 lub nowszy).
Narzędzie wiersza poleceń adb.
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_validationPo 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_appGdy 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:
Kabel USB.
Musi być włączone debugowanie adb, a urządzenie musi być dostępne przez adb. Jeśli jest dostępna opcja Zainstaluj przez USB, włącz ją.
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.
Podłącz urządzenie z Androidem do komputera za pomocą kabla USB.
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
.agicw folderzeHOME. Jeśli masz już to zrobione, możesz pominąć ten krok.
Rysunek 1. Ekran powitalny. W polu Ścieżka do adb wpisz ścieżkę do pliku wykonywalnego adb. Pola wyboru znajdujące się za tym polem są opcjonalne.
Kliknij Rozpocznij , aby wyświetlić ekran uruchamiania.
Rysunek 2. Główny ekran uruchamiania Android GPU Inspector. 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.
Rysunek 3. Okno **Przechwyć nowy log czasu**. 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ę.
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:
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.
W polu tekstowym Filtr wpisz
gapid, aby wyświetlić tylko aplikacje, których nazwa pakietu zawieragapid.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ą.
W sekcji Aplikacja pozostaw pozostałe pola puste.
Kliknij OK.
Teraz możesz używać AGI do profilowania systemu i klatek.
Profilowanie systemu
Aby profilować system:
Na ekranie uruchamiania AGI kliknij Przechwyć nowy log czasu, aby wyświetlić okno Przechwyć profil systemu.
Na liście Typ wybierz Profil systemu.
W sekcji Rozpoczęcie i czas trwania ustaw Rozpocznij o na Ręcznie, a Czas trwania na
2.W sekcji Opcje śledzenia kliknij Skonfiguruj. Wyświetli się lista opcji profilowania.
Rysunek 4. Opcje profilowania w onie Przechwyć profil systemu. Wybierz dane profilowania, które chcesz przechwycić.
W sekcji GPU kliknij Wybierz.
Wyświetli się lista liczników do wyboru.
Rysunek 5. Wybieranie liczników. Kliknij domyślne , aby wybrać zestaw domyślnych liczników, a następnie kliknij OK , aby wrócić do opcji profilowania.
Kliknij OK , aby wrócić do głównego okna Przechwyć profil systemu.
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ć.
Kliknij OK. Spowoduje to uruchomienie wybranej aplikacji na urządzeniu z Androidem i wyświetlenie wyskakującego okienka z przyciskiem Rozpocznij.
Kliknij przycisk Rozpocznij , aby rozpocząć przechwytywanie danych profilowania, i poczekaj kilka sekund na zakończenie procesu.
Kliknij Otwórz log czasu. Początkowy widok jest podobny do systrace.
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:
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.
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.
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.
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ć.
Opcjonalnie: niektóre aplikacje uruchamiają inny proces, który wykonuje całe przetwarzanie grafiki. Aby przechwycić ten proces, podaj jego nazwę.
Kliknij OK. Spowoduje to uruchomienie aplikacji na urządzeniu z Androidem i wyświetlenie wyskakującego okienka z przyciskiem Rozpocznij.
Kliknij przycisk Rozpocznij i poczekaj kilka sekund na zakończenie profilowania.
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.