在應用程式開發和測試期間,建議您停用 Performance Monitoring。
例如: 在應用程式建構程序中停用 Performance Monitoring, 你可以:
停用 Performance Monitoring 的特定功能 (例如 Performance Monitoring Gradle 外掛程式) ,但重新啟用應用程式所需的功能 發布子版本
請在建構應用程式時停用「Performance Monitoring」,但允許應用程式重新啟用 執行程式碼
請在建構應用程式時停用 Performance Monitoring,並禁止應用程式 在執行階段重新啟用。
您也可以在啟用 Performance Monitoring 的情況下建構應用程式,但 使用 Firebase Remote Config 為你提供 可讓您在正式版應用程式中停用及重新啟用 Performance Monitoring。取代為 這個選項,您甚至可以設定應用程式,讓使用者選擇加入或退出 使用 Performance Monitoring。
在應用程式建構程序中停用 Performance Monitoring
您可以在建構程序期間停用 Performance Monitoring,方法是停用 Performance Monitoring Gradle 外掛程式和/或停用 Performance Monitoring Android 程式庫。
在開發和偵錯期間,停用外掛程式很有幫助,因為 這個外掛程式能 進而延長建構時間不過,您可能會考慮保留 啟用後,您仍然可以從 應用程式啟動、前景和應用程式背景追蹤記錄 以及任何 自訂程式碼追蹤記錄 。
停用 Performance Monitoring Gradle 外掛程式
如要停用 Performance Monitoring 外掛程式,您可以新增 instrumentationEnabled
標記使用以下選項:
擴充功能屬性 - 停用 在編譯期間建立特定的建構變數
Project Property - 停用 編譯期間的「所有」建構變數
透過擴充功能屬性旗標停用外掛程式
使用 Extensions Property 標記,即可停用 Performance Monitoring 外掛程式 在編譯期間針對特定建構變數設定。
在您的根層級 (專案層級) Gradle 檔案 (
<project>/build.gradle.kts
或<project>/build.gradle
),請確認已 Android Gradle 外掛程式依附元件指定為 3.4.0 以上版本。至於舊版 Android Gradle 外掛程式,您還是可以停用 特定建構變數的 Performance Monitoring 外掛程式,但建構時間 該變化版本的貢獻不會完全消除。
將下列標記新增至「module (app-level)」 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
停用 Performance Monitoring Android 程式庫
如果您在編譯時停用 Performance Monitoring 程式庫,可以選擇是否 ,讓應用程式在執行階段啟用程式庫。
在編譯時停用程式庫,但允許應用程式在執行階段啟用程式庫
在應用程式的 AndroidManifest.xml
中加入下列 <meta-data>
元素
檔案:
<application> <meta-data android:name="firebase_performance_collection_enabled" android:value="false" /> </application>
在編譯期間停用程式庫,但不允許應用程式在執行階段啟用程式庫
在應用程式的 AndroidManifest.xml
中加入下列 <meta-data>
元素
檔案:
<application> <meta-data android:name="firebase_performance_collection_deactivated" android:value="true" /> </application>
使用 Remote Config 在執行階段停用應用程式
Firebase Remote Config 可讓您變更行為和外觀 這樣就能在 Google Play 中停用 Performance Monitoring 所部署的應用程式執行個體
如要在下次啟動 Android 應用程式時停用 Performance Monitoring 資料收集功能,請使用下方的範例程式碼。如要進一步瞭解如何 Android 應用程式中的 Remote Config,請參閱 在 Android 上使用 Firebase Remote Config。
確認 Remote Config 位於以下項目的
dependencies
部分: module (應用程式層級) Gradle 檔案 (通常為<project>/<app-module>/build.gradle.kts
或<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")
如果
perf_disable
,請設定「Remote Config」,並停用「Performance Monitoring」 設為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 } } });
將下列程式碼新增至
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 } } });
如要在 Firebase 控制台中停用 Performance Monitoring,請建立 perf_disable 參數,然後將參數值設為
true
。這項變更會呼叫 Performance Monitoring SDK「沒有作業」通話 ,應用程式不會因使用 在應用程式中使用 Performance Monitoring SDK。
如果您將 perf_disable 的值設為
false
,Performance Monitoring 會保留