أثناء تطوير التطبيقات واختبارها، قد يكون من المفيد إيقاف ميزة 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 أثناء عملية الإنشاء من خلال إيقاف المكوّن الإضافي Performance Monitoring لنظام Gradle و/أو من خلال إيقاف مكتبة Performance Monitoring لنظام التشغيل Android.
أثناء عملية التطوير وتصحيح الأخطاء، يكون إيقاف المكوّن الإضافي مفيدًا لأنّ عملية القياس التي يجريها المكوّن الإضافي قد تساهم في زيادة وقت الإنشاء. ومع ذلك، ننصحك بإبقاء المكتبة مفعَّلة حتى تتمكّن من مواصلة عرض بيانات الأداء من عمليات تتبُّع بدء تشغيل التطبيق والتطبيق في المقدّمة والتطبيق في الخلفية، بالإضافة إلى أي عمليات تتبُّع للرموز المخصّصة في تطبيقك.
إيقاف Performance Monitoring Gradle Plugin
يمكنك إيقاف المكوّن الإضافي Performance Monitoring عن طريق إضافة علامة instrumentationEnabled
باستخدام الخيارات التالية:
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 } } } }
إيقاف المكوّن الإضافي من خلال علامة "سمة المشروع"
باستخدام علامة سمة المشروع، يمكنك إيقاف المكوّن الإضافي 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
إيقاف Performance Monitoring مكتبة Android
إذا أوقفت مكتبة 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.0")
Java
implementation("com.google.firebase:firebase-config:23.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 مفعّلاً.