در طول توسعه و آزمایش برنامه، ممکن است غیرفعال کردن Performance Monitoring مفید باشد.
برای مثال، با غیرفعال کردن Performance Monitoring در طول فرآیند ساخت برنامه ، میتوانید:
برخی از عملکردهای Performance Monitoring (مانند مواردی که توسط افزونه Performance Monitoring Gradle ارائه شده است) را در بیلدهای اشکال زدایی خود غیرفعال کنید، اما عملکردها را برای نسخه انتشار خود دوباره فعال کنید.
هنگام ساخت برنامه، Performance Monitoring غیرفعال کنید، اما به برنامه خود اجازه دهید در زمان اجرا دوباره آن را فعال کند.
هنگام ساخت برنامه، Performance Monitoring غیرفعال کنید و اجازه ندهید برنامه شما در زمان اجرا دوباره آن را فعال کند.
همچنین میتوانید برنامه خود را با فعال کردن Performance Monitoring بسازید، اما Firebase Remote Config استفاده کنید تا به شما انعطافپذیری برای غیرفعال کردن (و فعال کردن مجدد) Performance Monitoring در برنامه تولیدی خود بدهد. با استفاده از این گزینه، حتی میتوانید برنامه خود را طوری پیکربندی کنید که به کاربران اجازه دهد از Performance Monitoring استفاده کنند یا از آن انصراف دهند.
Performance Monitoring در طول فرآیند ساخت اپلیکیشن خود غیرفعال کنید
میتوانید با غیرفعال کردن افزونه Gradle Performance Monitoring و/یا با غیرفعال کردن کتابخانه Android Performance Monitoring Performance Monitoring در طول فرآیند ساخت خود غیرفعال کنید.
در طول توسعه و اشکال زدایی، غیرفعال کردن افزونه مفید است زیرا ابزار دقیق توسط افزونه می تواند به افزایش زمان ساخت کمک کند. با این حال، ممکن است در نظر داشته باشید که کتابخانه را فعال نگه دارید تا همچنان بتوانید دادههای عملکرد را از ردیابیهای شروع برنامه، برنامه در پیشزمینه، و برنامه در پسزمینه و همچنین هرگونه ردیابی کد سفارشی در برنامه خود مشاهده کنید.
افزونه Gradle Performance Monitoring را غیرفعال کنید
میتوانید با افزودن یک پرچم instrumentationEnabled
با استفاده از گزینههای زیر، افزونه Performance Monitoring غیرفعال کنید:
Extension Property - افزونه را برای یک نوع ساخت خاص در زمان کامپایل غیرفعال می کند
Project Property - پلاگین را برای همه انواع ساخت در زمان کامپایل غیرفعال می کند
افزونه را از طریق یک پرچم Extension Property غیرفعال کنید
با استفاده از یک پرچم Extensions Property ، می توانید افزونه Performance Monitoring برای یک نوع ساخت خاص در زمان کامپایل غیرفعال کنید.
در فایل Gradle سطح ریشه (سطح پروژه) خود (
<project>/build.gradle.kts
یا<project>/build.gradle
)، مطمئن شوید که وابستگی به افزونه Gradle Android شما نسخه 3.4.0 یا جدیدتر مشخص شده است.برای نسخههای قبلی پلاگین 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 } } } }
افزونه را از طریق پرچم 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
کتابخانه اندروید 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+KTX
implementation("com.google.firebase:firebase-config-ktx:22.0.1")
Java
implementation("com.google.firebase:firebase-config:22.0.1")
اگر
perf_disable
رویtrue
تنظیم شده باشد، Remote Config تنظیم کنید و Performance Monitoring غیرفعال کنید: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 } } });
کد زیر را به
MainActivity.java
اضافه کنید تا مقادیر Remote Config واکشی و فعال کنید: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 } } });
برای غیرفعال کردن Performance Monitoring در کنسول Firebase ، یک پارامتر perf_disable در پروژه برنامه خود ایجاد کنید، سپس مقدار آن را روی
true
تنظیم کنید.این تغییر باعث میشود که تماسهای «بدون عملیات» SDK Performance Monitoring (NOOPs) برقرار شود و هرگونه تأثیر قابل توجهی بر عملکرد برنامه از استفاده از SDK Performance Monitoring در برنامه شما حذف شود.
اگر مقدار perf_disable را روی
false
تنظیم کنید، Performance Monitoring فعال باقی میماند.