Özellik Sunumlarının Performans Takibi

1. Genel Bakış

Bu codelab'de, bir özelliğin kullanıma sunulması 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 bayrağına göre farklı bir arka plan resmi gösterecek şekilde ayarlanmıştır. Uygulamanın performansını izlemek, uygulamada bir yapılandırma değişikliği sunmak, etkiyi izlemek ve performansı nasıl iyileştirebileceğimizi görmek için izleme araçlarının üzerinden geçeceğiz.

Ne öğreneceksin

  • Kullanıma hazır metrikler (uygulama başlangıç ​​zamanı ve yavaş veya donmuş kareler gibi) elde etmek için mobil uygulamanıza Firebase Performance Monitoring nasıl eklenir?
  • Kullanıcı yolculuklarınızın kritik kod yollarını anlamak için özel izlemeler nasıl eklenir?
  • Ölçümlerinizi anlamak ve bir özelliğin kullanıma sunulması gibi önemli değişiklikleri izlemek için Performans İzleme kontrol panelini kullanma
  • Temel ölçümlerinizi izlemek için performans uyarıları nasıl ayarlanır?
  • Firebase Remote Config değişikliği nasıl kullanıma sunulur?

Önkoşullar

  • Android Studio 4.0 veya üzeri
  • API düzeyi 16 veya daha yüksek olan bir Android emülatörü.
  • Java sürüm 8 veya üstü
  • Firebase Remote Config'in temel anlayışı

2. Örnek projeyi ayarlayın

Kodu indirin

Bu codelab'in örnek kodunu kopyalamak için aşağıdaki komutu çalıştırın. Bu, makinenizde codelab-perf-rc-android adında bir klasör oluşturacaktır:

$ 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ü altındaki projeyi Android Studio'ya aktarın. Muhtemelen bazı çalışma zamanı istisnaları veya eksik bir google-services.json dosyasıyla ilgili bir uyarı göreceksiniz. Bunu 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 Assistant eklentisini kullanacaksınız - üstelik tüm bunları Android Studio'nun içinden !

Uygulamanızı Firebase'e bağlayın

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

c0e42ef063d21eab.png

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

Daha sonra yeni Firebase Uygulamanızı Android Studio projenize bağlamak için bir iletişim kutusu görmelisiniz.

51a549ebde2fe57a.png

  1. Bağlan'ı tıklayın.
  2. Android Studio'yu açın. Asistan bölmesinde uygulamanızın Firebase'e bağlı olduğuna dair onay göreceksiniz.

40c24c4a56a45990.png

Uygulamanıza Performans İzlemeyi ekleyin

Android Studio'nun Asistan bölmesinde, Uygulamanıza Performans İzleme Ekle'yi tıklayın.

Gerekli tüm bağımlılıkların eklendiğinden emin olmak için Android Studio'nun uygulamanızı senkronize etmesi gereken Değişiklikleri Kabul Et'e yönelik bir iletişim kutusu görmelisiniz.

3046f3e1f5fea06f.png

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

62e79fd18780e320.png

Ek bir adım olarak, "(İsteğe bağlı) Hata ayıklama günlüğünü etkinleştir" adımındaki talimatları izleyerek hata ayıklama günlüğünü etkinleştirin . Aynı talimatlar genel belgelerde de mevcuttur.

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

Artık uygulamanızın modül (uygulama düzeyi) dizininde google-services.json dosyasını görmelisiniz ve uygulamanız artık derlenmelidir. Android Studio'da, uygulamayı Android öykünücünüzde oluşturup çalıştırmak için Çalıştır > 'Uygulamayı çalıştır'ı tıklayın.

Uygulama çalışırken ilk olarak aşağıdaki gibi bir açılış ekranı görmelisiniz:

ffbd413a6983b205.png

Ardından, birkaç saniye sonra varsayılan görselin bulunduğu ana sayfa görüntülenecektir:

d946cab0df319e50.png

Kaputun altında neler oluyor?

Açılış ekranı SplashScreenActivity'de uygulanır ve aşağıdakileri yapar:

  1. onCreate() öğesinde, Firebase Remote Config ayarlarını başlatıyoruz ve bu codelab'in ilerleyen bölümlerinde Remote Config kontrol panelinde ayarlayacağınız yapılandırma değerlerini getiriyoruz.
  2. executeTasksBasedOnRC() dosyasında, seasonal_image_url bayrağının config değerini okuyoruz. Config değeri tarafından bir URL sağlanırsa görüntüyü senkronize olarak indiririz.
  3. İndirme işlemi tamamlandıktan sonra uygulama MainActivity'ye gider ve SplashScreenActivity sonlandırmak için finish() çağırır.

