Profile możesz zbierać za pomocą 2 głównych metod: ręcznego zbierania profili i interfejsu API ProfilingManager.
- 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 Rejestrowanie śladów systemowych za pomocą narzędzia Perfetto lub za pomocą kafelka Szybkie ustawienia, jak opisano w artykule Rejestrowanie za pomocą kafelka Szybkie ustawienia.
- Interfejs
ProfilingManagerumożliwia aplikacjom zbieranie profili w środowisku produkcyjnym.
Zalecamy używanie interfejsu ProfilingManager do zbierania i analizowania danych od wielu użytkowników lub do debugowania rzadkich problemów. W przypadku problemów, które łatwiej jest odtworzyć, lepszym rozwiązaniem może być jednak ręczne profilowanie.
W tabeli poniżej przedstawiamy różnice między tymi 2 metodami rejestrowania profili:
| ProfilingManager | Ręczne zbieranie profili | |
|---|---|---|
| Kontrola czasu profilu | Więcej | Mniej |
| Źródło profilu | Urządzenie lokalne i użytkownicy publiczni | Tylko urządzenie lokalne |
| Dane wyjściowe profilu | Usunięto | Nieusunięto |
| Profilowanie na podstawie zdarzeń | Tak | Nie |
| Możliwość dostosowywania profilu | Mniej | Więcej |
| Skalowalność | Wysoki | Niski |
W sekcjach poniżej krótko opisujemy różnice między metodami rejestrowania profili.
Kontrola czasu profilu
Interfejs API ProfilingManager zapewnia większą kontrolę nad tym, kiedy aplikacja rozpoczyna lub zatrzymuje profil, w porównaniu z profilowaniem ręcznym, w którym inicjowanie profilu czasowego może być trudne. Interfejs ProfilingManager ułatwia też profilowanie nieoczekiwanych zachowań, ponieważ możesz zbierać profile nawet wtedy, gdy nie możesz odtworzyć zachowania lokalnie.
Źródło profilu
Za pomocą interfejsu 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 odtwarzanie problemów tylko na własnym urządzeniu.
Dane wyjściowe profilu
Interfejs ProfilingManager i ręczne zbieranie danych generują różne typy danych wyjściowych profilu:
Interfejs
ProfilingManagergeneruje usunięte ślady. Usunięte ślady zawierają informacje o procesie aplikacji, ale ukrywają dane z innych aplikacji w systemie. Ponieważ interfejsProfilingManagerzbiera i usuwa dane przed ich zwróceniem, możesz zbierać ślady od użytkowników publicznych, chroniąc ich prywatność, ponieważ nie będą widoczne dane z innych aplikacji.Ręczne zbieranie profili generuje nieusunięte ślady. Gdy ręcznie rejestrujesz ślad systemowy, dane wyjściowe mogą obejmować wszystkie procesy działające w systemie. Chociaż te nieusunięte ślady zawierają pełniejsze dane do debugowania, ze względu na kwestie dotyczące prywatności możesz uzyskać do nich dostęp tylko lokalnie.
Profilowanie na podstawie zdarzeń
Interfejs ProfilingManager może też zbierać profile, gdy wystąpią określone zdarzenia, np. błąd „Aplikacja nie odpowiada” lub uruchomienie aplikacji. Interfejs ProfilingManager będzie obsługiwać uruchamianie i zatrzymywanie profili w przypadku zbierania danych na podstawie zdarzeń.
Możliwość dostosowywania profilu
Profilowanie ręczne zapewnia największe możliwości dostosowywania, a interfejs ProfilingManager – mniejsze.
Skalowalność
Interfejs 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ą interfejsu ProfilingManager możesz skonfigurować zbieranie i analizowanie śladów na dużą skalę.
Profilowanie ręczne jest ograniczone do użytku lokalnego.