أثناء تطوير التطبيقات واختبارها، قد يكون من المفيد إيقاف Performance Monitoring.
على سبيل المثال، من خلال إيقاف Performance Monitoring أثناء عملية إنشاء تطبيقك، يمكنك إجراء ما يلي:
إيقاف وظائف معيّنة في Performance Monitoring (مثل تلك التي يوفّرها المكوّن الإضافي Gradle في Performance Monitoring) في الإصدارات المخصّصة لتصحيح الأخطاء، ولكن عليك إعادة تفعيل الوظائف لبنية الإصدار.
إيقاف Performance Monitoring عند إنشاء تطبيقك، ولكن السماح لتطبيقك بإعادة تفعيله في وقت التشغيل
يُرجى إيقاف Performance Monitoring عند إنشاء تطبيقك، وعدم السماح لتطبيقك بإعادة تفعيله في وقت التشغيل.
يمكنك أيضًا إنشاء تطبيقك مع تفعيل Performance Monitoring، ولكن استخدِم Firebase Remote Config لمنحك المرونة في إيقاف (وإعادة تفعيل) Performance Monitoring في تطبيقك العلني. من خلال هذا الخيار، يمكنك أيضًا ضبط تطبيقك للسماح للمستخدمين بالموافقة على استخدام Performance Monitoring أو رفضه.
إيقاف Performance Monitoring أثناء عملية إنشاء التطبيق
يمكنك إيقاف Performance Monitoring أثناء عملية الإنشاء من خلال إيقاف المكوّن الإضافي Performance Monitoring لنظام Gradle و/أو من خلال إيقاف مكتبة Performance Monitoring لنظام التشغيل Android.
أثناء عملية التطوير وتصحيح الأخطاء، يكون إيقاف المكوّن الإضافي مفيدًا لأنّ الأدوات التي يوفّرها المكوّن الإضافي يمكن أن تساهم في زيادة وقت الإنشاء. ومع ذلك، يمكنك إبقاء المكتبة مفعَّلة لتتمكّن من الاطّلاع على بيانات الأداء من عمليات تتبُّع بدء التطبيق والتطبيق في المقدّمة والتطبيق في الخلفية وأي عمليات تتبُّع للرموز البرمجية المخصّصة في تطبيقك.
إيقاف مكوّن Gradle الإضافي لـ "Performance Monitoring"
يمكنك إيقاف المكوّن الإضافي Performance Monitoring من خلال إضافة علامة instrumentationEnabled
باستخدام الخيارات التالية:
Extension Property: لإيقاف المكوّن الإضافي لتنويعة التصميم محدّدة في وقت التجميع
Project Property: لإيقاف المكوّن الإضافي لـ جميع تنويعات التصميم في وقت التجميع
إيقاف المكوّن الإضافي من خلال علامة Extension Property
باستخدام علامة Extensions Property، يمكنك إيقاف المكوّن الإضافي Performance Monitoring لتنويعة تصميم محدّدة في وقت التجميع.
في ملف Gradle على مستوى الجذر (على مستوى المشروع) (
<project>/build.gradle.ktsأو<project>/build.gradle)، تأكَّد من تحديد تبعية المكوّن الإضافي لنظام Gradle المتوافق مع Android على أنّها الإصدار 3.4.0 أو إصدار أحدث.بالنسبة إلى الإصدارات الأقدم من المكوّن الإضافي لنظام Gradle المتوافق مع Android، سيظل بإمكانك إيقاف المكوّن الإضافي Performance Monitoring لتنويعة تصميم معيّنة، ولكن لن يتم إلغاء وقت التصميم لهذه التنويعة بالكامل.
أضِف العلامة التالية إلى ملف Gradle الخاص بالوحدة (على مستوى التطبيق) (عادةً
<project>/<app-module>/build.gradle.ktsأو<project>/<app-module>/build.gradle)، ثم اضبطها علىfalseلإيقاف المكوّن الإضافي Performance Monitoring.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 } } } }
إيقاف المكوّن الإضافي من خلال علامة Project Property
باستخدام علامة Project Property، يمكنك إيقاف المكوّن الإضافي Performance Monitoring لجميع تنويعات التصميم في وقت التجميع.
أضِف العلامة التالية إلى ملف gradle.properties، ثم اضبطها على false لإيقاف المكوّن الإضافي Performance Monitoring.
// ... // 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 Performance Monitoring
في حال إيقاف مكتبة Performance Monitoring في وقت التجميع، يمكنك اختيار ما إذا كنت تريد السماح لتطبيقك بتفعيل المكتبة في وقت التشغيل.
إيقاف المكتبة في وقت التجميع، مع السماح لتطبيقك بتفعيلها في وقت التشغيل
أضِف عنصر <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" إجراء تغييرات على طريقة عمل تطبيقك ومظهره، لذا فهي توفّر طريقة مثالية لإيقاف "Performance Monitoring" في النُسخ المنشورة من تطبيقك.
لإيقاف جمع بيانات Performance Monitoring في المرة التالية التي يبدأ فيها تطبيق Android، استخدِم الرمز البرمجي النموذجي الموضّح أدناه. لمزيد من المعلومات حول استخدام Remote Config في تطبيق Android، يُرجى الاطّلاع على استخدام Firebase Remote Config على Android.
تأكَّد من أنّ Remote Config في قسم
dependenciesمن ملف Gradle الخاص بالوحدة (على مستوى التطبيق) (عادةً<project>/<app-module>/build.gradle.ktsأو<project>/<app-module>/build.gradle):Kotlin
implementation("com.google.firebase:firebase-config-ktx:24.0.0")Java
implementation("com.google.firebase:firebase-config:24.0.0")إعداد Remote Config وإيقاف Performance Monitoring إذا تم ضبط
perf_disableعلىtrue:Kotlin
// 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لاسترجاع قيم Remote Config وتفعيلها:Kotlin
// 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 } } });
لإيقاف Performance Monitoring في وحدة تحكّم Firebase، أنشئ مَعلمة perf_disable في مشروع تطبيقك، ثم اضبط قيمتها على
true.سيؤدي هذا التغيير إلى جعل الطلبات المرسَلة إلى حزمة تطوير البرامج (SDK) لـ "Performance Monitoring" طلبات "بدون عملية" (NOOP)، ما يمنع أي تأثيرات كبيرة في أداء التطبيق نتيجة استخدام حزمة تطوير البرامج (SDK) لـ "Performance Monitoring" في تطبيقك.
إذا ضبطت قيمة perf_disable على
false، سيظلّ Performance Monitoring مفعَّلاً.