Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Menonaktifkan Firebase Performance Monitoring

Selama pengembangan dan pengujian aplikasi, menonaktifkan Performance Monitoring mungkin bermanfaat untuk Anda.

Misalnya, dengan menonaktifkan Performance Monitoring selama proses pembuatan aplikasi, Anda dapat:

  • Menonaktifkan fungsi Performance Monitoring tertentu (seperti yang disediakan oleh plugin Performance Monitoring Gradle) di build debug Anda, tetapi mengaktifkan kembali fungsi untuk build rilis Anda.

  • Menonaktifkan Performance Monitoring saat membuat aplikasi, namun mengizinkan aplikasi untuk mengaktifkannya kembali saat runtime.

  • Menonaktifkan Performance Monitoring saat membuat aplikasi dan tidak mengizinkan aplikasi untuk mengaktifkannya kembali saat runtime.

Anda juga dapat membuat aplikasi dengan Performance Monitoring yang diaktifkan, tetapi gunakan Firebase Remote Config agar mendapatkan fleksibilitas untuk menonaktifkan (dan mengaktifkan kembali) Performance Monitoring di aplikasi produksi Anda. Dengan opsi ini, Anda bahkan dapat mengonfigurasi aplikasi Anda agar pengguna dapat memilih untuk menggunakan atau tidak menggunakan Performance Monitoring.

Menonaktifkan Performance Monitoring selama proses pembuatan aplikasi

Anda dapat menonaktifkan Performance Monitoring selama proses pembuatan dengan menonaktifkan plugin Performance Monitoring Gradle dan/atau dengan menonaktifkan library Android Performance Monitoring.

Selama pengembangan dan proses debug, menonaktifkan plugin berguna karena instrumentasi dengan plugin dapat berkontribusi dalam peningkatan waktu build. Namun, Anda dapat mempertimbangkan untuk tetap mengaktifkan library sehingga Anda tetap dapat melihat data performa dari trace awal aplikasi, aplikasi di latar depan, dan aplikasi di latar belakang serta trace kode kustom di aplikasi Anda.

Menonaktifkan Plugin Performance Monitoring Gradle

Anda dapat menonaktifkan plugin Performance Monitoring dengan menambahkan flag instrumentationEnabled menggunakan opsi berikut:

  • Extension Property — menonaktifkan plugin untuk varian build tertentu pada waktu kompilasi

  • Project Property — menonaktifkan plugin untuk semua varian build pada waktu kompilasi

Menonaktifkan plugin melalui flag Extension Property

Dengan menggunakan flag Extension Property, Anda dapat menonaktifkan plugin Performance Monitoring untuk varian build tertentu pada waktu kompilasi.

  1. Pada file build.gradle level root (level project) Anda, pastikan dependensi Plugin Android Gradle Anda menggunakan versi v3.4.0 atau yang lebih baru.

    Untuk versi Plugin Android Gradle sebelumnya, Anda tetap dapat menonaktifkan plugin Performance Monitoring untuk varian build tertentu, namun kontribusi waktu build untuk varian tersebut tidak akan sepenuhnya dihilangkan.

  2. Tambahkan flag berikut ke file build.gradle level modul (level aplikasi), lalu setel ke false untuk menonaktifkan plugin Performance Monitoring.

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

Menonaktifkan plugin melalui flag Project Property

Dengan menggunakan flag Project Property Anda dapat menonaktifkan plugin Performance Monitoring untuk semua varian build pada waktu kompilasi.

Tambahkan flag berikut ke file gradle.properties Anda, lalu setel ke false untuk menonaktifkan plugin 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

Menonaktifkan library Performance Monitoring Android

Jika Anda menonaktifkan library Performance Monitoring pada waktu kompilasi, Anda dapat memilih apakah ingin mengizinkan aplikasi mengaktifkan library saat runtime.

Menonaktifkan library pada waktu kompilasi, namun mengizinkan aplikasi Anda untuk mengaktifkannya saat runtime

Tambahkan elemen <meta-data> berikut ke file AndroidManifest.xml aplikasi Anda:

  <application>
    <meta-data
      android:name="firebase_performance_collection_enabled"
      android:value="false" />
  </application>

Menonaktifkan library pada waktu kompilasi, namun tidak mengizinkan aplikasi Anda untuk mengaktifkannya saat runtime

Tambahkan elemen <meta-data> berikut ke file AndroidManifest.xml aplikasi Anda:

  <application>
    <meta-data
      android:name="firebase_performance_collection_deactivated"
      android:value="true" />
  </application>

Menonaktifkan aplikasi saat runtime menggunakan Remote Config

Dengan Firebase Remote Config, Anda dapat mengubah perilaku dan tampilan aplikasi. Hal tersebut memberikan cara yang ideal bagi Anda untuk menonaktifkan Performance Monitoring pada instance aplikasi yang diterapkan.

Untuk menonaktifkan pengumpulan data Performance Monitoring saat berikutnya aplikasi Android Anda dimulai, gunakan contoh kode yang ditunjukkan di bawah ini. Untuk informasi lebih lanjut tentang penggunaan Remote Config di aplikasi Android, lihat Menggunakan Firebase Remote Config di Android.

  1. Pastikan Remote Config ada di bagian dependencies pada file Gradle modul Anda (biasanya app/build.gradle):

    implementation 'com.google.firebase:firebase-config:19.2.0'
    
  2. Siapkan Remote Config dan nonaktifkan Performance Monitoring jika perf_disable ditetapkan menjadi true:

    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
                    }
                }
            });

    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) {
                    FirebasePerformance.getInstance()
                            .isPerformanceCollectionEnabled = !config.getBoolean("perf_disable")
                } else {
                    // An error occurred while setting default parameters
                }
            }
  3. Tambahkan kode berikut ke MainActivity.java untuk mengambil dan mengaktifkan nilai Remote Config:

    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
                    }
                }
            });

    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
                }
            }
  4. Untuk menonaktifkan Performance Monitoring di Firebase console, buat parameter perf_disable di project aplikasi Anda, lalu tetapkan nilainya menjadi true.

    Perubahan ini akan menjadikan panggilan ke Performance Monitoring SDK sebagai panggilan "no operation" (NOOP), yang menghilangkan efek signifikan penggunaan Performance Monitoring SDK pada performa aplikasi Anda.

    Jika Anda menetapkan nilai perf_disable menjadi false, Performance Monitoring akan tetap aktif.