Özellik Kullanıma Sunma Performansını İzleme

1. Genel Bakış

Bu codelab'de, özellik kullanıma sunma sırasında uygulamanızın performansını nasıl izleyeceğinizi öğreneceksiniz. Örnek uygulamamız temel işlevlere sahip olacak ve Firebase Remote Config işaretine göre farklı bir arka plan resmi gösterecek şekilde ayarlanmış. Uygulamanın performansını izlemek için enstrümantasyon izlerini gözden geçireceğiz, uygulamada bir yapılandırma değişikliği kullanıma sunacağız, etkiyi izleyeceğiz ve performansı nasıl iyileştirebileceğimize bakacağız.

Neler öğreneceksiniz?

  • Kullanıma hazır metrikleri (uygulama başlatma süresi ve yavaş ya da donmuş kareler gibi) elde etmek için mobil uygulamanıza Firebase Performance Monitoring'i ekleme
  • Kullanıcı yolculuklarınızın kritik kod yollarını anlamak için özel izler ekleme
  • Metriklerinizi anlamak ve bir özelliğin kullanıma sunulması gibi önemli değişiklikleri izlemek için Performans İzleme kontrol panelini kullanma
  • Temel metriklerinizi izlemek için performans uyarılarını ayarlama
  • Firebase Remote Config değişikliği nasıl kullanıma sunulur?

Ön koşullar

  • Android Studio 4.0 veya sonraki sürümler
  • API düzeyi 16 veya sonraki sürümlere sahip bir Android emülatörü.
  • Java sürüm 8 veya üstü
  • Firebase Remote Config'e dair temel bilgiler

2. Örnek projeyi ayarlama

Kodu indirme

Bu codelab için örnek kodu klonlamak amacıyla aşağıdaki komutu çalıştırın. Bu işlem, makinenizde codelab-perf-rc-android adında bir klasör oluşturur:

$ git clone https://github.com/FirebaseExtended/codelab-feature-rollout-performance.git

Makinenizde Git yoksa kodu doğrudan GitHub'dan da indirebilirsiniz.

firebase-perf-rc-android-start klasörünün altındaki projeyi Android Studio'ya aktarın. Büyük olasılıkla çalışma zamanı istisnaları veya eksik google-services.json dosyası ile ilgili bir uyarı görürsünüz. Bu sorunu bir sonraki bölümde düzelteceğiz.

Bu codelab'de, Android uygulamanızı bir Firebase projesine kaydetmek ve gerekli Firebase yapılandırma dosyalarını, eklentilerini ve bağımlılıklarını Android projenize eklemek için Firebase Asistan eklentisini kullanacaksınız. Tüm bunları Android Studio'dan yapabilirsiniz.

Uygulamanızı Firebase'e bağlama

  1. Android Studio/Yardım'a gidin > Android Studio ve Firebase Asistan'ın en son sürümlerini kullandığınızdan emin olmak için güncellemeleri kontrol edin.
  2. Araçlar > Asistan bölmesini açmak için Firebase.

c0e42ef063d21eab.png

  1. Uygulamanıza eklemek için Performance Monitoring'i seçin ve ardından Get started with Performance Monitoring'i (Performans İzleme ile kullanmaya başlayın) tıklayın.
  2. Android projenizi Firebase'e bağlamak için Firebase'e bağlan'ı tıklayın (bu işlem, tarayıcınızda Firebase konsolunu açar).
  3. Firebase konsolunda Proje ekle'yi tıklayın ve ardından bir Firebase proje adı girin (zaten bir Firebase projeniz varsa bunun yerine mevcut projeyi seçebilirsiniz). Firebase projesi ve yeni bir Firebase uygulaması oluşturmak için Devam'ı tıklayın ve şartları kabul edin.

Ardından, yeni Firebase Uygulamanızı Android Studio projenize bağlamanız için bir iletişim kutusu göreceksiniz.

51a549ebde2fe57a.png

  1. Bağlan'ı tıklayın.
  2. Android Studio'yu açın. Asistan bölmesinde, uygulamanızın Firebase'e bağlandığıyla ilgili onayı görürsünüz.

40c24c4a56a45990.png

Uygulamanıza Performance Monitoring'i ekleyin

