مانیتورینگ عملکرد Firebase را غیرفعال کنید

در طول توسعه و آزمایش برنامه، ممکن است غیرفعال کردن نظارت بر عملکرد مفید باشد.

برای مثال، با غیرفعال کردن نظارت بر عملکرد در طول فرآیند ساخت برنامه ، می‌توانید:

  • برخی از عملکردهای نظارت بر عملکرد (مانند مواردی که توسط افزونه نظارت بر عملکرد Gradle ارائه شده است) را در بیلدهای اشکال زدایی خود غیرفعال کنید، اما عملکردها را برای نسخه انتشار خود دوباره فعال کنید.

  • هنگام ساخت برنامه، مانیتورینگ عملکرد را غیرفعال کنید، اما به برنامه خود اجازه دهید در زمان اجرا دوباره آن را فعال کند.

  • هنگام ساخت برنامه، مانیتورینگ عملکرد را غیرفعال کنید و اجازه ندهید برنامه شما در زمان اجرا دوباره آن را فعال کند.

همچنین می‌توانید برنامه خود را با فعال کردن نظارت بر عملکرد بسازید، اما از Firebase Remote Config استفاده کنید تا به شما انعطاف‌پذیری برای غیرفعال کردن (و فعال کردن مجدد) عملکرد مانیتورینگ در برنامه تولیدی خود بدهد. با استفاده از این گزینه، حتی می‌توانید برنامه خود را طوری پیکربندی کنید که به کاربران اجازه دهد از نظارت بر عملکرد استفاده کنند یا از آن انصراف دهند.

مانیتورینگ عملکرد را در طول فرآیند ساخت اپلیکیشن خود غیرفعال کنید

می‌توانید با غیرفعال کردن افزونه Gradle نظارت بر عملکرد و/یا با غیرفعال کردن کتابخانه Android مانیتورینگ عملکرد، نظارت بر عملکرد را در طول فرآیند ساخت خود غیرفعال کنید.

در طول توسعه و اشکال زدایی، غیرفعال کردن افزونه مفید است زیرا ابزار دقیق توسط افزونه می تواند به افزایش زمان ساخت کمک کند. با این حال، ممکن است در نظر داشته باشید که کتابخانه را فعال نگه دارید تا همچنان بتوانید داده‌های عملکرد را از ردیابی‌های شروع برنامه، برنامه در پیش‌زمینه، و برنامه در پس‌زمینه و همچنین هرگونه ردیابی کد سفارشی در برنامه خود مشاهده کنید.

افزونه Gradle Monitoring را غیرفعال کنید

می‌توانید با افزودن یک پرچم instrumentationEnabled با استفاده از گزینه‌های زیر، افزونه نظارت بر عملکرد را غیرفعال کنید:

  • Extension Property - افزونه را برای یک نوع ساخت خاص در زمان کامپایل غیرفعال می کند

  • Project Property - پلاگین را برای همه انواع ساخت در زمان کامپایل غیرفعال می کند

افزونه را از طریق یک پرچم Extension Property غیرفعال کنید

با استفاده از یک پرچم Extensions Property ، می توانید پلاگین Performance Monitoring را برای یک نوع ساخت خاص در زمان کامپایل غیرفعال کنید.

  1. در فایل Gradle سطح ریشه (سطح پروژه) خود ( <project>/build.gradle.kts یا <project>/build.gradle )، مطمئن شوید که وابستگی به افزونه Gradle Android شما نسخه 3.4.0 یا جدیدتر مشخص شده است.

    برای نسخه‌های قبلی پلاگین Android Gradle، همچنان می‌توانید افزونه نظارت بر عملکرد را برای یک نوع ساخت خاص غیرفعال کنید، اما سهم زمان ساخت برای آن نوع به طور کامل حذف نخواهد شد.

  2. پرچم زیر را به فایل Gradle ماژول (سطح برنامه) خود اضافه کنید (معمولا <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle )، سپس آن را تنظیم کنید. به false برای غیرفعال کردن افزونه نظارت بر عملکرد.

    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 ، می‌توانید افزونه نظارت بر عملکرد را برای همه انواع ساخت در زمان کامپایل غیرفعال کنید.

پرچم زیر را به فایل gradle.properties خود اضافه کنید، سپس آن را روی false قرار دهید تا افزونه نظارت بر عملکرد غیرفعال شود.

// ...

// 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

کتابخانه اندروید مانیتورینگ عملکرد را غیرفعال کنید

اگر کتابخانه نظارت بر عملکرد را در زمان کامپایل غیرفعال کنید، می توانید انتخاب کنید که آیا به برنامه خود اجازه دهید کتابخانه را در زمان اجرا فعال کند یا خیر.

کتابخانه را در زمان کامپایل غیرفعال کنید، اما به برنامه خود اجازه دهید در زمان اجرا آن را فعال کند

عنصر <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 به شما امکان می دهد تغییراتی در رفتار و ظاهر برنامه خود ایجاد کنید، بنابراین یک راه ایده آل برای غیرفعال کردن نظارت بر عملکرد در نمونه های مستقر در برنامه خود فراهم می کند.

برای غیرفعال کردن جمع‌آوری داده‌های نظارت بر عملکرد دفعه بعد که برنامه Android شما شروع می‌شود، از کد مثال زیر استفاده کنید. برای اطلاعات بیشتر در مورد استفاده از Remote Config در یک برنامه Android، به استفاده از Firebase Remote Config در Android مراجعه کنید.

  1. اطمینان حاصل کنید که Remote Config در بخش dependencies ماژول (سطح برنامه) فایل Gradle شما (معمولا <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle است. ):

    Kotlin+KTX

      implementation("com.google.firebase:firebase-config-ktx:21.6.3")
    

    Java

      implementation("com.google.firebase:firebase-config:21.6.3")
    
  2. اگر perf_disable روی true تنظیم شده باشد، Remote Config را تنظیم کنید و مانیتورینگ عملکرد را غیرفعال کنید:

    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
                    }
                }
            });
  3. کد زیر را به 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
                    }
                }
            });
  4. برای غیرفعال کردن نظارت بر عملکرد در کنسول Firebase، یک پارامتر perf_disable در پروژه برنامه خود ایجاد کنید، سپس مقدار آن را روی true تنظیم کنید.

    این تغییر باعث می‌شود که تماس‌های «بدون عملیات» SDK نظارت بر عملکرد (NOOPs) برقرار شود و هرگونه تأثیر قابل توجهی بر عملکرد برنامه از استفاده از SDK نظارت بر عملکرد در برنامه شما حذف شود.

    اگر مقدار perf_disable را روی false تنظیم کنید، نظارت بر عملکرد فعال باقی می‌ماند.