Bu belgede, Android için Google Analytics SDK v4 kullanılarak kilitlenme ve istisna ölçümüne genel bakış sunulmaktadır.
Genel bakış
Kilitlenme ve istisna ölçümü, uygulamanızda meydana gelen hem yakalanan hem yakalanmamış kilitlenmelerin ve istisnaların sayısını ve türünü ölçmenize olanak tanır. Aşağıdaki alanlar istisnadır:
Alan adı | Tür | Gerekli | Açıklama |
---|---|---|---|
Açıklama | String |
Hayır | İstisnanın açıklaması (en fazla 100 karakter). null kabul edilir. |
isFatal | boolean |
Evet | Özel durumun önemli olup olmadığını gösterir.
true önemli değeri belirtir. |
Kilitlenme ve istisna verileri, öncelikli olarak Kilitlenme ve İstisnalar raporunda bulunur.
Yakalanan İstisnalar
Yakalanan istisnalar (ör. veri isteği sırasında ağ bağlantısının ara sıra zaman aşımına uğraması), uygulamanızda işlemesi gereken kod uyguladığınız hatalardır.
İzleyicide istisna alanı değerlerini ayarlayıp isabeti göndererek yakalanan bir istisnayı ölçün (bu örnekte olduğu gibi):
// 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());
getTracker
yöntemi ile ilgili ayrıntılar için
Gelişmiş Yapılandırma bölümüne bakın.
Yakalanmamış İstisna Ölçümü
Yakalanmayan istisnalar, uygulamanızın çalışma zamanında beklenmedik koşullarla karşılaştığı ve genellikle kritik öneme sahip olarak uygulamanın kilitlenmesine neden olduğu örnekleri temsil eder. ga_reportUncaughtExceptions
yapılandırma değeri ayarlanarak veya ExceptionReporter
sınıfı kullanılarak Google Analytics'e otomatik olarak yakalanmamış istisnalar gönderilebilir.
Otomatik Yapılandırma
Uygulamanızdaki tüm yakalanmamış istisnaları Google Analytics'e otomatik olarak göndermek için şu satırı XML yapılandırma dosyanıza ekleyin:
<bool name="ga_reportUncaughtExceptions">true</bool>
Otomatik istisna ölçümü kullanılarak istisna gönderildikten sonra, istisna Thread
öğesinin varsayılan istisna işleyicisine aktarılır.
Gelişmiş Uygulama Kullanma
Gelişmiş bir uygulama kullanıyor ve ga_reportUncaughtExceptions
yapılandırma değerini kullanmıyorsanız otomatik yakalanmamış istisna ölçümünü uygulamak için ExceptionReporter
sınıfını kullanın.
ExceptionReporter
, uygulamanızdaki belirli bir iş parçacığı veya tüm iş parçacıkları için varsayılan yakalanmamış istisna işleyici olarak işlev görebilir. Google Analytics'e bir istisna gönderdikten sonra, ExceptionReporter
sınıfı isteğe bağlı olarak istisnayı, sağladığınız yakalanmamış bir istisna işleyiciye iletebilir.
Aşağıdaki kod yeni bir ExceptionReporter
nesnesi oluşturur ve bunu yeni varsayılan yakalanmamış istisna işleyici olarak ayarlar. Sonuç olarak, yakalanmayan her istisna Google Analytics'e gönderilir ve ardından bir önceki yakalanmamış istisna işleyiciye aktarılır. Çoğu uygulamada, varsayılan işleyici istisnayı günlüğe kaydeder ve uygulamayı sonlandırır.
Thread.UncaughtExceptionHandler myHandler = new ExceptionReporter( myTracker, Thread.getDefaultUncaughtExceptionHandler(), context); // Make myHandler the new default uncaught exception handler. Thread.setDefaultUncaughtExceptionHandler(myHandler);
Otomatik istisna ölçümünü kullanırken aşağıdakileri göz önünde bulundurun:
- Otomatik istisna ölçümü kullanılarak gönderilen tüm istisnalar Google Analytics'te önemli olarak raporlanır.
- Varsayılan olarak açıklama alanı istisna türü, sınıf adı, yöntem adı ve iş parçacığı adı kullanılarak otomatik olarak ayarlanır.
Ayrıştırma İstisnası Açıklamaları
SDK, istisna açıklamalarını Google Analytics'e gönderme ve alma sürecini basitleştirmek için bir StandardExceptionParser
sağlar:
// 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. }
Google Analytics'e bir istisna gönderirken ExceptionParser
arayüzünü uygulayıp setDescription
yöntemini çağırarak kendi ayrıştırıcınızı da uygulayabilirsiniz.