Bu dokümanda, Android için Google Analytics SDK v4 kullanılarak kilitlenme ve istisna ölçümüne üst düzey genel bakış sunulmaktadır.
Genel bakış
Kilitlenme ve istisna ölçümü, uygulamanızda yakalanan ve yakalanmayan kilitlenmelerin ve istisnaların sayısını ve türünü ölçmenize olanak tanır. İstisnalar şu alanlardadır:
Alan adı | Tür | Zorunlu | Açıklama |
---|---|---|---|
Açıklama | String |
Hayır | İstisnayla ilgili açıklama (en fazla 100 karakter). null kabul edilir. |
Hayati | boolean |
Evet | İstisnanın önemli olup olmadığını gösterir.
true önemli olduğunu gösterir. |
Kilitlenme ve istisna verileri öncelikle Crash and Exceptions raporunda kilitlenir.
Yakalanan İstisnalar
Veri isteği sırasında ağ bağlantısının zaman zaman zaman aşımına uğraması gibi yakalanan istisnalar, uygulamanızda kod kullanarak yaptığınız hatalardır.
İzleyicide istisna alanı değerlerini ayarlayıp isabeti göndererek, yakalanan bir istisnayı ölçün. Örnek:
// 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öntemiyle ilgili ayrıntılı bilgi için Gelişmiş Yapılandırma konusuna bakın.
Yakalanmayan İstisna Ölçümü
Yakalanmamış istisnalar, uygulamanızın çalışma zamanında beklenmeyen koşullarla karşılaştığı ve genellikle önemli olduğu durumları temsil eder. Bu durum, uygulamanın kilitlenmesine neden olur. ga_reportUncaughtExceptions
yapılandırma değeri ayarlanarak veya ExceptionReporter
sınıfı kullanılarak, yakalanmayan istisnalar Google Analytics'e otomatik olarak gönderilebilir.
Otomatik Yapılandırma
Uygulamanızdaki yakalanmamış tüm istisnaları otomatik olarak Google Analytics'e göndermek için bu satırı XML yapılandırma dosyanıza ekleyin:
<bool name="ga_reportUncaughtExceptions">true</bool>
Otomatik istisna ölçümü kullanılarak istisnai bir istisna gönderildikten sonra istisna, Thread
&hl=tr varsayılan istisna işleyicisine geçirilir.
Gelişmiş Uygulama Kullanma
Gelişmiş bir uygulama kullanıyor ve ga_reportUncaughtExceptions
yapılandırma değerini kullanmıyorsanız otomatik olarak yakalanmayan istisna ölçümünü uygulamak için ExceptionReporter
sınıfını kullanın.
ExceptionReporter
, belirli bir ileti dizisi veya uygulamanızdaki tüm ileti dizileri için varsayılan yakalanmamış istisna işleyici olarak görev yapabilir. Google Analytics'e bir istisna gönderdikten sonra ExceptionReporter
sınıfı, istisnayı sizin sağladığınız yakalanmamış bir istisna işleyiciye iletebilir.
Aşağıdaki kod yeni bir ExceptionReporter
nesnesi oluşturur ve bunu yeni yakalanmamış yeni istisna işleyici olarak ayarlar. Sonuç olarak, yakalanmamış her istisna Google Analytics'e gönderilir ve daha önce yakalanmamış olan önceki istisna işleyiciye aktarılır. Çoğu uygulama için 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.
- Açıklama alanı varsayılan olarak istisna türü, sınıf adı, yöntem adı ve ileti dizisi adı kullanılarak otomatik olarak ayarlanır.
İstisna Açıklamalarını Ayrıştırma
SDK, istisna açıklamalarını alma ve Google Analytics'e gönderme işlemini 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. }
Ayrıca, Google Analytics'e istisna gönderirken ExceptionParser
arayüzünü uygulayıp setDescription
yöntemini çağırarak kendi ayrıştırıcınızı da uygulayabilirsiniz.