תחילת השימוש ב-Performance Monitoring ל-Android

לפני שמתחילים

אם עדיין לא עשיתם זאת, עליכם להוסיף את Firebase לפרויקט Android שלכם.

שלב 1: מוסיפים את Performance Monitoring SDK לאפליקציה

אחרי שמוסיפים את Performance Monitoring SDK, ‏ Firebase מתחיל לאסוף באופן אוטומטי נתונים לגבי הצגת המסך של האפליקציה ונתונים שקשורים למחזור החיים של האפליקציה (למשל זמן הפעלת האפליקציה). כדי לאפשר ל-Firebase לעקוב אחרי בקשות לרשת, צריך גם להוסיף את התוסף Performance Monitoring Gradle (בשלב הבא).

  1. בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל <project>/<app-module>/build.gradle.kts או <project>/<app-module>/build.gradle), מוסיפים את התלות בספריית Performance Monitoring ל-Android. מומלץ להשתמש ב-Firebase Android BoM כדי לשלוט בניהול הגרסאות של הספריות.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:34.0.0"))
    
        // Add the dependency for the Performance Monitoring library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-perf")
    }

    באמצעות Firebase Android BoM, האפליקציה תמיד תשתמש בגרסאות תואמות של ספריות Firebase ל-Android.

    (חלופה)  מוסיפים תלויות של ספריות Firebase בלי להשתמש ב-BoM

    אם לא משתמשים ב-Firebase BoM, צריך לציין את הגרסה של כל ספריית Firebase בשורת התלות שלה.

    הערה: אם אתם משתמשים בכמה ספריות Firebase באפליקציה, מומלץ מאוד להשתמש ב-BoM כדי לנהל את גרסאות הספריות, וכך לוודא שכל הגרסאות תואמות.

    dependencies {
        // Add the dependency for the Performance Monitoring library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-perf:22.0.0")
    }

  2. קומפילציה מחדש של האפליקציה.

שלב 2: מוסיפים את הפלאגין Performance Monitoring Gradle לאפליקציה

אחרי שמוסיפים את Performance Monitoring Gradle plugin, ‏ Firebase מתחיל באופן אוטומטי לאסוף נתונים לגבי בקשות רשת HTTP/S. התוסף מאפשר גם להטמיע מעקב אחר קוד מותאם אישית באמצעות ההערה ‎@AddTrace.

  1. בקובץ Gradle ברמת הבסיס (ברמת הפרויקט) (<project>/build.gradle.kts או <project>/build.gradle), מוסיפים את הפלאגין Performance Monitoring Gradle:

    Kotlin

    plugins {
        // To benefit from the latest Performance Monitoring plugin features,
        // update your Android Gradle plugin dependency to at least v3.4.0
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.3" apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id("com.google.firebase.firebase-perf") version "2.0.0" apply false
    }

    Groovy

    plugins {
        // To benefit from the latest Performance Monitoring plugin features,
        // update your Android Gradle plugin dependency to at least v3.4.0
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.3' apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id 'com.google.firebase.firebase-perf' version '2.0.0' apply false
    }
  2. בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל <project>/<app-module>/build.gradle.kts או <project>/<app-module>/build.gradle), מוסיפים את הפלאגין Performance MonitoringGradle:

    Kotlin

    plugins {
        id("com.android.application")
    
        // Make sure that you have the Google services Gradle plugin
        id("com.google.gms.google-services")
    
        // Add the Performance Monitoring Gradle plugin
        id("com.google.firebase.firebase-perf")
        ...
    }

    Groovy

    plugins {
        id 'com.android.application'
    
        // Make sure that you have the Google services Gradle plugin
        id 'com.google.gms.google-services'
    
        // Add the Performance Monitoring Gradle plugin
        id 'com.google.firebase.firebase-perf'
        ...
    }
  3. קומפילציה מחדש של האפליקציה.

שלב 3: יצירת אירועי ביצועים להצגת הנתונים הראשונית

מערכת Firebase מתחילה לעבד את האירועים אחרי שמוסיפים את ה-SDK לאפליקציה. אם אתם עדיין מפתחים באופן מקומי, כדאי ליצור אינטראקציה עם האפליקציה כדי ליצור אירועים לאיסוף ועיבוד נתונים ראשוניים.

  1. כדי ליצור אירועים, מעבירים את האפליקציה בין הרקע לחזית כמה פעמים, יוצרים אינטראקציה עם האפליקציה על ידי ניווט בין מסכים ו/או מפעילים בקשות לרשת.

  2. עוברים אל לוח הבקרה לביצועים במסוף Firebase. הנתונים הראשוניים אמורים להופיע תוך כמה דקות.

    אם לא מוצגים הנתונים הראשוניים, כדאי לעיין בטיפים לפתרון בעיות.

