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.
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.](https://developer.android.com/static/studio/images/one-click-profileable-build-menu.png?authuser=19&hl=pl)
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.
Aplikacja profilu „aplikacja” z pełnymi danymi uruchamia procesor, pamięć i Profile energetyczne.
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:
-
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 } }
-
W Android Studio wybierz Kompilacja > Wybierz Utwórz wariant... i wybierz wersji produkcyjnej.
Zmień wersję na profilowalną
-
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"/>
-
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:
-
Uruchom aplikację w emulatorze programistycznym lub na urządzeniu.
-
W Android Studio uruchom program profilujący, wybierając Wyświetl > Okna narzędzi > Profiler.
-
Po uruchomieniu aplikacji kliknij
w narzędziu do profilowania, aby wyświetlić menu. Wybierz swoje urządzenie, a potem wpis aplikacji w sekcji Inne profilowalne procesy.
-
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.
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:
- Wybierz Uruchom > Edytuj konfiguracje.
- Wybierz moduł aplikacji w panelu po lewej stronie.
- Kliknij kartę Profilowanie, a następnie zaznacz Włącz dodatkową obsługę starszych urządzeń (poziom interfejsu API < 26).
- 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:
- Upewnij się, że narzędzie do profilowania nie działa w Android Studio.
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.
- W zależności od systemu operacyjnego uruchom
profiler.exe
lubprofiler.sh
. Android Pojawi się ekran powitalny Studio. Po zniknięciu ekranu powitalnego zostanie otwarte okno programu profilującego.