Android Studio'daki Asistan bölmesinde Uygulamanıza Performance Monitoring ekleyin'i tıklayın.

Değişiklikleri Kabul Et iletişim kutusunu göreceksiniz. Bu iletişim kutusundan sonra Android Studio, gerekli tüm bağımlılıkların eklendiğinden emin olmak için uygulamanızı senkronize etmelidir.

3046f3e1f5fea06f.png

Son olarak, Android Studio'daki Asistan bölmesinde tüm bağımlılıkların doğru şekilde ayarlandığını belirten başarı mesajını göreceksiniz.

62e79fd18780e320.png

Ek bir adım olarak "(İsteğe bağlı) Hata ayıklama günlük kaydını etkinleştirme" adımındaki talimatları uygulayarak hata ayıklama günlük kaydını etkinleştirin. Aynı talimatlar, herkese açık belgelerde de mevcuttur.

3. Uygulamayı çalıştırın

Şimdi uygulamanızın modül (uygulama düzeyi) dizininde google-services.json dosyasını görürsünüz ve uygulamanız artık derlenebilir. Android Studio'da Çalıştır'ı tıklayın > Uygulamayı Android emülatörünüzde geliştirip çalıştırmak için "uygulamayı" çalıştırın.

Uygulama çalışırken ilk olarak şuna benzer bir başlangıç ekranı görürsünüz:

ffbd413a6983b205.png

Birkaç saniye sonra, varsayılan resmin bulunduğu ana sayfa görüntülenir:

d946cab0df319e50.png

Neler oluyor?

Başlangıç ekranı, SplashScreenActivity'de uygulanır ve şunları yapar:

  1. onCreate() ürününde, Firebase Remote Config ayarlarını ilk kullanıma hazırlayıp bu codelab'in sonraki bölümlerinde Remote Config kontrol panelinde ayarlayacağınız yapılandırma değerlerini getiriyoruz.
  2. executeTasksBasedOnRC() öğesinde, seasonal_image_url işaretinin yapılandırma değerini okuruz. Config değeri tarafından bir URL sağlanırsa görüntüyü eşzamanlı olarak indiririz.
  3. İndirme işlemi tamamlandığında uygulama MainActivity'ye gider ve SplashScreenActivity işlemini sonlandırmak için finish() öğesini çağırır.

MainActivity ürününde seasonal_image_url, Remote Config üzerinden tanımlanırsa özellik etkinleştirilir ve indirilen resim, ana sayfanın arka planı olarak görüntülenir. Aksi takdirde, varsayılan resim (yukarıda gösterilmektedir) gösterilir.

4. Remote Config'i kurun

Uygulamanız çalıştığına göre artık yeni özellik bayrağını ayarlayabilirsiniz.

  1. Firebase konsolunun sol panelinde Etkileşim bölümünü bulun ve Remote Config'i tıklayın.
  2. Yapılandırma formunu açmak için Yapılandırma oluştur düğmesini tıklayın ve parametre anahtarı olarak seasonal_image_url öğesini ekleyin.
  3. Açıklama ekle'yi tıklayın, ardından şu açıklamayı girin: Shows a seasonal image (replaces default) in the main page when the restaurant list is empty.
  4. Yeni ekle'yi tıklayın -> Koşullu değer -> Yeni koşul oluştur.
  5. Koşul adı için Seasonal image rollout girin.
  6. Applies if... bölümü için User in random percentile <= 0% öğesini seçin. (Özelliği daha sonraki bir adımda kullanıma sunmaya hazır olana kadar devre dışı bırakmak istiyorsunuz.)
  7. Koşul oluştur'u tıklayın. Daha sonra yeni özelliği kullanıcılarınıza sunmak için bu koşulu kullanacaksınız.

7a07526eb9e81623.png

  1. İlk parametre formunuzu oluşturun'u açın ve Mevsimsel resim kullanıma sunma değeri alanını bulun. Sezonluk resmin indirileceği URL'yi girin: https://images.unsplash.com/photo-1552691021-7043334e0b51
  2. Varsayılan değeri boş dize olarak bırakın. Bu, URL'den indirilen bir resim yerine kod tabanındaki varsayılan resmin gösterileceği anlamına gelir.
  3. Kaydet'i tıklayın.

