أثناء تطوير التطبيقات واختبارها، قد يكون من المفيد إيقاف ميزة Performance Monitoring.
على سبيل المثال، من خلال إيقاف Performance Monitoring أثناء عملية تصميم تطبيقك، يمكنك إجراء ما يلي:
إيقاف وظائف معيّنة في Performance Monitoring (مثل الوظائف التي يوفّرها Performance Monitoring المكوّن الإضافي لنظام Gradle) في عمليات الإنشاء المخصّصة لتصحيح الأخطاء، ولكن إعادة تفعيل الوظائف لبنية الإصدار.
إيقاف Performance Monitoring عند إنشاء تطبيقك، ولكن السماح لتطبيقك بإعادة تفعيلها في وقت التشغيل
إيقاف Performance Monitoring عند إنشاء تطبيقك، وعدم السماح لتطبيقك بـ إعادة تفعيلها في وقت التشغيل
يمكنك أيضًا إنشاء تطبيقك مع Performance Monitoring تفعيل، ولكن استخدام Firebase Remote Config يمنحك المرونة اللازمة لإيقاف (وإعادة تفعيل) Performance Monitoring في تطبيقك العلني. باستخدام هذا الخيار، يمكنك حتى ضبط تطبيقك للسماح للمستخدمين بالموافقة على استخدام Performance Monitoring أو رفضها.
إيقاف Performance Monitoring أثناء عملية التصميم لتطبيقك
يمكنك إيقاف Performance Monitoring أثناء عملية التصميم من خلال إيقاف المكوّن الإضافي لنظام Gradle المتوافق مع Performance Monitoring و/أو من خلال إيقاف مكتبة Android المتوافقة مع Performance Monitoring.
أثناء التطوير وتصحيح الأخطاء، يكون إيقاف المكوّن الإضافي مفيدًا لأنّ قياس حالة التطبيق الذي يجريه المكوّن الإضافي يمكن أن يساهم في زيادة مدّة التصميم. ومع ذلك، قد يكون من المفيد إبقاء الـ مكتبة مفعّلة حتى تتمكّن من مواصلة عرض بيانات الأداء من عمليات تتبُّع بدء التطبيق والتطبيق في المقدّمة والتطبيق في الخلفية ، بالإضافة إلى أي عمليات تتبُّع للرموز المخصّصة في تطبيقك.
إيقاف المكوّن الإضافي لنظام Gradle المتوافق مع Performance Monitoring
يمكنك إيقاف المكوّن الإضافي Performance Monitoring من خلال إضافة علامة instrumentationEnabled
باستخدام الخيارات التالية:
سمة الإضافة : تؤدي إلى إيقاف المكوّن الإضافي لـ تنويعة تصميم معيّنة في وقت التجميع
سمة المشروع : تؤدي إلى إيقاف المكوّن الإضافي لـ جميع إصدارات الإنشاء في وقت التجميع
إيقاف المكوّن الإضافي من خلال علامة "سمة الإضافة"
باستخدام علامة سمات الإضافات ، يمكنك إيقاف المكوّن الإضافي 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 } } } }
إيقاف المكوّن الإضافي من خلال علامة "سمة المشروع"
باستخدام علامة سمة المشروع ، يمكنك إيقاف المكوّن الإضافي لـ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
إيقاف مكتبة AndroidPerformance 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:23.0.1")Java
implementation("com.google.firebase:firebase-config:23.0.1")يمكنك إعداد 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.سيؤدي هذا التغيير إلى تحويل طلبات Performance Monitoring SDK "بدون عملية" (NOOPs)، ما يزيل أي تأثيرات كبيرة على أداء التطبيق ناتجة عن استخدام Performance Monitoring SDK في تطبيقك.
إذا ضبطت قيمة perf_disable على
false، ستظل Performance Monitoring مفعّلة.