Rejestrowanie śladu systemu na urządzeniu

Urządzenia z Androidem 9 (poziom interfejsu API 28) lub nowszym zawierają aplikację na poziomie systemu o nazwie Śledzenie systemu. Ta aplikacja jest podobna do narzędzia wiersza poleceń systrace, ale umożliwia rejestrowanie śladów bezpośrednio z urządzenia testowego bez konieczności podłączania go i łączenia się z nim przez adb. Następnie możesz użyć aplikacji, aby udostępnić wyniki tych śladów zespołowi programistów.

Urządzenia z Androidem 10 i nowszym zapisują logi czasu w formacie Perfetto, a starsze urządzenia – w formacie Systrace. Zalecamy używanie przeglądarki logów Perfetto do otwierania obu formatów i analizowania logów.

Pomaga to rejestrować ślady podczas rozwiązywania błędów związanych z wydajnością aplikacji, takich jak powolne uruchamianie, powolne przejścia czy zacinanie się interfejsu.

Rejestrowanie śledzenia systemu

Aplikacja Śledzenie systemu umożliwia zapisywanie śladu systemu za pomocą kafelka Szybkich ustawień lub menu w samej aplikacji. W sekcjach poniżej opisano, jak przeprowadzić proces nagrywania za pomocą tych interfejsów.

Nagrywanie za pomocą kafelka Szybkich ustawień

Kafelek Szybkich ustawień jest zwykle wygodniejszym sposobem na ukończenie procesu śledzenia systemu na urządzeniu.

Konfigurowanie kafelka

Jeśli używasz śledzenia systemu po raz pierwszy na urządzeniu testowym lub nie widzisz kafelka Śledzenie systemu w panelu Szybkie ustawienia urządzenia, jak pokazano na rysunku 2, wykonaj te czynności:

  1. Włącz opcje programisty.
  2. Otwórz ekran ustawień Opcje programisty.
  3. W sekcji Debugowanie wybierz Śledzenie systemu. Otworzy się aplikacja Śledzenie systemu i wyświetli się jej menu.
  4. W menu aplikacji włącz opcję Pokaż kafelek Szybkich ustawień, jak pokazano na rysunku 1. System doda kafelek Śledzenie systemu do panelu Szybkie ustawienia, jak pokazano na rysunku 2:

    Rysunek 1. Przełącznik Pokaż kafelek Szybkich ustawień w aplikacji Śledzenie systemu.
    Rysunek 2. Kafelek Śledzenie systemu w panelu Szybkie ustawienia.

    Uwaga: domyślnie system dodaje kafelek Śledzenie systemu jako pierwszy kafelek w panelu Szybkie ustawienia. Jeśli chcesz, aby kafelek pojawił się w innym miejscu, użyj trybu edycji panelu, aby go przenieść.

Zakończenie nagrywania śledzenia systemu

Aby zarejestrować śledzenie systemu za pomocą panelu Szybkie ustawienia, wykonaj te czynności:

  1. Kliknij kafelek Śledzenie systemu z etykietą Zarejestruj ślad. Kafelek zostanie włączony i pojawi się stałe powiadomienie o tym, że system rejestruje log czasu, jak pokazano na rysunku 3:

    Powiadomienie z komunikatem „Trwa nagrywanie śladu. Kliknij, aby zatrzymać śledzenie.'
    Rysunek 3. Stałe powiadomienie, które pojawia się po rozpoczęciu śledzenia systemu na urządzeniu.
  2. Wykonaj w aplikacji działania, które chcesz sprawdzić.

  3. Aby zatrzymać śledzenie, kliknij kafelek Śledzenie systemu w panelu Szybkie ustawienia lub powiadomienie Śledzenie systemu.

    System wyświetli nowe powiadomienie z komunikatem „Zapisuję ślad”. Po zakończeniu zapisywania system odrzuci powiadomienie i wyświetli trzecie powiadomienie z potwierdzeniem, że ślad został zapisany i możesz udostępnić śledzenie systemu, jak pokazano na rysunku 4:

    Powiadomienie z komunikatem „Zapisano log czasu. Kliknij, aby udostępnić ślad.'
    Rysunek 4. Trwałe powiadomienie, które pojawia się po zakończeniu zapisywania zarejestrowanego śladu przez system.

Nagrywanie za pomocą menu aplikacji

Menu aplikacji umożliwia skonfigurowanie kilku zaawansowanych ustawień związanych ze śledzeniem systemu i zawiera przełącznik do uruchamiania i zatrzymywania śledzenia systemu.