99e6cd2ebcdced.png

Yeni yapılandırmanın taslak olarak oluşturulduğunu görebilirsiniz.

  1. Uygulamanızı güncellemek için Değişiklikleri yayınla'yı tıklayın ve üst taraftaki değişiklikleri onaylayın.

39cd3e96d370c7ce.png

5. Veri yükleme süresi için izleme ekleme

Uygulamanız, MainActivity talimatını göstermeden önce bazı verileri önceden yüklüyor ve bu işlemi gizlemek için bir başlangıç ekranı gösteriyor. Kullanıcılarınızın bu ekranda çok uzun süre beklemesini istemezsiniz. Bu nedenle, başlangıç ekranının ne kadar süre boyunca gösterildiğini izlemek normaldir.

Firebase Performance Monitoring, bunu yapmanın bir yolunu sunuyor. Uygulamanızdaki belirli bir kodun (ör. verilerin yükleme süresi ve yeni özelliğinizin işlem süresi) performansını izlemek için özel kod izlerini kullanabilirsiniz.

Başlangıç ekranının ne kadar süre gösterileceğini takip etmek için SplashScreenActivity öğesine özel bir kod izleme (başlangıç ekranını uygulayan Activity) eklersiniz.

  1. splash_screen_trace adlı özel kod izlemeyi başlatın, oluşturun ve başlatın:

SplashScreenActivity.Java

// ...
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;
// ...

public class SplashScreenActivity extends AppCompatActivity {

    private static final String TAG = "SplashScreenActivity";
    private static final String SEASONAL_IMAGE_URL_RC_FLAG = "seasonal_image_url";

    // TODO: Initialize splash_screen_trace
    private final Trace splashScreenTrace = FirebasePerformance.startTrace("splash_screen_trace");
    
    // ...
}
  1. SplashScreenActivity öğesinin onDestroy() yönteminde izlemeyi sonlandırın:

SplashScreenActivity.Java

@Override
protected void onDestroy() {
    super.onDestroy();

    // TODO: Stop the splash_screen_trace here
    splashScreenTrace.stop();
}

Yeni özelliğiniz bir resmi indirip işlediğinden, özelliğinizin SplashScreenActivity ürününe eklediği ek süreyi izleyen ikinci bir özel kod izlemesi ekleyeceksiniz.

  1. splash_seasonal_image_processing adlı özel kod izlemeyi başlatın, oluşturun ve başlatın:

SplashScreenActivity.Java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    if (!seasonalImageUrl.isEmpty()) {
        // TODO: Start the splash_seasonal_image_processing here
        final Trace seasonalImageProcessingTrace = FirebasePerformance
            .startTrace("splash_seasonal_image_processing");

        // ...
    }
}
  1. İzi RequestListener öğesinin hem onLoadFailed() hem de onResourceReady() yöntemlerinde sonlandırın:

SplashScreenActivity.Java

Glide.with(SplashScreenActivity.this.getApplicationContext())
    .asBitmap()
    .load(seasonalImageUrl)
    .signature(new ObjectKey(Utils.getCacheUUID()))
    .listener(new RequestListener<Bitmap>() {
        @Override
        public boolean onLoadFailed(
            @Nullable GlideException e,
            Object model, Target<Bitmap> target,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }

        @Override
        public boolean onResourceReady(Bitmap resource, Object model,
            Target<Bitmap> target, DataSource dataSource,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }
     })
     .preload();

Başlangıç ekranı süresini (splash_screen_trace) ve yeni özelliğin işleme süresini (splash_seasonal_image_processing) izlemek için özel kod izleri eklediğinize göre, Android Studio'da uygulamayı tekrar çalıştırın. Logging trace metric: splash_screen_trace ve ardından iz süresini içeren bir günlük kaydı mesajı görürsünüz. Yeni özelliği henüz etkinleştirmediğiniz için splash_seasonal_image_processing ile ilgili günlük mesajı görmezsiniz.

6. İze özel bir özellik ekleyin

