در طول توسعه و آزمایش برنامه، ممکن است غیرفعال کردن Performance Monitoring مفید باشد.
برای مثال، با غیرفعال کردن Performance Monitoring در طول فرآیند ساخت برنامه ، میتوانید:
برخی از قابلیتهای Performance Monitoring (مانند مواردی که توسط افزونه Performance Monitoring Gradle ارائه میشوند) را در نسخههای اشکالزدایی (debug) خود غیرفعال کنید، اما این قابلیتها را برای نسخه نهایی (release build) دوباره فعال کنید.
هنگام ساخت برنامه، 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
شما میتوانید افزونه Performance Monitoring را با اضافه کردن پرچم instrumentationEnabled با استفاده از گزینههای زیر غیرفعال کنید:
ویژگی افزونه - افزونه را برای یک نوع ساخت خاص در زمان کامپایل غیرفعال میکند
ویژگی پروژه - افزونه را برای همه انواع ساخت در زمان کامپایل غیرفعال میکند
افزونه را از طریق پرچم ویژگی افزونه غیرفعال کنید
با استفاده از پرچم ویژگی افزونهها ، میتوانید افزونه Performance Monitoring را برای یک نوع ساخت خاص در زمان کامپایل غیرفعال کنید.
در فایل Gradle سطح ریشه (سطح پروژه) خود (
<project>/build.gradle.ktsیا<project>/build.gradle)، مطمئن شوید که وابستگی افزونه Android Gradle شما نسخه ۳.۴.۰ یا بالاتر تعیین شده باشد.برای نسخههای قبلی افزونهی اندروید گریدل، همچنان میتوانید افزونهی 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 اندروید
اگر کتابخانه 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 دفعهی بعدی که برنامهی اندروید شما اجرا میشود، از کد نمونهی نشان داده شده در زیر استفاده کنید. برای اطلاعات بیشتر در مورد استفاده از Remote Config در یک برنامهی اندروید، به Use Firebase Remote Config در اندروید مراجعه کنید.
مطمئن شوید که 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 تنظیم کنید و اگر
perf_disableرویtrueتنظیم شده باشد، Performance Monitoring غیرفعال کنید: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تنظیم کنید.این تغییر باعث میشود فراخوانیهای «بدون عملیات» (NOOP) به Performance Monitoring SDK انجام شود و هرگونه تأثیر قابل توجه بر عملکرد برنامه از استفاده از Performance Monitoring SDK در برنامه شما حذف شود.
اگر مقدار perf_disable را روی
falseتنظیم کنید، Performance Monitoring همچنان فعال میماند.