MainActivity , eğer Remote Config aracılığıyla seasonal_image_url tanımlanırsa, özellik etkinleştirilecek ve indirilen görüntü, ana sayfanın arka planı olarak görüntülenecektir. Aksi takdirde, varsayılan görüntü (yukarıda gösterilen) görüntülenecektir.

4. Remote Config'i kurun

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

  1. Firebase konsolunun sol panelinde Engage bölümünü bulun ve ardından Remote Config'i tıklayın.
  2. Yapılandırma formunu açmak ve parametre anahtarı olarakseason_image_url'yi eklemek için Yapılandırma oluştur düğmesini seasonal_image_url .
  3. Açıklama ekle 'yi tıklayın ve 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 -> Koşullu değer -> Yeni koşul oluştur'u tıklayın.
  5. Koşul adı için Seasonal image rollout girin.
  6. Applies if... bölümü için User in random percentile <= 0% seçin. (Daha sonraki bir adımda kullanıma hazır olana kadar özelliği devre dışı bırakmak istiyorsunuz.)
  7. Koşul oluştur'u tıklayın. Bu koşulu daha sonra yeni özelliği kullanıcılarınıza sunmak için kullanacaksınız.

7a07526eb9e81623.png

  1. İlk parametrenizi oluşturun formunu açın ve Sezonluk görsel sunumu için Değer alanını bulun. Sezonluk görselin indirileceği URL'yi girin: https://images.unsplash.com/photo-1552691021-7043334e0b51
  2. Varsayılan değeri boş bir dize olarak bırakın. Bu, bir 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'ya tıklayın ve üstteki değişiklikleri onaylayın.

39cd3e96d370c7ce.png

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

Uygulamanız MainActivity göstermeden önce bazı verileri önceden yükler ve bu işlemi gizlemek için bir açılış ekranı görüntüler. Kullanıcılarınızın bu ekranda çok uzun süre beklemesini istemezsiniz, bu nedenle normalde açılış ekranının ne kadar süreyle görüntülendiğini izlemek yararlı olur.

Firebase Performance Monitoring tam da bunu yapmanın bir yolunu sunar. Verilerin yüklenme süresi ve yeni özelliğinizin işlem süresi gibi uygulamanızdaki belirli kodun performansını izlemek için özel kod izlerini kullanabilirsiniz.

Açılış ekranının ne kadar süreyle görüntülendiğini izlemek için açılış ekranını uygulayan Activity olan SplashScreenActivity özel bir kod izleme ekleyeceksiniz.

  1. splash_screen_trace adlı özel bir kod izlemesini 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. İzlemeyi SplashScreenActivity onDestroy() yönteminde sonlandırın:

SplashScreenActivity.java

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

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

Yeni özelliğiniz bir görüntüyü indirip işlediğinden, özelliğinizin SplashScreenActivity eklediği ek süreyi izleyecek ikinci bir özel kod izleme ekleyeceksiniz.

  1. splash_seasonal_image_processing adlı özel bir kod izlemesini 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. İzlemeyi, 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();

Artık açılış ekranı süresini ( splash_screen_trace) ve yeni özelliğin işlem süresini ( splash_seasonal_image_processing ) izlemek için özel kod izleri eklediğinize göre, uygulamayı Android Studio'da yeniden çalıştırın . Logging trace metric: splash_screen_trace ve ardından izlemenin süresi. Yeni özelliği henüz etkinleştirmediğiniz için splash_seasonal_image_processing için bir günlük mesajı görmezsiniz.

6. İzlemeye özel bir nitelik ekleyin

Performans İzleme, özel kod izlemeleri için varsayılan nitelikleri (uygulama sürümü, ülke, cihaz vb. gibi ortak meta veriler) otomatik olarak günlüğe kaydeder; böylece Firebase konsolundaki izleme verilerini filtreleyebilirsiniz. Ayrıca özel nitelikler ekleyebilir ve izleyebilirsiniz.

