AGC -Crash Servisi (Android)

Cenk Türker
Huawei Developers - Türkiye
6 min readDec 4, 2020

Herkese merhaba, bu yazımda AppGallery Connect hizmetlerinden biri olan Crash hizmetlerinden bahsedeceğim.

Crash Service

Crash hizmeti nedir?

AppGallery Connect’in çökme hizmeti otomatik olarak çöktüğünü bildirmekte ve çökme hizmetini entegre ettikten sonra çökme analizine izin vermektedir, uygulamanız çökmeleri otomatik olarak AppGallery Connect’e raporlayarak gerçek zamanlı olarak çökme raporları oluşturacaktır. Raporlarda sağlanan bol miktarda bilgi, çökmeleri bulmanıza ve çözmenize yardımcı olacaktır.

Neden Crash servisine ihtiyaç duyarız ?

Uygulamalar, geniş kullanıcı tabanı, farklı cihaz modellerini ve karmaşık ağ ortamını göz önünde bulundurarak piyasaya sürülmeden önce testleri tamamlamış olsa da uygulamaların ara sıra çökmesi kaçınılmazdır. Crash’lar kullanıcı deneyimini tehlikeye atar, Kullanıcılar çökmeler nedeniyle uygulamanızı kaldırabilir ve uygulamanız iyi feedback almama ihtimli artacaktır.

Crash’ları bulmak için incelemelerden yeterli crash bilgisi alamazsınız, bu nedenle bunları kısa sürede çözemezsiniz. Bu, işinize ciddi şekilde zarar verecektir. Bu nedenle, daha verimli olmak için uygulamalarımızdaki crash hizmetlerini kullanmamız gerekiyor.

Crash hizmetini nasıl entegre edebiliriz?

Çok basit ! , yalnızca Crash SDK’yı uygulamanıza entegre etmeniz gerekir. Daha sonra SDK, herhangi bir kodlama yapmadan ilgili işlevleri uygulayabilir. Size ilerleyen bölümde SDK’nın nasıl uygulanacağını anlatacağım.

Crash Hizmetine Başlarken

Kendi uygulamanıza entegre etmek için ihtiyaç duyduğunuz bazı prosedürler vardır. İşte aşağıdaki adımlar, bunun içindir;

1-AppGallery Connect SDK’sını entegre etme

SDK’yı AppGallery Connect’e nasıl entegre edeceğinizle ilgili gerekli tüm bilgileri bulacaksınız.

2-HUAWEI Analiz Kit’ini Etkinleştirme

Crash hizmeti, kilitlenme olaylarını bildirirken HUAWEI Analytics Kit’in özelliklerini kullanır. Bu nedenle, Crash SDK’yı entegre etmeden önce HUAWEI Analytics Kit’i etkinleştirmeniz gerekir. Ayrıntılar için lütfen Servis Etkinleştirme bölümüne bakın.

3-HUAWEI Analiz Kit’ini Entegre etme

HUAWEI Analytics Kit’i kullanmadan önce, aşağıdaki kodu uygulama düzeyindeki build.gradle dosyasına (genellikle app dizininde) ekleyerek entegre etmeniz gerekir:

hianalytics in build.gradle

4-Crash SDK’yı Entegre Etme

Crash SDK’yı entegre etmek için aşağıdaki kodu uygulama düzeyinde build.gradle dosyasına (genellikle app dizininde) ekleyin:

agconnect-crash in build.gradle

Bu adımları uyguladıktan sonra, projenizin güncellenmiş sürümüyle yeniden oluşturmak için sağ üstteki “Sync Now” düğmesine tıklamayı unutmayın.

AndroidManifest İzni

Ayrıca, aşağıdaki izin komutlarını Androidmanifest.xml dosyanıza eklemeniz gerekir.

AndroidManifest.xml

Kod Geliştirme Bölümü

MainActivity.java’da parça parça kod bloklarını görebilirsiniz.

MakeCrash düğmesine dokunulduğunda bir kilitlenmeyi tetiklemek için AGConnectCrash.testIt yöntemini çağırmak için aşağıdaki kodu ekleyin.

CrashCollectionON düğmesine dokunulduğunda kilitlenme verisi raporlamasını etkinleştirmek için AGConnectCrash.enableCrashCollection yöntemini çağırmak için aşağıdaki kodu ekleyin.

CrashCollectionON

CrashCollectionOFF düğmesine dokunulduğunda kilitlenme verisi raporlamasını devre dışı bırakma kodunu ekleyin.

CrashCollectionOFF

Özel bir kullanıcı kimliği tanımlamak için AGConnectCrash.setUserId, özel günlükleri kaydetmek için AGConnectCrash.log çağırma ve CustomReport düğmesine dokunulduğunda özel bir key-value çifti tanımlamak için AGConnectCrash.setCustomKey’i çağırma kodunu ekleyin.

Custom Report — Key-Value

MainActivity.xml içinde yer alan aşağıdaki tüm kod parçacıgı , uygulama arayüzünü oluşturur.

Kendi projeniz üzerinde xml kodlarını ekledikten sonra göreceğiniz uygulama arayüzü aşağıdaki gibidir.

Artık, kod geliştirme bölümünü tamamlamş bulunmaktayız. Sonraki adım, projenizi gerçekleştirdikten sonra AppGallery Connect’te sonuçları izlemek ve analiz etmek olacak.

AppGallery Connect üzerinde Crash Hizmetini Etkinleştirme

AppGallery Connect’i imzaladıktan sonra, ilk kez kullanacaksanız, çökme hizmetini etkinleştirmek için bu adımları izlemeniz gerekir.

