Podczas tworzenia i testowania aplikacji warto wyłączyć monitorowanie wydajności.
Jeśli na przykład wyłączysz monitorowanie wydajności podczas tworzenia aplikacji, możesz:
Wyłącz niektóre funkcje monitorowania wydajności (takie jak te udostępniane przez wtyczkę Gradle monitorowania wydajności) w kompilacjach do debugowania, ale włącz je ponownie w kompilacji wersji.
Wyłącz monitorowanie wydajności podczas tworzenia aplikacji, ale zezwól aplikacji na jej ponowne włączanie w czasie działania.
Wyłącz monitorowanie wydajności podczas tworzenia aplikacji i nie zezwalaj aplikacji na ponowne włączanie jej w czasie działania.
Możesz też utworzyć aplikację z włączonym Monitorowaniem wydajności, ale używając Zdalnej konfiguracji Firebase, aby zapewnić elastyczność w wyłączaniu (i ponownym włączeniu) Monitorowania wydajności w aplikacji produkcyjnej. Dzięki tej opcji możesz nawet skonfigurować aplikację tak, aby użytkownicy mogli ją włączać lub wyłączać.
Wyłącz monitorowanie wydajności podczas procesu kompilacji aplikacji
Aby wyłączyć monitorowanie wydajności podczas procesu kompilacji, wyłącz wtyczkę Gradle monitorowania wydajności lub wyłącz bibliotekę Androida monitorowania wydajności.
Wyłączenie wtyczki na etapie programowania i debugowania jest przydatne, ponieważ stosowanie przez nią ustawień może wydłużyć czas kompilacji. Być może warto jednak pozostawić włączoną bibliotekę, aby nadal mieć widoczne dane o wydajności z uruchamiania aplikacji, z aplikacji na pierwszym planie i z aplikacji w tle, a także ze wszystkich niestandardowych logów czasu kodu w aplikacji.
Wyłączanie wtyczki Gradle monitorowania wydajności
Możesz wyłączyć wtyczkę Monitorowanie wydajności, dodając flagę instrumentationEnabled
za pomocą tych opcji:
Extension Property – wyłącza wtyczkę dla konkretnego wariantu kompilacji w czasie kompilacji
Project Property – wyłącza wtyczkę dla wszystkich wariantów kompilacji w czasie kompilacji
Wyłączanie wtyczki za pomocą flagi właściwości rozszerzenia
Używając flagi Extensions Property, możesz wyłączyć wtyczkę Monitorowania wydajności dla konkretnej wersji kompilacji podczas kompilacji.
Sprawdź, czy w pliku Gradle na poziomie głównym (na poziomie projektu) (
<project>/build.gradle.kts
lub<project>/build.gradle
) określono zależność wtyczki Androida do obsługi Gradle w wersji 3.4.0 lub nowszej.We wcześniejszych wersjach wtyczki Androida do obsługi Gradle nadal możesz wyłączyć wtyczkę Monitor wydajności dla określonej wersji kompilacji, ale jej czas trwania nie zostanie całkowicie wyeliminowany.
Dodaj tę flagę do pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle.kts
lub<project>/<app-module>/build.gradle
), a następnie ustaw wartośćfalse
, aby wyłączyć wtyczkę monitorowania wydajności.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 } } } }
Wyłączanie wtyczki za pomocą flagi właściwości projektu
Używając flagi usługi projektu, możesz wyłączyć wtyczkę monitorowania wydajności dla wszystkich wariantów kompilacji podczas kompilacji.
Dodaj do pliku gradle.properties
tę flagę, a następnie ustaw ją na false
, aby wyłączyć wtyczkę Monitorowania wydajności.
// ... // 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
Wyłączanie biblioteki monitorowania wydajności na Androida
Jeśli wyłączysz bibliotekę monitorowania wydajności podczas kompilacji, możesz zdecydować, czy chcesz zezwolić aplikacji na jej włączenie w czasie działania.
Wyłącz bibliotekę podczas kompilacji, ale zezwól aplikacji na jej włączenie w czasie działania
Dodaj ten element <meta-data>
do pliku AndroidManifest.xml
aplikacji:
<application> <meta-data android:name="firebase_performance_collection_enabled" android:value="false" /> </application>
Wyłącz bibliotekę w czasie kompilowania, ale nie zezwalaj aplikacji na włączanie jej w czasie działania
Dodaj ten element <meta-data>
do pliku AndroidManifest.xml
aplikacji:
<application> <meta-data android:name="firebase_performance_collection_deactivated" android:value="true" /> </application>
Wyłączanie aplikacji w czasie działania za pomocą Zdalnej konfiguracji
Zdalna konfiguracja Firebase umożliwia wprowadzanie zmian w działaniu i wyglądzie aplikacji, dzięki czemu stanowi idealny sposób na wyłączenie monitorowania wydajności we wdrożonych instancjach aplikacji.
Aby wyłączyć zbieranie danych w ramach Monitorowania wydajności przy następnym uruchomieniu aplikacji na Androida, skorzystaj z przykładowego kodu podanego poniżej. Więcej informacji o korzystaniu ze Zdalnej konfiguracji w aplikacji na Androida znajdziesz w artykule o używaniu Zdalnej konfiguracji Firebase na Androidzie.
Sprawdź, czy zdalna konfiguracja znajduje się w sekcji
dependencies
pliku Gradle modułu (na poziomie aplikacji) (zwykle<project>/<app-module>/build.gradle.kts
lub<project>/<app-module>/build.gradle
):Kotlin+KTX
implementation("com.google.firebase:firebase-config-ktx:22.0.0")
Java
implementation("com.google.firebase:firebase-config:22.0.0")
Skonfiguruj Zdalną konfigurację i wyłącz monitorowanie wydajności, jeśli
perf_disable
ma wartośćtrue
: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 } } });
Dodaj do pliku
MainActivity.java
ten kod, aby pobrać i aktywować wartości Zdalnej konfiguracji: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 } } });
Aby wyłączyć monitorowanie wydajności w konsoli Firebase, utwórz parametr perf_disable w projekcie aplikacji, a następnie ustaw jego wartość na
true
.Ta zmiana będzie powodować wywołania „brak operacji” w pakiecie SDK Performance Monitoring, co wyeliminuje znaczny wpływ korzystania z tego pakietu na wydajność aplikacji.
Jeśli ustawisz wartość perf_disable na
false
, Monitorowanie wydajności pozostanie włączone.