Performance Monitoring, özel kod izlemeleri için varsayılan özellikleri (uygulama sürümü, ülke, cihaz vb. gibi yaygın meta veriler) otomatik olarak günlüğe kaydeder. Böylece, izleme verilerini Firebase konsolunda filtreleyebilirsiniz. Ayrıca özel özellikler de ekleyebilir ve izleyebilirsiniz.

Uygulamanıza, başlangıç ekranı süresini ve yeni özelliğin işleme süresini izlemek için iki özel kod izlemesi eklediniz. Bu süreleri etkileyebilecek faktörlerden biri, gösterilen resmin varsayılan resim olup olmadığı veya resmin bir URL'den indirilmesinin gerekip gerekmediğidir. Kim bilir, kim bilir, sonunda resim indirdiğiniz farklı URL'lere sahip olabilirsiniz.

Şimdi bu özel kod izlerine sezonluk resim URL'sini temsil eden bir özel özellik ekleyelim. Bu şekilde, süre verilerini daha sonra bu değerlere göre filtreleyebilirsiniz.

  1. executeTasksBasedOnRC yönteminin başında splash_screen_trace için özel özelliği (seasonal_image_url_attribute) ekleyin:

SplashScreenActivity.Java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_screen_trace
    if (seasonalImageUrl.isEmpty()) {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", "unset");
    } else {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", seasonalImageUrl);
    }

    // ...
}
  1. splash_seasonal_image_processing için aynı özel özelliği startTrace("splash_seasonal_image_processing") çağrısından hemen sonra ekleyin:

SplashScreenActivity.Java

if (!seasonalImageUrl.isEmpty()) {
    // TODO: Start the splash_seasonal_image_processing here
    final Trace seasonalImageProcessingTrace = FirebasePerformance
        .startTrace("splash_seasonal_image_processing");

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_seasonal_image_processing
    seasonalImageProcessingTrace
        .putAttribute("seasonal_image_url_attribute", seasonalImageUrl);

    // ...
}

Özel izlerinizin her ikisi (splash_screen_trace ve splash_seasonal_image_processing) için özel bir özellik (seasonal_image_url_attribute) eklediğinize göre, Android Studio'da uygulamayı tekrar çalıştırın. Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'. ifadesini içeren bir günlük kaydı mesajı görürsünüz. SeasonalImageUrl Remote Config parametresini henüz etkinleştirmediğiniz için özellik değeri unset olarak ayarlanmıştır.

Performance Monitoring SDK'sı, iz verilerini toplayıp Firebase'e gönderir. Verileri Firebase konsolunun Performans kontrol panelinde görebilirsiniz. Codelab'in sonraki adımında bu konuyu ayrıntılı olarak açıklayacağız.

7. Performance Monitoring kontrol panelinizi yapılandırma

Özelliğinizi izlemek için kontrol panelinizi yapılandırma

Firebase konsolunda Friendly Eats uygulamasının bulunduğu projeyi seçin.

Sol panelde Sürüm ve İzleme bölümünü ve ardından Performans'ı tıklayın.

Metrikler panonuzda ilk veri noktalarının yer aldığı Performans kontrol panelinizi göreceksiniz. Performance Monitoring SDK'sı, uygulamanızdan performans verilerini toplar ve topladıktan sonra birkaç dakika içinde gösterir.

f57e5450b70034c9.png

Bu metrik panosunu kullanarak uygulamanızın temel metriklerini izleyebilirsiniz. Varsayılan görünüm, uygulamanızın başlangıç zamanı izleme süresini içerir ancak en çok önemsediğiniz metrikleri ekleyebilirsiniz. Eklediğiniz yeni özelliği izlediğiniz için kontrol panelinizi, özel kod izleme (splash_screen_trace) süresini gösterecek şekilde uyarlayabilirsiniz.

  1. Boş Metrik seçin kutularından birini tıklayın.
  2. İletişim penceresinde Özel izler iz türünü ve splash_screen_trace iz adını seçin.

1fb81f4dba3220e0.png

  1. Metrik seç'i tıklayın. splash_screen_trace metriğinin kontrol panelinize eklendiğini göreceksiniz.

Önem verdiğiniz diğer metrikleri eklemek için aynı adımları kullanabilirsiniz. Böylece, performanslarının zaman içinde ve hatta farklı sürümlerde nasıl değiştiğini hızlıca görebilirsiniz.

