במהלך הפיתוח והבדיקות של האפליקציה, ייתכן שיהיה שימושי להשבית את ניטור הביצועים.
לדוגמה, על ידי השבתת ניטור ביצועים במהלך תהליך בניית האפליקציה שלך , אתה יכול:
השבת פונקציונליות מסוימות של ניטור ביצועים (כגון אלו המסופקים על ידי הפלאגין Performance Monitoring Gradle ) בבניית הבאגים שלך, אך הפעל מחדש את הפונקציונליות עבור בניית הגרסה שלך.
השבת את ניטור הביצועים בעת בניית האפליקציה שלך, אך אפשר לאפליקציה שלך להפעיל אותה מחדש בזמן ריצה.
השבת את ניטור הביצועים בעת בניית האפליקציה שלך, ואל תאפשר לאפליקציה שלך להפעיל אותה מחדש בזמן ריצה.
אתה יכול גם לבנות את האפליקציה שלך עם ניטור ביצועים מופעל , אבל השתמש ב-Firebase Remote Config כדי לתת לך גמישות להשבית (ולהפעיל מחדש) את ניטור הביצועים באפליקציית הייצור שלך. עם אפשרות זו, אתה אפילו יכול להגדיר את האפליקציה שלך כדי לאפשר למשתמשים להצטרף או לבטל את הסכמתך לשימוש בניטור ביצועים.
השבת את ניטור הביצועים במהלך תהליך בניית האפליקציה שלך
אתה יכול להשבית את ניטור הביצועים במהלך תהליך הבנייה שלך על ידי השבתת התוסף Gradle ניטור ביצועים ו/או על ידי השבתת ספריית ניטור הביצועים של Android .
במהלך פיתוח ואיתור באגים, השבתת התוסף שימושית מכיוון שהמכשור על ידי הפלאגין יכול לתרום להגדלת זמן הבנייה. עם זאת, ייתכן שתשקול להשאיר את הספרייה פעילה כך שעדיין תוכל לצפות בנתוני ביצועים מהתחלת האפליקציה, מעקב אפליקציה בחזית ואפליקציה ברקע, כמו גם מעקבי קוד מותאם אישית באפליקציה שלך.
השבת את הפלאגין Gradle ניטור ביצועים
אתה יכול להשבית את הפלאגין לניטור ביצועים על ידי הוספת דגל instrumentationEnabled
באמצעות האפשרויות הבאות:
Extension Property - משבית את התוסף עבור וריאנט בנייה ספציפי בזמן ההידור
Project Property - משבית את התוסף עבור כל גרסאות הבנייה בזמן ההידור
השבת את התוסף באמצעות דגל מאפיין הרחבה
על ידי שימוש בדגל של מאפיין הרחבות , אתה יכול להשבית את התוסף לניטור ביצועים עבור וריאנט בנייה ספציפי בזמן ההידור.
בקובץ Gradle ברמת השורש (ברמת הפרויקט) (
<project>/build.gradle.kts
או<project>/build.gradle
), ודא שהתלות שלך ב-Android Gradle Plugin מוגדרת כ-v3.4.0 ואילך.עבור גרסאות קודמות של תוסף Android Gradle, אתה עדיין יכול להשבית את התוסף לניטור ביצועים עבור גרסת בנייה ספציפית, אך תרומת זמן הבנייה עבור גרסה זו לא תבוטל לחלוטין.
הוסף את הדגל הבא לקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל
<project>/<app-module>/build.gradle.kts
או<project>/<app-module>/build.gradle
), ולאחר מכן הגדר אותו ל-false
כדי להשבית את הפלאגין לניטור ביצועים.Kotlin
import com.google.firebase.perf.plugin.FirebasePerfExtension // ... android { // ... buildTypes { getByName("debug") { configure<FirebasePerfExtension> { // Set this flag to 'false' to disable @AddTrace annotation processing and // automatic monitoring of HTTP/S network requests // for a specific build variant at compile time. setInstrumentationEnabled(false) } } } }
Groovy
android { // ... buildTypes { debug { FirebasePerformance { // Set this flag to 'false' to disable @AddTrace annotation processing and // automatic monitoring of HTTP/S network requests // for a specific build variant at compile time. instrumentationEnabled false } } } }
השבת את התוסף באמצעות דגל נכס פרויקט
על ידי שימוש בדגל של נכס פרויקט , אתה יכול להשבית את התוסף לניטור ביצועים עבור כל גרסאות הבנייה בזמן ההידור.
הוסף את הדגל הבא לקובץ gradle.properties
שלך, ולאחר מכן הגדר אותו ל- false
כדי להשבית את הפלאגין לניטור ביצועים.
// ... // Set this flag to 'false' to disable @AddTrace annotation processing and // automatic monitoring of HTTP/S network requests // for all build variants at compile time. firebasePerformanceInstrumentationEnabled=false
השבת את ספריית ניטור הביצועים של Android
אם תשבית את ספריית ניטור הביצועים בזמן ההידור, תוכל לבחור אם לאפשר לאפליקציה שלך להפעיל את הספרייה בזמן ריצה.
השבת את הספרייה בזמן ההידור, אך אפשר לאפליקציה שלך להפעיל אותה בזמן ריצה
הוסף את רכיב ה- <meta-data>
הבא לקובץ AndroidManifest.xml
של האפליקציה שלך:
<application> <meta-data android:name="firebase_performance_collection_enabled" android:value="false" /> </application>
השבת את הספרייה בזמן ההידור, אך אל תאפשר לאפליקציה שלך להפעיל אותה בזמן ריצה
הוסף את רכיב ה- <meta-data>
הבא לקובץ AndroidManifest.xml
של האפליקציה שלך:
<application> <meta-data android:name="firebase_performance_collection_deactivated" android:value="true" /> </application>
השבת את האפליקציה שלך בזמן ריצה באמצעות Remote Config
Firebase Remote Config מאפשר לך לבצע שינויים בהתנהגות ובמראה של האפליקציה שלך, כך שהיא מספקת דרך אידיאלית לאפשר לך להשבית את ניטור הביצועים במופעים שנפרסו באפליקציה שלך.
כדי להשבית את איסוף הנתונים של ניטור ביצועים בפעם הבאה שאפליקציית Android שלך מופעלת, השתמש בקוד לדוגמה המוצג להלן. למידע נוסף על שימוש בתצורה מרחוק באפליקציית Android, ראה שימוש בתצורה מרחוק של Firebase ב-Android .
ודא ש-Remote Config נמצא בחלק
dependencies
של קובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל<project>/<app-module>/build.gradle.kts
או<project>/<app-module>/build.gradle
):Kotlin+KTX
implementation("com.google.firebase:firebase-config-ktx:21.4.1")
Java
implementation("com.google.firebase:firebase-config:21.4.1")
הגדר תצורה מרחוק והשבת את ניטור הביצועים אם
perf_disable
מוגדר כ-true
:Kotlin+KTX
// Setup remote config val config = Firebase.remoteConfig // You can uncomment the following two statements to permit more fetches when // validating your app, but you should comment out or delete these lines before // distributing your app in production. // val configSettings = remoteConfigSettings { // minimumFetchIntervalInSeconds = 3600 // } // config.setConfigSettingsAsync(configSettings) // Load in-app defaults from an XML file that sets perf_disable to false until you update // values in the Firebase Console // Observe the remote config parameter "perf_disable" and disable Performance Monitoring if true config.setDefaultsAsync(R.xml.remote_config_defaults) .addOnCompleteListener { task -> if (task.isSuccessful) { Firebase.performance.isPerformanceCollectionEnabled = !config.getBoolean("perf_disable") } else { // An error occurred while setting default parameters } }
Java
// Setup remote config final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance(); // You can uncomment the following two statements to permit more fetches when // validating your app, but you should comment out or delete these lines before // distributing your app in production. // FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() // .setMinimumFetchIntervalInSeconds(3600) // .build(); // config.setConfigSettingsAsync(configSettings); // Load in-app defaults from an XML file that sets perf_disable to false until you update // values in the Firebase Console //Observe the remote config parameter "perf_disable" and disable Performance Monitoring if true config.setDefaultsAsync(R.xml.remote_config_defaults) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { if (config.getBoolean("perf_disable")) { FirebasePerformance.getInstance().setPerformanceCollectionEnabled(false); } else { FirebasePerformance.getInstance().setPerformanceCollectionEnabled(true); } } else { // An error occurred while setting default parameters } } });
הוסף את הקוד הבא ל-
MainActivity.java
כדי לאחזר ולהפעיל ערכי Config מרחוק:Kotlin+KTX
// Remote Config fetches and activates parameter values from the service val config = Firebase.remoteConfig config.fetch(3600) .continueWithTask { task -> if (!task.isSuccessful) { task.exception?.let { throw it } } config.activate() } .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Parameter values successfully activated // ... } else { // Handle errors } }
Java
//Remote Config fetches and activates parameter values from the service final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance(); config.fetch(3600) .continueWithTask(new Continuation<Void, Task<Boolean>>() { @Override public Task<Boolean> then(@NonNull Task<Void> task) throws Exception { if (!task.isSuccessful()) { throw task.getException(); } return config.activate(); } }) .addOnCompleteListener(new OnCompleteListener<Boolean>() { @Override public void onComplete(@NonNull Task<Boolean> task) { if (task.isSuccessful()) { // Parameter values successfully activated // ... } else { // Handle errors } } });
כדי להשבית את ניטור הביצועים במסוף Firebase, צור פרמטר perf_disable בפרויקט של האפליקציה שלך, ולאחר מכן הגדר את הערך שלו ל-
true
.שינוי זה יבצע קריאות ל-SDK לניטור ביצועים "ללא הפעלה" (NOOPs), ולבטל כל השפעה משמעותית על ביצועי האפליקציה מהשימוש ב-SDK לניטור ביצועים באפליקציה שלך.
אם תגדיר את הערך של perf_disable ל-
false
, ניטור הביצועים יישאר מופעל.