Yeni özelliğin açılış ekranı süresini ve işlem süresini izlemek için uygulamanıza az önce iki özel kod izi eklediniz. Bu süreleri etkileyebilecek faktörlerden biri, görüntülenen görüntünün varsayılan görüntü olup olmadığı veya görüntünün bir URL'den indirilmesi gerekip gerekmediğidir. Ve kim bilir, sonunda görsel indirdiğiniz farklı URL'lere sahip olabilirsiniz.

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

  1. executeTasksBasedOnRC yönteminin başına splash_screen_trace için özel özniteliğ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);

    // ...
}

Artık her iki özel izlemeniz ( splash_screen_trace ve splash_seasonal_image_processing ) için özel bir özellik ( seasonal_image_url_attribute ) eklediğinize göre, uygulamayı Android Studio'da yeniden çalıştırın . Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'. Remote Config parametresiseasonImageUrl'yi henüz etkinleştirmediniz, bu nedenle öznitelik değeri unset .

Performans İzleme SDK'sı izleme verilerini toplayacak ve bunları Firebase'e gönderecektir. Verileri, Codelab'in bir sonraki adımında ayrıntılı olarak açıklayacağımız Firebase konsolunun Performans kontrol panelinde görüntüleyebilirsiniz.

7. Performans İzleme kontrol panelinizi yapılandırın

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

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

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

Ölçüm panonuzda ilk veri noktalarınızı içeren Performans kontrol panelinizi görmelisiniz! Performance Monitoring SDK, uygulamanızdan performans verilerini toplar ve bunları topladıktan birkaç dakika sonra görüntüler.

f57e5450b70034c9.png

Bu ölçüm panosu, uygulamanıza ilişkin temel ölçümleri izleyebileceğiniz yerdir. Varsayılan görünüm, uygulama başlangıç ​​zamanı takibinizin süresini içerir ancak en çok önem verdiğiniz ölçümleri ekleyebilirsiniz. Eklediğiniz yeni özelliği takip ettiğiniz için kontrol panelinizi, splash_screen_trace özel kod izlemesinin süresini görüntüleyecek şekilde uyarlayabilirsiniz.

  1. Boş Bir metrik seçin kutularından birine tıklayın.
  2. İletişim penceresinde Özel izlerin izleme türünü ve splash_screen_trace izleme adını seçin.

1fb81f4dba3220e0.png

  1. Metrik seç 'i tıkladığınızda, kontrol panelinize eklenen splash_screen_trace süresini görmelisiniz!

Önemsediğiniz diğer ölçümleri 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ı bir şekilde görebilirsiniz.

1d465c021e58da3b.png

Metrik panosu, kullanıcılarınızın deneyimlediği önemli metriklerin performansını izlemek için güçlü bir araçtır . Bu codelab için dar bir zaman aralığında küçük bir veri kümesine sahipsiniz, dolayısıyla ö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

Artık izlemenizi kurduğunuza göre, daha önce kurduğunuz Firebase Remote Config değişikliğini ( seasonal_image_url) kullanıma sunmaya hazırsınız.

Bir değişikliği uygulamaya koymak için Firebase konsolundaki Remote Config sayfasına geri dönerek hedefleme koşulunuzun kullanıcı yüzdelik dilimini artıracaksınız. Normalde, yeni özellikleri kullanıcıların küçük bir kısmına sunar ve yalnızca herhangi bir sorun olmadığından emin olduğunuzda artırırsınız. Ancak bu codelab'de uygulamanın tek kullanıcıları sizsiniz, dolayısıyla 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 dilimini %100 olarak değiştirin.
  4. Durumu kaydet'i tıklayın.
  5. Değişiklikleri yayınla'ya 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. Açılış ekranından sonra yeni boş durum ana ekranını görmelisiniz!

b0cc91b6e48fb842.png

9. Performans değişikliklerini kontrol edin

Şimdi Firebase konsolundaki Performans kontrol panelini kullanarak açılış ekranı yükleme performansını kontrol edelim. 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, izlemeler tablosuna doğru aşağı kaydırın ve ardından Özel izlemeler sekmesine tıklayın. Bu tabloda, daha önce eklediğiniz özel kod izlerinin yanı sıra kullanıma hazır bazı izleri göreceksiniz.
  2. Artık yeni özelliği etkinleştirdiğinize göre, görüntünün indirilmesi ve işlenmesi için geçen süreyi ölçen splash_seasonal_image_processing özel kod izlemesini arayın. İzlemenin Süre değerinden bu indirme ve işlemenin önemli miktarda zaman aldığını görebilirsiniz.

