Selama pengembangan dan pengujian aplikasi, sebaiknya Anda menonaktifkan Performance Monitoring.
Misalnya, dengan menonaktifkan Performance Monitoring selama proses build aplikasi, Anda dapat:
Menonaktifkan fungsionalitas Performance Monitoring tertentu (seperti yang disediakan oleh plugin Gradle Performance Monitoring) di build debug Anda, tetapi mengaktifkan kembali fungsionalitas untuk build rilis Anda.
Menonaktifkan Performance Monitoring saat mem-build aplikasi, tetapi mengizinkan aplikasi untuk mengaktifkannya kembali saat runtime.
Menonaktifkan Performance Monitoring saat mem-build aplikasi, dan tidak mengizinkan aplikasi untuk mengaktifkannya kembali saat runtime.
Anda juga dapat mem-build aplikasi dengan Performance Monitoring yang diaktifkan, tetapi menggunakan 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 build aplikasi
Anda dapat menonaktifkan Performance Monitoring selama proses build dengan menonaktifkan plugin Gradle Performance Monitoring 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, sebaiknya tetap aktifkan 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 Gradle Performance Monitoring
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 Extensions Property, Anda dapat menonaktifkan plugin Performance Monitoring untuk varian build tertentu pada waktu kompilasi.
Dalam file Gradle level root (level project) (
<project>/build.gradle.kts
atau<project>/build.gradle
), pastikan dependensi Plugin Android Gradle Anda menggunakan v3.4.0 atau yang lebih baru.Untuk versi Plugin Android Gradle sebelumnya, Anda tetap dapat menonaktifkan plugin Performance Monitoring untuk varian build tertentu, tetapi kontribusi waktu build untuk varian tersebut tidak akan sepenuhnya dihilangkan.
Tambahkan flag berikut ke file Gradle modul (level aplikasi) (biasanya
<project>/<app-module>/build.gradle.kts
atau<project>/<app-module>/build.gradle
), lalu setel kefalse
untuk menonaktifkan plugin 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 } } } }
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 tetapkan 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 Android Performance Monitoring
Jika library Performance Monitoring dinonaktifkan pada waktu kompilasi, Anda dapat memilih apakah ingin mengizinkan aplikasi mengaktifkan library saat runtime.
Menonaktifkan library pada waktu kompilasi, tetapi 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, tetapi tidak mengizinkan aplikasi 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 di-deploy.
Untuk menonaktifkan pengumpulan data Performance Monitoring saat berikutnya aplikasi Android Anda dimulai, gunakan kode contoh yang ditunjukkan di bawah ini. Untuk informasi selengkapnya tentang penggunaan Remote Config di aplikasi Android, lihat Menggunakan Firebase Remote Config di Android.
Pastikan Remote Config berada di bagian
dependencies
pada file Gradle modul (level aplikasi) (biasanya<project>/<app-module>/build.gradle.kts
atau<project>/<app-module>/build.gradle
):Kotlin
implementation("com.google.firebase:firebase-config-ktx:22.0.1")
Java
implementation("com.google.firebase:firebase-config:22.0.1")
Siapkan Remote Config dan nonaktifkan Performance Monitoring jika
perf_disable
ditetapkan ketrue
: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 } } });
Tambahkan kode berikut ke
MainActivity.java
untuk mengambil dan mengaktifkanilai nilai 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 } } });
Untuk menonaktifkan Performance Monitoring di Firebase console, buat parameter perf_disable di project aplikasi Anda, lalu tetapkan nilainya ke
true
.Perubahan ini akan menjadikan panggilan ke Performance Monitoring SDK sebagai panggilan "tanpa pengoperasian" (NOOPs), yang menghilangkan efek signifikan penggunaan Performance Monitoring SDK pada performa aplikasi Anda.
Jika Anda menetapkan nilai perf_disable ke
false
, Performance Monitoring akan tetap aktif.