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 Szybkie ustawienia, jak wyjaśniono w sekcji Nagrywanie za pomocą kafelka Szybkie ustawienia.
ProfilingManagerumożliwia aplikacjom zbieranie profili w środowisku produkcyjnym.
Do zbierania i analizowania danych od wielu użytkowników lub do debugowania rzadkich problemów zalecamy używanie ProfilingManager. 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 | Niski |
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 przypadku którego 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 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 zredagowane ślady. 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 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 kwestie dotyczące 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ększe możliwości dostosowania, a ProfilingManager – mniejsze.
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.