تعطيل مراقبة أداء Firebase

أثناء تطوير التطبيق واختباره، قد تجد أنه من المفيد تعطيل مراقبة الأداء.

على سبيل المثال، من خلال تعطيل مراقبة الأداء أثناء عملية إنشاء التطبيق ، يمكنك:

  • قم بتعطيل وظائف معينة لمراقبة الأداء (مثل تلك التي يوفرها البرنامج الإضافي Performance Monitoring Gradle ) في إصدارات تصحيح الأخطاء الخاصة بك، ولكن أعد تمكين الوظائف الخاصة بإصدار الإصدار الخاص بك.

  • قم بتعطيل مراقبة الأداء عند إنشاء تطبيقك، ولكن اسمح لتطبيقك بإعادة تمكينه في وقت التشغيل.

  • قم بتعطيل مراقبة الأداء عند إنشاء تطبيقك، ولا تسمح لتطبيقك بإعادة تمكينه في وقت التشغيل.

يمكنك أيضًا إنشاء تطبيقك مع تمكين مراقبة الأداء، ولكن استخدم Firebase Remote Config لتمنحك المرونة اللازمة لتعطيل (وإعادة تمكين) مراقبة الأداء في تطبيق الإنتاج الخاص بك. باستخدام هذا الخيار، يمكنك أيضًا تكوين تطبيقك للسماح للمستخدمين بالاشتراك أو إلغاء الاشتراك في استخدام مراقبة الأداء.

قم بتعطيل مراقبة الأداء أثناء عملية إنشاء التطبيق الخاص بك

يمكنك تعطيل مراقبة الأداء أثناء عملية الإنشاء عن طريق تعطيل البرنامج الإضافي Performance Monitoring Gradle و/أو عن طريق تعطيل مكتبة Performance Monitoring Android .

أثناء التطوير وتصحيح الأخطاء، يكون تعطيل المكون الإضافي مفيدًا لأن الأدوات التي يستخدمها المكون الإضافي يمكن أن تساهم في زيادة وقت الإنشاء. ومع ذلك، قد تفكر في إبقاء المكتبة ممكّنة بحيث لا يزال بإمكانك عرض بيانات الأداء من بداية التطبيق، وتتبعات التطبيق في المقدمة، وتتبعات التطبيق في الخلفية، بالإضافة إلى أي آثار تعليمات برمجية مخصصة في تطبيقك.

قم بتعطيل البرنامج المساعد Gradle لمراقبة الأداء

يمكنك تعطيل المكون الإضافي لمراقبة الأداء عن طريق إضافة علامة instrumentationEnabled باستخدام الخيارات التالية:

  • خاصية الامتداد - تعمل على تعطيل المكون الإضافي لمتغير بناء محدد في وقت الترجمة

  • خاصية المشروع - تعطيل البرنامج المساعد لجميع متغيرات البناء في وقت الترجمة

قم بتعطيل المكون الإضافي عبر علامة خاصية الامتداد

باستخدام علامة خاصية الامتدادات ، يمكنك تعطيل المكون الإضافي لمراقبة الأداء لمتغير بناء محدد في وقت الترجمة.

  1. في ملف Gradle على مستوى الجذر (على مستوى المشروع) ( <project>/build.gradle.kts أو <project>/build.gradle )، تأكد من تحديد تبعية Android Gradle Plugin على أنها v3.4.0 أو أحدث.

    بالنسبة للإصدارات السابقة من مكون Android Gradle الإضافي، لا يزال بإمكانك تعطيل المكون الإضافي لمراقبة الأداء لمتغير بناء محدد، ولكن لن يتم التخلص من مساهمة وقت الإنشاء لهذا المتغير تمامًا.

  2. أضف العلامة التالية إلى ملف 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، استخدم رمز المثال الموضح أدناه. لمزيد من المعلومات حول استخدام Remote Config في تطبيق Android، راجع استخدام Firebase Remote Config على Android .

  1. تأكد من وجود 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.6.3")
    

    Java

      implementation("com.google.firebase:firebase-config:21.6.3")
    
  2. قم بإعداد التكوين عن بعد وتعطيل مراقبة الأداء إذا تم تعيين 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
                    }
                }
            });
  3. أضف الكود التالي إلى MainActivity.java لجلب قيم التكوين عن بعد وتنشيطها:

    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
                    }
                }
            });
  4. لتعطيل مراقبة الأداء في وحدة تحكم Firebase، قم بإنشاء معلمة perf_disable في مشروع تطبيقك، ثم قم بتعيين قيمتها على true .

    سيؤدي هذا التغيير إلى إجراء مكالمات إلى مكالمات "no Operation" (NOOPs) SDK لمراقبة الأداء، مما يؤدي إلى إزالة أي تأثيرات مهمة على أداء التطبيق من استخدام SDK لمراقبة الأداء في تطبيقك.

    إذا قمت بتعيين قيمة perf_disable على false ، فستظل مراقبة الأداء ممكنة.