שלב 4: (אופציונלי) הצגת הודעות יומן לאירועי ביצועים

  1. מפעילים רישום ביומן של ניפוי הבאגים עבור Performance Monitoring בזמן הבנייה על ידי הוספת רכיב <meta-data> לקובץ AndroidManifest.xml של האפליקציה, באופן הבא:

    <application>
        <meta-data
          android:name="firebase_performance_logcat_enabled"
          android:value="true" />
    </application>
  2. בודקים אם יש הודעות שגיאה ביומני הרישום.

  3. Performance Monitoring מתייג את הודעות היומן שלו באמצעות FirebasePerformance. אפשר להשתמש בסינון logcat כדי לראות באופן ספציפי את רישום הבקשות ברשת HTTP/S ואת מעקב משך הזמן, על ידי הרצת הפקודה הבאה:

    adb logcat -s FirebasePerformance
  4. כדאי לבדוק את סוגי היומנים הבאים כדי לוודא ש-Performance Monitoring מתעד אירועי ביצועים:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. לוחצים על כתובת ה-URL כדי לראות את הנתונים במסוף Firebase. יכול להיות שיחלפו כמה רגעים עד שהנתונים יתעדכנו בלוח הבקרה.

אם האפליקציה לא מתעדת אירועי ביצועים, כדאי לעיין בטיפים לפתרון בעיות.

שלב 5: (אופציונלי) מוסיפים מעקב מותאם אישית לקוד ספציפי

כדי לעקוב אחרי נתוני ביצועים שמשויכים לקוד ספציפי באפליקציה, אפשר להטמיע מעקב אחרי קוד בהתאמה אישית.

באמצעות מעקב מותאם אישית אחר קוד, אפשר למדוד כמה זמן לוקח לאפליקציה להשלים משימה ספציפית או קבוצה של משימות, כמו טעינה של קבוצת תמונות או שליחת שאילתה למסד הנתונים. מדד ברירת המחדל למעקב אחר קוד בהתאמה אישית הוא משך הזמן, אבל אפשר גם להוסיף מדדים מותאמים אישית, כמו פגיעות במטמון ואזהרות לגבי זיכרון.

בקוד, מגדירים את ההתחלה והסוף של מעקב קוד בהתאמה אישית (ומוסיפים מדדים בהתאמה אישית שרוצים) באמצעות ה-API שמופיע ב-Performance Monitoring SDK. באפליקציות ל-Android, אפשר גם לעקוב אחרי משך הזמן של שיטות ספציפיות באמצעות ההערה ‎@AddTrace.

במאמר הוספת מעקב לקוד ספציפי אפשר לקבל מידע נוסף על התכונות האלה ועל אופן ההוספה שלהן לאפליקציה.

שלב 6: פורסים את האפליקציה ואז בודקים את התוצאות

אחרי שמאמתים את Performance Monitoring באמצעות מכשיר בדיקה אחד או יותר, אפשר לפרוס את הגרסה המעודכנת של האפליקציה למשתמשים.

אפשר לעקוב אחרי נתוני הביצועים בלוח הבקרה לביצועים במסוף Firebase.

בעיות מוכרות

  • תוסף Gradle‏ v1.1.0‏ Performance Monitoring עלול לגרום לחוסר התאמה בתלות של Guava, וכתוצאה מכך לשגיאה הבאה:

    Error:Execution failed for task ':app:packageInstantRunResourcesDebug'.
    > com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;

    אם השגיאה הזו מופיעה, אפשר:

    • משדרגים את התוסף Performance Monitoring לגרסה 1.1.1 ואילך (הגרסה העדכנית ביותר היא 2.0.0).

    • מחליפים את שורת התלות של הפלאגין Performance Monitoring בקובץ Gradle ברמת הבסיס (ברמת הפרויקט) (<project>/build.gradle.ktsאו <project>/build.gradle), באופן הבא:

      Kotlin

      buildscript {
        // ...
      
        dependencies {
          // ...
      
          // Replace the standard Performance Monitoring plugin dependency line, as follows:
          classpath("com.google.firebase:perf-plugin:1.1.0") {
              exclude(group = "com.google.guava", module = "guava-jdk5")
          }
        }
      }

      Groovy

      buildscript {
        // ...
      
        dependencies {
          // ...
      
          // Replace the standard Performance Monitoring plugin dependency line, as follows:
          classpath('com.google.firebase:perf-plugin:1.1.0') {
              exclude group: 'com.google.guava', module: 'guava-jdk5'
          }
        }
      }
  • Performance Monitoring מדווח על הגודל הכולל של מטען ייעודי (payload) לבקשות רשת HTTP על סמך הערך שמוגדר בכותרת HTTP content-length. יכול להיות שהערך הזה לא תמיד מדויק.

  • Performance Monitoring תומך רק בתהליך הראשי באפליקציות Android מרובות תהליכים.

השלבים הבאים