439adc3ec71805b7.png

  1. splash_seasonal_image_processing için verileriniz olduğundan, bu izlemenin süresini Kontrol Paneli sekmesinin üst kısmındaki ölçüm panonuza ekleyebilirsiniz.

Daha önce olduğu gibi boş bir Metrik seç kutularından birine tıklayın. İletişim penceresinde, Özel izlemeler izleme türünü ve splash_seasonal_image_processing izleme adını seçin. Son olarak, bu metriği metrik panosuna eklemek için Metrik seç'e tıklayın.

7fb64d2340410576.png

  1. Farklılıkları daha da doğrulamak için splash_screen_trace verilerine daha yakından bakabilirsiniz. Metrik panosunda splash_screen_trace kartını tıklayın ve ardından Metrik ayrıntılarını görüntüle 'yi 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öreceksiniz. Sağdaki her bir sezonluk resim URL'sinin açılış ekranı süresini görüntülemek içinseason_image_url_attribute özel seasonal_image_url_attribute tıklayın:

8fa1a69019bb045e.png

  1. Açılış ekranı süre değerleriniz muhtemelen yukarıdaki ekran görüntüsünden biraz farklı olacaktır, ancak görsel bir URL'den indirildiğinde, varsayılan görseli ("unset" ile temsil edilir) kullanmaya kıyasla daha uzun bir süreye sahip olmanız gerekir.

