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ń.
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 na urządzeniu lokalnym |
| 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 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 czasu. Zaciemnione ślady zawierają informacje o procesie aplikacji, ale ukrywają dane z innych aplikacji w systemie. PonieważProfilingManagerzbiera i redaguje dane przed ich zwróceniem, 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 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ą narzędzia
ProfilingManager możesz skonfigurować zbieranie i analizowanie śladów na dużą skalę.
Profilowanie ręczne jest ograniczone do użytku lokalnego.