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 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ń.
ProfilingManagerumoż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ótkie opisy 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 nieoczekiwanego zachowania, 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 naprawiać problemy z wydajnością. Z kolei profilowanie ręczne umożliwia odtworzenie problemów tylko na własnym urządzeniu.
Dane wyjściowe profilu
ProfilingManager i ręczne zbieranie danych generują różne typy danych wyjściowych profilu:
ProfilingManagergeneruje zanonimizowane logi. Zaciemnione ślady zawierają informacje o procesie aplikacji, ale ukrywają dane z innych aplikacji w systemie.ProfilingManagerzbiera i redaguje dane przed ich zwróceniem, dzięki czemu możesz zbierać ślady od użytkowników publicznych, chroniąc ich prywatność przez niepokazywanie danych z innych aplikacji.Ręczne zbieranie profili powoduje powstawanie nieocenzurowanych śladów. 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 – 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.