Bu codelab'de bu uzun sürenin nedeni basit olabilir ancak gerçek bir uygulamada bu kadar açık olmayabilir. Toplanan süre verileri, uygulamayı çeşitli ağ bağlantısı koşullarında çalıştıran farklı cihazlardan gelecektir ve bu koşullar beklentinizden daha kötü olabilir. Bu gerçek dünyadaki bir durum olsaydı, bu konuyu nasıl araştıracağınıza bir bakalım.

  1. Kontrol Paneli ana sekmesine geri dönmek için sayfanın üst kısmındaki Performans'ı tıklayın: 640b696b79d90103.png
  2. Sayfanın altındaki izlemeler tablosunda Ağ istekleri sekmesine tıklayın. Bu tabloda, images.unsplash.com/** URL modeli de dahil olmak üzere, uygulamanızdan gelen tüm ağ isteklerini URL modellerinde toplanmış olarak göreceksiniz. Bu yanıt süresinin değerini, görüntünün indirilmesi ve işlenmesi için geçen toplam süre (yani splash_seasonal_image_processing izlemesinin süresi) ile karşılaştırırsanız, zamanın büyük bir kısmının görüntünün indirilmesi için harcandığını görebilirsiniz.

6f92ce0f23494507.png

Performans bulguları

Firebase Performance Monitoring'i kullanarak, yeni özelliğin etkinleştirilmesiyle son kullanıcılar üzerinde aşağıdaki etkiyi gördünüz:

  1. SplashScreenActivity geçirilen süre arttı.
  2. splash_seasonal_image_processing süresi çok uzundu.
  3. Gecikme, görüntünün indirilmesine yönelik yanıt süresinden ve görüntü için gereken karşılık gelen işlem süresinden kaynaklanıyordu.

Bir sonraki adımda, özelliği geri alarak ve özelliğin uygulanmasını nasıl iyileştirebileceğinizi belirleyerek performans üzerindeki etkiyi azaltacaksınız.

10. Özelliği geri alın

Açılış ekranı sırasında kullanıcılarınızın bekleme süresinin arttırılması arzu edilen bir durum değildir. Remote Config'in en önemli avantajlarından biri, kullanıcılarınıza başka bir sürüm yayınlamak zorunda kalmadan dağıtımınızı duraklatma ve geri alma yeteneğidir. Bu, sorunlara (son adımda keşfettiğiniz performans sorunları gibi) hızla tepki vermenize ve mutsuz kullanıcı sayısını en aza indirmenize olanak tanır.

Hızlı bir önlem olarak, tüm kullanıcılarınızın varsayılan görseli tekrar görebilmesi için kullanıma sunma yüzdelik dilimini 0 sıfırlayacaksınız:

  1. Firebase konsolundaki Remote Config sayfasına geri dönün.
  2. Sayfanın üst kısmındaki Koşullar'a tıklayın.
  3. Daha önce eklediğiniz Seasonal image rollout koşuluna tıklayın.
  4. Yüzdelik dilimini %0 olarak değiştirin.
  5. Durumu kaydet'i tıklayın.
  6. Değişiklikleri yayınla'ya 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örmelisiniz:

d946cab0df319e50.png

11. Performans sorunlarını düzeltin

Codelab'de daha önce açılış ekranınız için bir görsel indirmenin uygulamanızın yavaşlamasına neden olduğunu keşfetmiştiniz. İndirilen görsele daha yakından baktığınızda, görselin 2 MB'ın üzerindeki orijinal çözünürlüğünü kullandığınızı göreceksiniz! Performans sorununuza yönelik hızlı çözümlerden biri, görüntünün indirilmesinin daha az zaman alması için kaliteyi daha uygun bir çözünürlüğe düşürmektir.

Remote Config değerini tekrar yayınlayın

  1. Firebase konsolundaki Remote Config sayfasına geri dönün.
  2. seasonal_image_url parametresi için Düzenle simgesini tıklayın.
  3. Sezonluk görsel sunumunun Değerini https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 olarak güncelleyin ve ardından Kaydet'i tıklayın.

828dd1951a2ec4a4.png

  1. Sayfanın üst kısmındaki Koşullar sekmesine tıklayın.
  2. Sezonluk resim sunumu ' nu tıklayın ve ardından yüzdelik dilimini tekrar %100'e ayarlayın.
  3. Durumu kaydet'i tıklayın.

1974fa3bb789f36c.png

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

12. Düzeltmeyi test edin ve uyarıları ayarlayın

Uygulamayı yerel olarak çalıştırın

Yeni yapılandırma değeri farklı bir indirme resmi URL'si kullanacak şekilde ayarlandığında uygulamayı yeniden çalıştırın. Bu sefer açılış ekranında geçirilen sürenin eskisinden daha kısa olduğunu fark edeceksiniz.

b0cc91b6e48fb842.png

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

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

  1. Bu sefer ayrıntılar sayfasına gitmek için izleme tablosunu kullanacaksınız. İzleme tablosunun aşağısındaki Özel izlemeler sekmesinde, süre metriğinin daha ayrıntılı bir görünümünü yeniden görmek için özel izleme splash_seasonal_image_processing öğesine tıklayın.

2d7aaca03112c062.png

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

10e30c037a4237a2.png

  1. Artık açılış ekranınızın performansını iyileştirdiğinize göre, bir izleme ayarladığınız eşiği aştığında sizi bilgilendirecek uyarılar ayarlayabilirsiniz. Performans kontrol panelini açın ve splash_screen_trace için taşma menüsü (üç nokta) simgesine tıklayın ve Uyarı ayarları seçeneğine tıklayın.

4bd0a2a1faa14479.png

  1. Süre uyarısını etkinleştirmek için açma/kapatma düğmesine tıklayın. Eşik değerini, gördüğünüz değerin biraz üzerinde olacak şekilde ayarlayın; böylece splash_screen_trace'iniz eşiği aşarsa bir e-posta alırsınız.
  1. Uyarınızı oluşturmak için Kaydet'i tıklayın. İzleme tablosuna doğru aşağı kaydırın ve ardından uyarınızın etkinleştirildiğini görmek için Özel izlemeler sekmesine tıklayın!

2bb93639e2218d1.png

13. Tebrikler!

Tebrikler! Firebase Performance Monitoring SDK'yı etkinleştirdiniz ve yeni bir özelliğin performansını ölçmek için izler topladınız! Yeni bir özelliğin kullanıma sunulmasına ilişkin temel performans ölçümlerini izlediniz ve bir performans sorunu keşfedildiğinde hızlı bir şekilde tepki verdiniz. Tüm bunlar, Remote Config ile yapılandırma değişiklikleri yapma ve performans sorunlarını gerçek zamanlı olarak izleme yeteneği sayesinde mümkün oldu.

Neleri ele aldık?

  • Firebase Performans İzleme SDK'sını uygulamanıza ekleme
  • Belirli bir özelliği ölçmek için kodunuza özel bir kod izleme 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 sorunları belirlemek için performans izleme panosunun nasıl kullanılacağını anlama
  • Uygulamanızın performansı belirlediğiniz eşiği aştığında sizi bilgilendirecek performans uyarıları ayarlama

Daha fazla bilgi edin