1d465c021e58da3b.png

Metrik panosu, kullanıcılarınızın karşılaştığı temel metriklerin performansını takip etmeye yarayan güçlü bir araçtır. Bu codelab'de dar bir zaman aralığına ait küçük bir veri grubunuz olduğundan, özelliğin kullanıma sunulmasının performansını anlamanıza yardımcı olacak diğer kontrol paneli görünümlerini kullanacaksınız.

8. Özelliğinizi kullanıma sunun

İzleme ayarlarınızı yaptığınıza göre artık Firebase Remote Config değişikliğini (daha önce ayarladığınız seasonal_image_url)) kullanıma sunmaya hazırsınız.

Bir değişikliği kullanıma sunmak için hedefleme koşulunun kullanıcı yüzdelik dilimini artırmak üzere Firebase konsolundaki Remote Config sayfasına geri dönersiniz. Normalde yeni özellikleri kullanıcıların küçük bir bölümüne sunar ve yalnızca herhangi bir sorun olmadığından emin olduğunuzda özellik sayısını artırırsınız. Bununla birlikte, bu codelab'de uygulamayı yalnızca siz kullanırsınız. Bu nedenle, yüzdelik dilimini %100 olarak değiştirebilirsiniz.

  1. Sayfanın üst kısmındaki Koşullar sekmesini tıklayın.
  2. Daha önce eklediğiniz Seasonal image rollout koşulunu tıklayın.
  3. Yüzdelik dilimi %100 olarak değiştirin.
  4. Koşulu kaydet'i tıklayın.
  5. Değişiklikleri yayınla'yı tıklayın ve değişiklikleri onaylayın.

70f993502b27e7a0.png

Yeni özelliği görmek için Android Studio'ya döndüğünüzde emülatörünüzde uygulamayı yeniden başlatın. Başlangıç ekranından sonra yeni boş durum ana ekranı gösterilir.

b0cc91b6e48fb842.png

9. Performans değişikliklerini kontrol edin

Şimdi Firebase konsolundaki Performans kontrol panelini kullanarak başlangıç ekranı yükleme performansına göz atalım. Codelab'in bu adımında performans verilerini görüntülemek için kontrol panelinin farklı bölümlerini kullanacaksınız.

  1. Ana Kontrol paneli sekmesinde, izler tablosuna gidin ve Özel izler sekmesini tıklayın. Bu tabloda, daha önce eklediğiniz özel kod izlerini ve bazı kullanıma hazır izleri görürsünüz.
  2. Artık yeni özelliği etkinleştirdiğinize göre, görüntünün indirilmesi ve işlenmesi için gereken süreyi ölçen özel kod izlemeyi (splash_seasonal_image_processing) bulun. İzin Süre değerinden, bu indirme ve işleme işleminin önemli bir zaman aldığını görebilirsiniz.

439adc3ec71805b7.png

  1. splash_seasonal_image_processing için veri bulunduğundan bu iz süresini, Kontrol Paneli sekmesinin üst kısmındaki metrik panonuza ekleyebilirsiniz.

Öncekine benzer şekilde, boş Metrik seçin kutularından birini tıklayın. İletişim penceresinde Özel izler iz türünü ve splash_seasonal_image_processing iz adını seçin. Son olarak, bu metriği metrikler panosuna eklemek için Metrik seç'i tıklayın.

7fb64d2340410576.png

  1. Farkları daha da doğrulamak için splash_screen_trace verilerine daha yakından bakabilirsiniz. Metrikler panosunda splash_screen_trace kartını, ardından Metrik ayrıntılarını görüntüleyin'i tıklayın.

b1c275c30679062a.png

  1. Ayrıntılar sayfasında, daha önce oluşturduğunuz özel özellik de dahil olmak üzere sol altta özelliklerin bir listesini görürsünüz. Sağda her sezonluk resim URL'sinin başlangıç ekranı süresini görüntülemek için seasonal_image_url_attribute özel özelliğini tıklayın:

8fa1a69019bb045e.png

  1. Başlangıç ekranı süre değerleriniz, muhtemelen yukarıdaki ekran görüntüsünde belirtilenlerden biraz farklı olacaktır. Ancak resim bir URL'den indirildiğinde, varsayılan resim ("ayarlanmadı" ile gösterilir) kullanımına kıyasla daha uzun bir süre olmalıdır.

Bu codelab'de, bu sürenin uzun olmasının nedeni açıklanabilir ancak gerçek bir uygulamada bu çok belirgin olmayabilir. Toplanan süre verileri, uygulamayı çeşitli ağ bağlantısı koşullarında çalıştıran farklı cihazlardan gelir ve bu koşullar beklediğinizden daha kötü olabilir. Bu gerçek dünyada bir sorun olsaydı bunu nasıl araştıracağınıza bakalım.

  1. Kontrol paneli ana sekmesine dönmek için sayfanın en üstündeki Performans'ı tıklayın: 640b696b79d90103.png
  2. Sayfanın alt kısmındaki iz tablosunda Ağ istekleri sekmesini tıklayın. Bu tabloda, uygulamanızdan gelen tüm ağ isteklerini, images.unsplash.com/** URL kalıbı da dahil olmak üzere URL kalıplarına göre toplanmış olarak görürsünüz. Bu yanıt süresinin değerini görüntü indirme ve işleme için gereken toplam süreyle (ör. splash_seasonal_image_processing izinin süresi) karşılaştırırsanız çok zamanın görüntüyü indirmek için harcandığını görebilirsiniz.

6f92ce0f23494507.png

Performans bulguları

Firebase Performance Monitoring'i kullandığınızda, yeni özelliğin etkinleştirildiği son kullanıcılar üzerinde aşağıdaki etkiyi gözlemlediniz:

  1. SplashScreenActivity için harcanan süre arttı.
  2. splash_seasonal_image_processing için süre çok uzundu.
  3. Bu gecikme, resim indirme işleminin yanıt süresi ve buna karşılık gelen resim için gereken işleme süresinden kaynaklanıyordu.

Sonraki adımda, özelliği geri alarak ve bu özelliğin uygulanmasını nasıl iyileştirebileceğinizi belirleyerek performans üzerindeki etkiyi azaltırsınız.

10. Özelliği önceki sürüme döndür

Kullanıcılarınızın Bekleme süresi arzu edilmiyor. Remote Config'in en önemli avantajlarından biri, kullanıcılarınıza başka bir sürüm yayınlamak zorunda kalmadan sunumunuzu duraklatıp geri alabilmenizdir. Bu, sorunlara (son adımda keşfettiğiniz performans sorunları gibi) hızlı bir şekilde tepki vermenize ve memnun olmayan kullanıcı sayısını en aza indirmenize olanak tanır.

Hızlı bir çözüm olarak, kullanıma sunma yüzdelik dilimini tekrar 0 yapacaksınız. Böylece tüm kullanıcılarınız varsayılan resmi tekrar görecektir:

  1. Firebase konsolunda Remote Config sayfasına dönün.
  2. Sayfanın üst kısmındaki Koşullar'ı tıklayın.
  3. Daha önce eklediğiniz Seasonal image rollout koşulunu tıklayın.
  4. Yüzdelik dilimi %0 olarak değiştirin.
  5. Koşulu kaydet'i tıklayın.
  6. Değişiklikleri yayınla'yı tıklayın ve değişiklikleri onaylayın.

18c4f1cbac955a04.png

Uygulamayı Android Studio'da yeniden başlatın. Orijinal boş durum ana ekranını görmeniz gerekir:

d946cab0df319e50.png

11. Performans sorunlarını düzeltin

Codelab'in önceki bölümlerinde başlangıç ekranınız için resim indirmenin uygulamanızda yavaşlamaya neden olduğunu keşfettiniz. İndirilen resme daha yakından baktığınızda, resmin 2 MB'ın üzerinde olan orijinal çözünürlüğünü kullandığınızı görürsünüz. Performans sorununuzun hızlı bir çözümü, kaliteyi daha uygun bir çözünürlüğe düşürerek, resmin indirilmesini kolaylaştırmaktır.

Remote Config değerini tekrar kullanıma sun

  1. Firebase konsolunda Remote Config sayfasına dönün.
  2. seasonal_image_url parametresi için Düzenle simgesini tıklayın.
  3. Mevsimsel resim kullanıma sunma değeri'ni https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 olarak güncelleyip Kaydet'i tıklayın.

828dd1951a2ec4a4.png

  1. Sayfanın üst kısmındaki Koşullar sekmesini tıklayın.
  2. Sezonluk resim kullanıma sunma'yı tıklayın, ardından yüzdelik dilimi tekrar %100'e ayarlayın.
  3. Koşulu kaydet'i tıklayın.

1974fa3bb789f36c.png

  1. Değişiklikleri yayınla düğmesini tıklayın.

12. Düzeltmeyi test etme ve uyarı ayarlama

Uygulamayı yerel olarak çalıştırma

Yeni yapılandırma değeri farklı bir indirilen resim URL'si kullanacak şekilde ayarlandığında uygulamayı tekrar çalıştırın. Bu kez başlangıç ekranında harcanan sürenin öncesine göre daha kısa olduğunu fark edeceksiniz.

b0cc91b6e48fb842.png

Değişikliklerin performansını görüntüleme

Metriklerin nasıl göründüğünü görmek için Firebase konsolundaki Performans kontrol paneline dönün.

  1. Bu kez, ayrıntılar sayfasına gitmek için iz tablosunu kullanacaksınız. İz tablosunun aşağısındaki Özel izler sekmesinde, süre metriğinin tekrar daha ayrıntılı bir görünümünü görmek için özel iz splash_seasonal_image_processing simgesini tıklayın.

2d7aaca03112c062.png

  1. Özel özelliklerin dökümünü tekrar görmek için seasonal_image_url_attribute özel özelliğini tıklayın. URL'lerin üzerine gelirseniz küçültülmüş resmin yeni URL'siyle eşleşen bir değer görürsünüz: https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 (sonunda ?w=640 işareti vardır). Bu resimle ilişkilendirilen süre değeri, önceki resmin değerinden oldukça kısa ve kullanıcılarınız için daha kabul edilebilir.

10e30c037a4237a2.png

  1. Başlangıç ekranınızın performansını iyileştirdiğinize göre artık iz, belirlediğiniz bir eşiği aştığında size bildirim gönderilmesi için uyarılar ayarlayabilirsiniz. Performans kontrol panelini açıp splash_screen_trace için taşma menüsünü (üç nokta) ve ardından Uyarı ayarları'nı tıklayın.

4bd0a2a1faa14479.png

  1. Süre uyarısını etkinleştirmek için açma/kapatma düğmesini tıklayın. Eşik değerini, gördüğünüz değerin biraz üzerinde olacak şekilde ayarlayın. Böylece splash_screen_trace metriğinizin eşiği aşması durumunda bir e-posta alırsınız.
  1. Uyarınızı oluşturmak için Kaydet'i tıklayın. İzleme tablosuna gidin ve uyarınızın etkinleştirilip etkinleştirilmediğini görmek için Özel izler sekmesini tıklayın.

2bb93639e2218d1.png

13. Tebrikler!

Tebrikler! Firebase Performance Monitoring SDK'sını etkinleştirdiniz ve yeni bir özelliğin performansını ölçmek için izler topladınız. Yeni bir özelliğin kullanıma sunulmasıyla ilgili temel performans metriklerini izlediniz ve bir performans sorunu tespit edildiğinde hızlıca tepki verdiniz. Bunların hepsi, Remote Config ile yapılandırma değişiklikleri yapma ve performans sorunlarını gerçek zamanlı olarak izleme olanağı sayesinde mümkün olmuştur.

İşlediğimiz konular

  • Firebase Performance Monitoring SDK'sını uygulamanıza ekleme
  • Belirli bir özelliği ölçmek için kodunuza özel kod izlemesi ekleme
  • Yeni bir özelliği kontrol etmek/kullanıma sunmak için Remote Config parametresi ve koşullu değer ayarlama
  • Kullanıma sunma sırasında ortaya çıkan sorunları belirlemek için performans izleme kontrol panelinin nasıl kullanılacağını anlama
  • Uygulamanızın performansı, belirlediğiniz bir eşiği aştığında bildirim almak için performans uyarıları ayarlama

Daha fazla bilgi