إيقاف مراقبة أداء Firebase

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

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

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

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

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

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

إيقاف ميزة "مراقبة الأداء" أثناء عملية إنشاء تطبيقك

يمكنك إيقاف ميزة "مراقبة الأداء" أثناء عملية التصميم من خلال إيقاف المكوّن الإضافي لنظام Gradle ضِمن "مراقبة الأداء" و/أو إيقاف مكتبة "مراقبة الأداء" لأجهزة Android.

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

إيقاف المكوّن الإضافي لنظام Gradle خاصًا بمراقبة الأداء

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

  • موقع الإضافة: لإيقاف المكوّن الإضافي لصيغة إصدار محدّدة في وقت التجميع

  • موقع المشروع: لإيقاف المكوّن الإضافي لجميع صيغ الإصدار في وقت التجميع

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

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

  1. في ملف Gradle على مستوى الجذر (على مستوى المشروع) (<project>/build.gradle.kts أو <project>/build.gradle)، تأكَّد من تحديد الإصدار 3.4.0 أو إصدار أحدث من اعتمادية المكوّن الإضافي لنظام Gradle المتوافق مع Android.

    بالنسبة إلى الإصدارات السابقة من "مكوّن Gradle الإضافي لنظام Android"، سيظل بإمكانك إيقاف المكوّن الإضافي "مراقبة الأداء" لصيغة إصدار معيّنة، ولكن لن يتم التخلص بالكامل من مقدار وقت الإنشاء لهذا الإصدار.

  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>

إيقاف تطبيقك في وقت التشغيل باستخدام ميزة "الإعداد عن بُعد"

تتيح لك ميزة "الإعداد عن بُعد في Firebase" إجراء تغييرات على سلوك تطبيقك ومظهره، وبالتالي توفير طريقة مثالية للسماح لك بإيقاف "مراقبة الأداء" في مثيلات التطبيق التي تم نشرها.

لإيقاف جمع بيانات "مراقبة الأداء" في المرّة القادمة التي يبدأ فيها تطبيق Android، استخدِم الرمز النموذجي الموضّح أدناه. للحصول على مزيد من المعلومات عن استخدام ميزة "الإعداد عن بُعد" في تطبيقات Android، يُرجى الاطّلاع على استخدام ميزة "الإعداد عن بُعد في Firebase" على أجهزة Android.

  1. تأكَّد من توفُّر ميزة "الإعداد عن بُعد" في القسم dependencies في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً ما يكون <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle):

    Kotlin+KTX

      implementation("com.google.firebase:firebase-config-ktx:22.0.0")
    

    Java

      implementation("com.google.firebase:firebase-config:22.0.0")
    
  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.

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

    في حال ضبط القيمة perf_disable على false، ستظل ميزة "مراقبة الأداء" مفعّلة.