Aby zarejestrować ślad systemu za pomocą menu aplikacji Śledzenie systemu, wykonaj te czynności:

  1. Włącz opcje programisty.
  2. Otwórz ekran ustawień Opcje programisty. W sekcji Debugowanie wybierz Śledzenie systemu. Otworzy się aplikacja Śledzenie systemu.

    Jeśli masz skonfigurowany kafel Śledzenie systemu, możesz go nacisnąć i przytrzymać, aby otworzyć aplikację Śledzenie systemu.

  3. Upewnij się, że opcja Śledź aplikacje z możliwością debugowania jest zaznaczona, aby w śledzeniu systemu uwzględnić aplikacje z włączonym debugowaniem.

  4. Opcjonalnie wybierz Kategorie wywołań systemowych i czujników do śledzenia oraz Rozmiar bufora na procesor w KB. Wybierz kategorie odpowiadające testowanemu przypadkowi użycia, np. kategorię Dźwięk do testowania operacji Bluetooth lub kategorię Pamięć do alokacji sterty.

  5. Opcjonalnie wybierz Długie logi czasu, aby włączyć logi czasu, które są stale zapisywane w pamięci urządzenia. W przypadku tej opcji ustaw limity dla Maksymalnego rozmiaru długiego śledzenia i Maksymalnego czasu trwania długiego śledzenia.

  6. Włącz przełącznik Zarejestruj logi czasu, który jest wyróżniony na rysunku 5. Kafelek zostanie włączony i pojawi się stałe powiadomienie informujące, że system rejestruje log czasu, jak pokazano na rysunku 3.

    Rysunek 5. Przełącznik Rejestruj ślad w ustawieniach śledzenia systemu.
  7. Wykonaj w aplikacji działania, które chcesz sprawdzić.

  8. Zatrzymaj śledzenie, wyłączając przełącznik Zarejestruj ślad.

    System wyświetli nowe powiadomienie z komunikatem „Zapisuję ślad”. Po zakończeniu zapisywania system odrzuca powiadomienie i wyświetla trzecie powiadomienie z potwierdzeniem, że ślad został zapisany i możesz udostępnić śledzenie systemu, jak pokazano na rysunku 4.

Udostępnianie śledzenia systemu

Aplikacja Śledzenie systemu pomaga udostępniać wyniki śledzenia systemu w ramach kilku różnych procesów. Na urządzeniu z Androidem 10 (poziom interfejsu API 29) lub nowszym pliki logów czasu są zapisywane z rozszerzeniem .perfetto-trace i można je otwierać w interfejsie Perfetto. Na urządzeniu z wcześniejszą wersją Androida pliki logów czasu są zapisywane z rozszerzeniem .ctrace, które oznacza format Systrace.

Udostępnij jako wiadomość

Śledzenie systemu umożliwia udostępnianie zebranych danych śledzenia innym aplikacjom na urządzeniu. Możesz wysłać ślad do zespołu programistów e-mailem lub za pomocą aplikacji do śledzenia błędów bez konieczności podłączania urządzenia do komputera używanego do programowania.

Po zarejestrowaniu śledzenia systemu kliknij powiadomienie, które pojawi się na urządzeniu, takie jak na rysunku 4. Pojawi się selektor intencji platformy, który umożliwia udostępnienie śladu za pomocą wybranej aplikacji do obsługi wiadomości.

Udostępnianie z aplikacji Pliki

Na urządzeniach z Androidem 10 (API na poziomie 29) lub nowszym ślady są wyświetlane w aplikacji Pliki. Możesz udostępnić ślad z tej aplikacji.

Pobieranie raportu za pomocą ADB

Możesz też wyodrębnić śledzenie systemu z urządzenia za pomocą adb. Podłącz urządzenie używane do rejestrowania śladu do komputera używanego do programowania, a następnie uruchom te polecenia w oknie terminala:

cd /path-to-traces-on-my-dev-machine && \
  adb pull /data/local/traces/ .

Konwertowanie formatów logów czasu

Pliki śledzenia Perfetto możesz przekonwertować na format Systrace. Więcej informacji znajdziesz w artykule Konwertowanie między formatami logów czasu.

Tworzenie raportu HTML

Gdy udostępniasz ślad, sam raport jest w pliku .perfetto-trace na urządzeniach z Androidem 10 lub nowszym albo w pliku .ctrace na urządzeniach z innymi wersjami Androida.

Utwórz raport HTML z pliku logu czasu za pomocą interfejsu internetowego lub wiersza poleceń.

Interfejs internetowy

Użyj interfejsu Perfetto, aby otworzyć plik śledzenia i wygenerować raport.

W przypadku pliku Perfetto kliknij Otwórz plik logu czasu. W przypadku pliku Systrace kliknij Otwórz w starszym interfejsie. Starszy interfejs wygląda i działa tak samo jak raport Systrace.

Wiersz poleceń

Uruchom te polecenia w oknie terminala, aby wygenerować raport HTML z pliku logu czasu:

cd /path-to-traces-on-my-dev-machine && \
  systrace --from-file trace-file-name{.ctrace | .perfetto-trace}

Jeśli nie masz jeszcze programu wiersza poleceń systrace, możesz go pobrać z projektu Catapult na GitHubie lub bezpośrednio z Android Open Source Project.