درطول توسعه و آزمایش برنامه، ممکن است غیرفعال کردن 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 را درطول فرایند ساخت با غیرفعال کردن افزایه Gradle Performance Monitoring و/یا با غیرفعال کردن کتابخانه Android Performance Monitoring غیرفعال کنید.
درطول توسعه و اشکالزدایی، غیرفعال کردن افزونه مفید است زیرا ابزارسازی توسط افزونه میتواند به افزایش زمان ساخت کمک کند. بااینحال، میتوانید کتابخانه را فعال نگه دارید تا همچنان بتوانید دادههای عملکرد را از ردگیریهای شروع برنامه، برنامه در پیشزمینه، و برنامه در پسزمینه و همچنین هرگونه ردگیری کد سفارشی در برنامهتان مشاهده کنید.
غیرفعال کردن افزونه Gradle Performance Monitoring
میتوانید افزونه Performance Monitoring را با افزودن پرچم instrumentationEnabled
بااستفاده از گزینههای زیر غیرفعال کنید:
Extension Property — افزونه را برای یک تنوع ساخت خاص در زمان ترجمه غیرفعال میکند
Project Property — افزونه را برای همه تنوعهای ساخت در زمان ترجمه غیرفعال میکند
غیرفعال کردن افزونه ازطریق پرچم «ویژگی افزونه»
بااستفاده از پرچم Extensions Property، میتوانید افزونه Performance Monitoring را برای تنوع ساخت خاصی در زمان ترجمه غیرفعال کنید.
در فایل Gradle سطح ریشه (سطح پروژه) (
<project>/build.gradle.ktsیا<project>/build.gradle)، مطمئن شوید وابستگی «افزایه Android 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 } } } }
غیرفعال کردن افزونه ازطریق پرچم «ویژگی پروژه»
بااستفاده از پرچم 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")اگر
perf_disableرویtrueتنظیم شده است، Remote Config را راهاندازی کنید و 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تنظیم کنید.این تغییر باعث میشود تماسها با کیت توسعه نرمافزار Performance Monitoring به تماسهای «بدون عملیات» (NOOP) تبدیل شوند و هرگونه تأثیر قابلتوجه بر عملکرد برنامه ناشی از استفاده از کیت توسعه نرمافزار Performance Monitoring در برنامهتان ازبین برود.
اگر مقدار perf_disable را روی
falseتنظیم کنید، Performance Monitoring فعال باقی میماند.