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 logów czasu bezpośrednio na urządzeniu testowym bez konieczności podłączania urządzenia i łączenia się z nim przez adb. Następnie możesz za pomocą aplikacji udostępnić wyniki z tych logów czasu swojemu zespołowi programistów.

Urządzenia z Androidem 10 lub nowszym rejestrują ślady w formacie Perfetto, podczas gdy wcześniejsze urządzenia rejestrują je w formacie Systrace. Zalecamy korzystanie z przeglądarki śledzenia Perfetto do otwierania obu formatów i analizowania logów czasu.

Ułatwia rejestrowanie logów czasu przy rozwiązywaniu problemów z wydajnością aplikacji, takich jak powolne uruchamianie, powolne przejścia czy zacinanie się interfejsu.

Rejestrowanie logu czasu systemu

Aplikacja Śledzenie systemu umożliwia rejestrowanie śladu systemu przy użyciu kafelka Szybkie ustawienia lub w menu w aplikacji. W sekcjach poniżej dowiesz się, jak zakończyć proces nagrywania za pomocą tych interfejsów.

Nagrywanie za pomocą kafelka Szybkich ustawień

Kafelki Szybkich ustawień to zwykle wygodniejszy sposób na ukończenie procesu śledzenia systemu na urządzeniu.

Skonfiguruj kafelek

Jeśli korzystasz ze śledzenia systemu po raz pierwszy na urządzeniu testowym lub jeśli nie widzisz kafelka Śledzenie systemu w panelu Szybkie ustawienia urządzenia (jak pokazano na rysunku 2), wykonaj te czynności konfiguracyjne:

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

    Rysunek 1. Przełącznik Pokaż kafelek Szybkie ustawienia 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, by kafelek pojawił się w innym miejscu, użyj trybu edycji panelu, aby go przesunąć.

Dokończ rejestrowanie logu czasu systemu

Aby zarejestrować ślad systemu w panelu Szybkie ustawienia, wykonaj te czynności:

  1. Kliknij kafelek Śledzenie systemu z etykietą Rejestruj ślad. Kafelek zostanie włączony i wyświetli się trwałe powiadomienie z informacją, że system rejestruje ślad, jak widać na ilustracji 3:

    Powiadomienie z komunikatem „Trace jest rejestrowane. Kliknij, aby zatrzymać śledzenie.
    Rysunek 3. Trwałe powiadomienie wyświetlane po rozpoczęciu śledzenia systemu na urządzeniu.
  2. Wykonaj w aplikacji działania, które system ma sprawdzić.

  3. Zatrzymaj śledzenie, klikając kafelek Śledzenie systemu w panelu Szybkie ustawienia lub w powiadomieniu Śledzenie systemu.

    System wyświetli nowe powiadomienie zawierające komunikat „Zapisuję ślad”. Po zakończeniu zapisywania system zamyka powiadomienie i wyświetla trzecie powiadomienie, które potwierdza, że log czasu został zapisany i jest gotowy do udostępnienia logu czasu systemu, jak widać na rysunku 4:

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

Nagrywanie za pomocą menu aplikacji

Menu aplikacji pozwala skonfigurować kilka zaawansowanych ustawień związanych ze śledzeniem systemu i zawiera przełącznik do rozpoczynania i zatrzymywania śledzenia systemu.

Aby zarejestrować ślad systemu w 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 skonfigurujesz kafelekŚledzenie systemu,możesz go też nacisnąć i przytrzymać, aby otworzyć aplikację Śledzenie systemu.

  3. Upewnij się, że opcja Traktuj aplikacje możliwe do debugowania jest zaznaczona, aby uwzględnić aplikacje z włączonym debugowaniem w śledzeniu systemu.

  4. Opcjonalnie wybierz Kategorie wywołań systemowych i czujników do śledzenia oraz rozmiar bufora na procesor (w KB). Wybierz kategorie odpowiadające celowi użycia, który testujesz, np. kategorię Dźwięk do testowania operacji Bluetooth lub kategorię Pamięć w przypadku przydziałów stosu.

  5. Opcjonalnie wybierz Długie logi czasu, aby włączyć logi czasu, które są stale zapisywane w pamięci urządzenia. Na potrzeby tej opcji ustaw limity parametrów Maksymalny rozmiar długiego śladu i Maksymalny czas trwania długiego logu czasu.

  6. Włącz przełącznik Rejestruj log czasu, wyróżniony na ilustracji 5. Kafelek zostanie włączony i wyświetli się trwałe powiadomienie z informacją, że system rejestruje ślad, jak widać na rysunku 3.

    Rysunek 5. Przełącznik Zarejestruj log czasu w ustawieniach śledzenia systemu.
  7. Wykonaj w aplikacji działania, które system ma sprawdzić.

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

    System wyświetli nowe powiadomienie zawierające komunikat „Zapisuję ślad”. Po zakończeniu zapisywania system zamyka powiadomienie i wyświetla trzecie powiadomienie, które potwierdza, że log czasu został zapisany i czy jest gotowy do udostępnienia logu czasu systemowego, jak widać na rysunku 4.

Udostępnij log czasu systemowego

Aplikacja Śledzenie systemu ułatwia udostępnianie wyników śledzenia systemu w ramach kilku różnych przepływów pracy. Na urządzeniach z Androidem 10 (poziom interfejsu API 29) lub nowszym pliki śledzenia są zapisywane z rozszerzeniem .perfetto-trace i można je otwierać w interfejsie Perfetto. Na urządzeniu z wcześniejszą wersją Androida pliki śledzenia są zapisywane z rozszerzeniem nazwy pliku .ctrace, które wskazuje format Systrace.

Udostępnij jako wiadomość

Śledzenie systemu umożliwia udostępnianie zebranych logów czasu innym aplikacjom na urządzeniu. Możesz go wysłać 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.

Po zarejestrowaniu logu czasu kliknij powiadomienie wyświetlone na urządzeniu, takie jak to widoczne na rysunku 4. Pojawi się selektor intencji platformy, co pozwoli Ci udostępnić log czasu za pomocą wybranej przez siebie aplikacji do obsługi wiadomości.

Udostępnianie w aplikacji Pliki

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

Pobierz raport za pomocą ADB

Możesz też wyodrębnić ślad systemu z urządzenia za pomocą narzędzia adb. Połącz urządzenie używane do rejestrowania logu czasu z maszyną do programowania, a następnie uruchom te polecenia w oknie terminala:

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

Konwertuj między formatami śledzenia

Pliki śledzenia Perfetto można przekonwertować na format Systrace. Więcej informacji znajdziesz w sekcji Konwertowanie danych między formatami śledzenia.

Tworzenie raportu HTML

Sam raport na urządzeniu z Androidem 10 lub nowszym znajduje się w pliku .perfetto-trace na urządzeniach z Androidem 10 lub nowszym albo w pliku .ctrace w przypadku pozostałych wersji.

Utwórz raport HTML na podstawie pliku śledzenia za pomocą interfejsu internetowego lub wiersza poleceń.

Interfejs internetowy

Otwórz plik śledzenia i wygeneruj raport w interfejsie Perfetto.

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

Wiersz poleceń

Aby wygenerować raport HTML z pliku śledzenia, uruchom następujące polecenia w oknie terminala:

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 projektu Android Open Source Project.