Profile możesz zbierać na 2 główne sposoby: ręcznie i za pomocą interfejsu ProfilingManager
API.
- Ręczne zbieranie profili polega na ręcznym uruchamianiu narzędzia Perfetto na urządzeniu lokalnym w celu rejestrowania profili. Możesz to zrobić za pomocą poleceń opisanych w artykule Nagrywanie śladów systemowych za pomocą Perfetto lub za pomocą kafelka Szybkich ustawień, jak wyjaśniono w sekcji Nagrywanie za pomocą kafelka Szybkich ustawień.
ProfilingManager
umożliwia aplikacjom zbieranie profili w środowisku produkcyjnym.
Zalecamy używanie ProfilingManager
do zbierania i analizowania danych od wielu użytkowników lub do debugowania rzadkich problemów. W przypadku problemów, które łatwiej odtworzyć, lepszym wyborem może być jednak profilowanie ręczne.
W tabeli poniżej przedstawiono różnice między tymi 2 metodami rejestrowania profili:
ProfilingManager | Ręczne zbieranie profili | |
---|---|---|
Ustawienia czasowe profilu | Więcej | Mniej |
Źródło profilu | Urządzenia lokalne i użytkownicy publiczni | Tylko urządzenie lokalne |
Dane wyjściowe profilu | Usunięto | Nieusunięte |
Profilowanie na podstawie zdarzeń | Tak | Nie |
Możliwość dostosowywania profilu | Mniej | Więcej |
Skalowalność | Wysoki | Niska |
W sekcjach poniżej znajdziesz krótki opis różnic między metodami rejestrowania profilu.
Ustawienia czasowe profilu
Interfejs ProfilingManager
API zapewnia większą kontrolę nad tym, kiedy aplikacja rozpoczyna lub kończy profilowanie, w porównaniu z profilowaniem ręcznym, w którym określenie czasu inicjowania profilu może być trudne. ProfilingManager
ułatwia też profilowanie nieoczekiwanych zachowań, ponieważ możesz zebrać profil nawet wtedy, gdy nie możesz odtworzyć zachowania lokalnie.
Źródło profilu
Dzięki ProfilingManager
możesz zbierać dane od użytkowników publicznych, aby znajdować i rozwiązywać problemy z wydajnością. Z kolei profilowanie ręczne pozwala odtworzyć problemy tylko na własnym urządzeniu.
Dane wyjściowe profilu
ProfilingManager
i ręczne zbieranie danych generują różne typy danych wyjściowych profilu:
ProfilingManager
generuje zanonimizowane logi czasu. Zredagowane ślady zawierają informacje o procesie aplikacji, ale ukrywają dane z innych aplikacji w systemie.ProfilingManager
zbiera i redaguje dane przed ich zwróceniem, dzięki czemu możesz zbierać ślady od użytkowników publicznych, chroniąc ich prywatność przez niewyświetlanie danych z innych aplikacji.Ręczne zbieranie profili generuje nieocenzurowane ślady. Gdy ręcznie rejestrujesz ślad systemowy, dane wyjściowe mogą obejmować wszystkie procesy działające w systemie. Te nieocenzurowane ślady oferują pełniejsze dane do debugowania, ale ze względu na ochronę prywatności możesz uzyskać do nich dostęp tylko lokalnie.
Profilowanie na podstawie zdarzeń
ProfilingManager
może też zbierać profile, gdy wystąpią określone zdarzenia, takie jak błąd typu Aplikacja nie odpowiada (ANR) lub uruchomienie aplikacji. ProfilingManager
będzie obsługiwać uruchamianie i zatrzymywanie profili na potrzeby zbierania danych na podstawie zdarzeń.
Możliwość dostosowywania profilu
Profilowanie ręczne zapewnia najwięcej opcji dostosowywania, a ProfilingManager
oferuje ich mniej.
Skalowalność
ProfilingManager
to najlepszy sposób na skalowanie śledzenia, ponieważ jest to jedyna opcja, która umożliwia deweloperom aplikacji rejestrowanie profili użytkowników publicznych. Za pomocą
ProfilingManager
możesz skonfigurować zbieranie i analizowanie śladów na dużą skalę.
Profilowanie ręczne jest ograniczone do użytku lokalnego.