My project →Project Settings → Quality → Enable Now

Varolan Crash’ları nasıl çözümleyebiliriz?

AppGallery Connect’te oturum açarak, kilitlenme sayısı, etkilenen kullanıcı sayısı ve kilitlenme oranı gibi kilitlenme göstergelerini kontrol edebilirsiniz. Çözmek istediğiniz kilitlenmeyi bulmak için tarihi saate, işletim sistemine, uygulama sürümüne, cihaz türüne ve diğer kriterlere göre filtreleyebilirsiniz. Ek olarak, çökmenin ayrıntılarını kontrol edebilir, buna göre çökmeyi bulabilir veya doğrudan çökme yığınına göre çökmenin meydana geldiği koda gidebilir ve çökmeyi çözebilirsiniz.

Crash Notification nedir?

Crash notification hizmeti, uygulamanızı çökmelere karşı gerçek zamanlı olarak izleyecektir. Kritik bir kilitlenme meydana geldiğinde, bildirim işlevini etkinleştirdiyseniz, e-posta bildirimleri alırsınız, böylece bunları hemen çözebilirsiniz.

Crash Notification Nasıl Etkinleştirilir ?

Crash bildirimlerini etkinleştirmek için lütfen aşağıdaki adımları izleyin.

1. AppGallery Connect’te oturum açın ve Users and permissions’i seçin.

2. Go to User →Personal information.

3. Bildirim alanında, Crash bildirimi için E-posta ve SMS mesajı altındaki onay kutularını seçin (Büyük bir çökme durumunda beni bilgilendir) ve Kaydet’i tıklayın.

Crash Hizmeti Test Sonucunu İzleme ve Analiz Etme

Yapılandırma sürecini tamamladıktan sonra, crash hizmetlerinizin sonuçlarını görebilirsiniz.

“Statistics” sekmesinde, çökme hakkında bazı çıktılar bulacaksınız aşağıdaki gibi;

  • App crashed times,
  • Crash Rate,
  • Affected Users,
  • In time type

Ek olarak, sol üstte “Add Filter” i seçebilir ve sonucu şu filtrelemelere göre kontrol edebilirsiniz;

  • Operating System
  • App version,
  • Device
Crash

Ancak “Set crash notification” seçeneğine tıklayarak threshold özelleştirebilirsiniz.

Set Crash Notification

Ayrıca, tüm kilitlenme sonuçlarını .csv formatında doğrulamak için “Download Report” a tıklayarak raporu indirebilirsiniz.

”Problems ” sekmesinde, kilitlenmenin ana sorununun nedenini görüntüleyebilirsiniz.

katkı olarak, kontrol edebilir;

  • Event Type,
  • Event,
  • Affected User,
  • Last occurence time.
Problems tab

Burada problemin adı olan “java.lang.NullPointerException” üzerine tıkladıktan sonra detaylı olarak inceleme şansı elde edeceksiniz.

Aşağıdaki tabloda kontrol etmeniz gereken bilgiler olacak;

  • Stack,
  • Logs,
  • Status,
  • Information.

Şimdi yukarıdaki konuları açıklayacağız, bundan sonra “Search by User” sekmesine geçeceğiz.

Stack tab

“Logs” sekmesinde,günlüklere göre filtreleyerek şu kriterlere göre göz atabilirsiniz.

  • All
  • Debug,
  • Info,
  • Warning
  • Error

Ayrıca“Enter a keyword” kutucuğu ile arama yapabilirsiniz.

Log tab

“Status” sekmesinde, bir çökmenin meydana geldiği uygulama durumunu almak için durumu kaydetmek üzere özel bir key/value çifti ekleyebilirsiniz. Aslında burada, çökme meydana gelmesi için yarattığınız kendi özel değerlerinizi inceleyeceksiniz.

Status tab

“Information” sekmesinde, aşağıdakilerle ilgili bilgilere göz atmış olacaksınız;

  • App
  • Operating System
  • Device
Information tab

“Search by user” sekmesinde, çökmelerle ilgili bazı çıktılar bulacaksınız;

  • Occuring time,
  • User ID,
  • Event type,
  • Problems

Bir Crash Raporunu Özelleştirme

İsterseniz bu kırmızı işaretli alan parametrelerini özelleştirerek kendi çarpışma raporunuzu oluşturabilirsiniz, böylelikle analiziniz daha verimli ve anlaşılır olacaktır.

customizing own crash report

SSS

S: Tüm kilitlenme raporlarını AppGallery Connect’ten dışa aktarabilir miyim?
C: Elbette, kendi AGC kilitlenme sayfanıza rapor .csv formatında indirebilirsiniz.

S: AGC aracılığıyla uygulamamın herhangi bir nedenle çöktüğünü görebilir miyim?
C: Evet, Sorunlar sekmesine tıklayarak, Yığın, Günlük, Durum ve Bilgi olarak adlandırılan 4 farklı sekme göreceksiniz, her sekme aradığınız şey hakkında size farklı bir çözüm verecektir.

S: Uygulamamda testi çalıştırdığımda kilitlenme raporunu neden hemen AGC’de göremiyorum? Görmek için herhangi bir süre var mı ve verilerin ne kadar süreyle saklanıyor?
C: Test raporunun size yansıması ortalama olarak en az 1 dakikadır ve bu veriler size saatlik, 24 saatlik ve 7 günlük, 30 günlük ve 90 günlük verilerin sonuçlarını sunar.

Crash Servis yazımın sonuna geldik, umarım bahsettiklerim size faydalı olur, bir sonraki yazımda görüşmek üzere, hepinize iyi günler dilerim …

Referanslar

https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-crash-introduction

--

--