Rejestrowanie logu czasu systemu w wierszu poleceń

Polecenie systrace wywołuje narzędzie Systrace, które umożliwia zbieranie i badanie informacji o czasie we wszystkich procesach działających na urządzeniu na poziomie systemu.

W tym dokumencie opisujemy, jak generować raporty Systrace z poziomu wiersza poleceń. Na urządzeniach z Androidem 9 (poziom interfejsu API 28) lub nowszym możesz też generować raporty Systrace za pomocą aplikacji systemowej Śledzenie systemu.

Aby uruchomić systrace, wykonaj te czynności:

  1. Z Android Studio pobierz i zainstaluj najnowsze narzędzia Android SDK.
  2. Zainstaluj Python i dodaj go do zmiennej środowiskowej PATH stacji roboczej.
  3. Dodaj android-sdk/platform-tools/ do zmiennej środowiskowej PATH. W tym katalogu znajduje się plik binarny Android Debug Bridge (adb), który jest wywoływany przez program systrace.
  4. Podłącz urządzenie z Androidem 4.3 (poziom interfejsu API 18) lub nowszym do swojego systemu programowania, korzystając z połączenia debugowania USB.

Polecenie systrace jest dostępne w pakiecie Android SDK Tools i znajduje się w android-sdk/platform-tools/systrace/.

Składnia

Aby wygenerować raport HTML dotyczący aplikacji, uruchom polecenie systrace z poziomu wiersza poleceń, używając tej składni:

python systrace.py [options] [categories]

Na przykład to polecenie wywołuje polecenie systrace, aby rejestrować aktywność urządzenia i generować raport HTML o nazwie mynewtrace.html. Dla większości urządzeń to rozsądna lista domyślna.

$ python systrace.py -o mynewtrace.html sched freq idle am wm gfx view \
    binder_driver hal dalvik camera input res memory

Wskazówka: jeśli w danych wyjściowych śledzenia chcesz zobaczyć nazwy zadań, musisz dodać do parametrów polecenia kategorię sched.

Aby wyświetlić listę kategorii obsługiwanych przez podłączone urządzenie, uruchom to polecenie:

$ python systrace.py --list-categories

Jeśli nie określisz żadnych kategorii ani opcji, systrace wygeneruje raport, który będzie zawierał wszystkie dostępne kategorie i będzie używał ustawień domyślnych. Dostępne kategorie zależą od używanego urządzenia.

Opcje globalne

Opcje globalne Opis
-h | --help Wyświetl komunikat pomocy.
-l | --list-categories Zawiera listę kategorii śledzenia dostępnych dla podłączonego urządzenia.

Polecenia i opcje poleceń

Polecenia i opcje Opis
-o file Zapisz raport śledzenia HTML w elemencie file. Jeśli nie wybierzesz tej opcji, systrace zapisze raport w tym samym katalogu co systrace.py i nada mu nazwę trace.html.
-t N | --time=N Śledź aktywność urządzenia przez N s. Jeśli nie określisz tej opcji, systrace wyświetli prośbę o zakończenie śledzenia przez naciśnięcie klawisza Enter w wierszu poleceń.
-b N | --buf-size=N Użyj bufora logu czasu o rozmiarze N kilobajta. Ta opcja pozwala ograniczyć łączny rozmiar danych zbieranych podczas śledzenia.
-k functions
| --ktrace=functions
Prześledź aktywność określonych funkcji jądra listy rozdzielonych przecinkami.
-a app-name
| --app=app-name
Włącz śledzenie dla aplikacji w postaci listy nazw procesów rozdzielonych przecinkami. Aplikacje muszą zawierać wywołania narzędzia śledzącego z klasy Trace. Należy określić tę opcję przy każdym profilowaniu aplikacji – wiele bibliotek, takich jak RecyclerView, zawiera wywołania instrumentacji śledzącej, które po włączeniu śledzenia na poziomie aplikacji dostarczają przydatnych informacji. Więcej informacji znajdziesz w artykule Definiowanie zdarzeń niestandardowych.

Aby śledzić wszystkie aplikacje na urządzeniu z Androidem 9 (poziom interfejsu API 28) lub nowszym, przekaż symbol wieloznaczny "*" w cudzysłowie.

--from-file=file-path Utwórz interaktywny raport HTML na podstawie pliku, np. plików TXT, które zawierają nieprzetworzone dane śledzenia, zamiast korzystać z śledzenia na żywo.
-e device-serial
| --serial=device-serial
Przeprowadź log czasu na konkretnym połączonym urządzeniu, na podstawie numeru seryjnego urządzenia.
categories Dołącz informacje śledzenia dla określonych procesów systemowych, np. gfx dla procesów systemowych, które renderują grafikę. Możesz uruchomić systrace za pomocą polecenia -l, aby wyświetlić listę usług dostępnych dla połączonego urządzenia.