Ten dokument zawiera ogólny opis metod pomiaru awarii i wyjątków za pomocą pakietu SDK Google Analytics w wersji 4 na Androida.
Przegląd
Pomiary awarii i wyjątków pozwalają mierzyć liczbę i rodzaj wykrytych i niewykrytych awarii oraz wyjątków, które występują w aplikacji. Wyjątkiem są te pola:
Nazwa pola | Typ | Wymagane | Opis |
---|---|---|---|
Opis | String |
Nie | Opis wyjątku (maksymalnie 100 znaków). Akceptuje null . |
isFatal | boolean |
Tak | Wskazuje, czy wyjątek był krytyczny.
true oznacza błąd krytyczny. |
Dane o awariach i wyjątkach są dostępne przede wszystkim w raporcie o awariach i wyjątkach.
Złapane wyjątki
Wyjątkiem są błędy w aplikacji, w której masz zaimplementowany kod.
Aby określić zarejestrowany wyjątek, ustaw wartości pól wyjątków w narzędziu do śledzenia i wyślij działanie, jak w tym przykładzie:
// Get tracker. Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER); // Build and send exception. t.send(new HitBuilders.ExceptionBuilder() .setDescription(getExceptionMethod() + ":" + getExceptionLocation()) .setFatal(getExceptionFatal()) .build());
Więcej informacji o metodzie getTracker
znajdziesz w sekcji
Konfiguracja zaawansowana.
Pomiar niewykrytych wyjątków
Nieobsłużone wyjątki to przypadki, w których aplikacja napotkała nieoczekiwane warunki w czasie działania i często są krytyczne, powodując awarię aplikacji. Niewykryte wyjątki mogą być wysyłane do Google Analytics automatycznie po ustawieniu wartości konfiguracji ga_reportUncaughtExceptions
lub za pomocą klasy ExceptionReporter
.
Automatyczna konfiguracja
Aby automatycznie wysyłać do Google Analytics wszystkie niewykryte wyjątki w aplikacji, dodaj ten wiersz do pliku konfiguracji XML:
<bool name="ga_reportUncaughtExceptions">true</bool>
Po wysłaniu wyjątku za pomocą automatycznego pomiaru wyjątków zostanie on przekazany do domyślnego modułu obsługi wyjątków Thread
.
Korzystanie z implementacji zaawansowanej
Jeśli korzystasz z implementacji zaawansowanej i nie używasz wartości konfiguracji ga_reportUncaughtExceptions
, użyj klasy ExceptionReporter
, aby wdrożyć automatyczny pomiar niewykrytych wyjątków.
ExceptionReporter
może służyć jako domyślny moduł obsługi niewykrytych wyjątków dla określonego wątku lub wszystkich wątków w aplikacji. Po wysłaniu wyjątku do Google Analytics klasa ExceptionReporter
może go opcjonalnie przekazać do podanego przez Ciebie modułu obsługi niewykrytych wyjątków.
Poniższy kod tworzy nowy obiekt ExceptionReporter
i ustawia go jako nowy domyślny moduł obsługi niewykrytych wyjątków. W efekcie każdy niewykryty wyjątek będzie wysyłany do Google Analytics, a następnie przekazywany do poprzedniego modułu obsługi niewykrytych wyjątków. W przypadku większości aplikacji domyślny moduł obsługi zarejestruje wyjątek w dzienniku i zamknie aplikację.
Thread.UncaughtExceptionHandler myHandler = new ExceptionReporter( myTracker, Thread.getDefaultUncaughtExceptionHandler(), context); // Make myHandler the new default uncaught exception handler. Thread.setDefaultUncaughtExceptionHandler(myHandler);
Jeśli korzystasz z automatycznego pomiaru wyjątków, pamiętaj o tych kwestiach:
- Wszystkie wyjątki wysłane za pomocą automatycznego pomiaru wyjątków są zgłaszane w Google Analytics jako krytyczne.
- Domyślnie pole opisu jest ustawiane automatycznie z użyciem typu wyjątku, nazwy klasy, nazwy metody i nazwy wątku.
Analizowanie opisów wyjątków
Pakiet SDK udostępnia funkcję StandardExceptionParser
, która upraszcza proces pobierania i wysyłania opisów wyjątków do Google Analytics:
// Get tracker. Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); // Using StandardExceptionParser to get an Exception description. try { // Request some scores from the network. ArrayList<Integer> highScores = getHighScoresFromCloud(); } catch (IOException e) { t.send(new HitBuilders.ExceptionBuilder() .setDescription(new StandardExceptionParser(this, null) .getDescription(Thread.currentThread().getName(), e)) .setFatal(false) .build() ); ... // Display alert to user that high scores are currently unavailable. }
Możesz też wdrożyć własny parser, implementując interfejs ExceptionParser
i wywołując jego metodę setDescription
podczas wysyłania wyjątku do Google Analytics.