Trong quá trình phát triển và kiểm thử ứng dụng, bạn có thể thấy việc tắt Performance Monitoring sẽ hữu ích.
Ví dụ: bằng cách tắt Performance Monitoring trong quá trình tạo bản dựng ứng dụng, bạn có thể:
Tắt một số chức năng nhất định của Performance Monitoring (chẳng hạn như các chức năng do trình bổ trợ Gradle Performance Monitoring cung cấp) trong bản gỡ lỗi, nhưng bật lại các chức năng đó cho bản phát hành.
Tắt Performance Monitoring khi tạo ứng dụng, nhưng cho phép ứng dụng bật lại trong thời gian chạy.
Tắt Performance Monitoring khi tạo ứng dụng và không cho phép ứng dụng bật lại trong thời gian chạy.
Bạn cũng có thể tạo ứng dụng với Performance Monitoring được bật, nhưng sử dụng Firebase Remote Config để linh hoạt tắt (và bật lại) Performance Monitoring trong ứng dụng chính thức. Với tuỳ chọn này, bạn thậm chí có thể định cấu hình ứng dụng để cho phép người dùng chọn sử dụng hoặc không sử dụng Performance Monitoring.
Tắt Performance Monitoring trong quá trình tạo bản dựng ứng dụng
Bạn có thể tắt Performance Monitoring trong quá trình tạo bản dựng bằng cách tắt trình bổ trợ Gradle Performance Monitoring và/hoặc bằng cách tắt thư viện Android Performance Monitoring.
Trong quá trình phát triển và gỡ lỗi, việc tắt trình bổ trợ sẽ hữu ích vì hoạt động đo lường của trình bổ trợ có thể làm tăng thời gian xây dựng. Tuy nhiên, bạn có thể cân nhắc việc tiếp tục bật thư viện để vẫn có thể xem dữ liệu hiệu suất từ dấu vết khởi động ứng dụng, dấu vết ứng dụng trên nền trước và dấu vết ứng dụng trên nền sau cũng như mọi dấu vết mã tuỳ chỉnh trong ứng dụng.
Tắt trình bổ trợ Gradle Performance Monitoring
Bạn có thể tắt trình bổ trợ Performance Monitoring bằng cách thêm cờ instrumentationEnabled
bằng các tuỳ chọn sau:
Thuộc tính mở rộng – tắt trình bổ trợ cho một biến thể bản dựng cụ thể tại thời điểm biên dịch
Thuộc tính dự án – tắt trình bổ trợ cho tất cả biến thể bản dựng tại thời điểm biên dịch
Tắt trình bổ trợ thông qua cờ Thuộc tính tiện ích
Bằng cách sử dụng cờ Extensions Property (Thuộc tính tiện ích), bạn có thể tắt trình bổ trợ Performance Monitoring cho một biến thể bản dựng cụ thể tại thời điểm biên dịch.
Trong tệp Gradle cấp gốc (cấp dự án) (
<project>/build.gradle.kts
hoặc<project>/build.gradle
), hãy đảm bảo phần phụ thuộc Trình bổ trợ Android cho Gradle được chỉ định là phiên bản 3.4.0 trở lên.Đối với các phiên bản cũ của Trình bổ trợ Android cho Gradle, bạn vẫn có thể tắt trình bổ trợ Performance Monitoring cho một biến thể bản dựng cụ thể, nhưng mức đóng góp thời gian xây dựng cho biến thể đó sẽ không bị loại bỏ hoàn toàn.
Thêm cờ sau vào tệp Gradle của mô-đun (cấp ứng dụng) (thường là
<project>/<app-module>/build.gradle.kts
hoặc<project>/<app-module>/build.gradle
), sau đó đặt cờ đó thànhfalse
để tắt trình bổ trợ 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 } } } }
Tắt trình bổ trợ thông qua cờ Tài sản dự án
Bằng cách sử dụng cờ Project Property (Thuộc tính dự án), bạn có thể tắt trình bổ trợ Performance Monitoring cho tất cả biến thể bản dựng tại thời điểm biên dịch.
Thêm cờ sau vào tệp gradle.properties
, sau đó đặt cờ thành false
để tắt trình bổ trợ 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
Tắt thư viện Android Performance Monitoring
Nếu tắt thư viện Performance Monitoring tại thời điểm biên dịch, bạn có thể chọn cho phép ứng dụng bật thư viện này trong thời gian chạy hay không.
Tắt thư viện tại thời điểm biên dịch, nhưng cho phép ứng dụng bật thư viện đó trong thời gian chạy
Thêm phần tử <meta-data>
sau vào tệp AndroidManifest.xml
của ứng dụng:
<application> <meta-data android:name="firebase_performance_collection_enabled" android:value="false" /> </application>
Tắt thư viện tại thời điểm biên dịch, nhưng không cho phép ứng dụng bật thư viện đó trong thời gian chạy
Thêm phần tử <meta-data>
sau vào tệp AndroidManifest.xml
của ứng dụng:
<application> <meta-data android:name="firebase_performance_collection_deactivated" android:value="true" /> </application>
Tắt ứng dụng trong thời gian chạy bằng Remote Config
Firebase Remote Config cho phép bạn thay đổi hành vi và giao diện của ứng dụng, vì vậy, đây là cách lý tưởng để bạn tắt Performance Monitoring trong các phiên bản đã triển khai của ứng dụng.
Để tắt tính năng thu thập dữ liệu Performance Monitoring vào lần tiếp theo ứng dụng Android khởi động, hãy sử dụng mã ví dụ như bên dưới. Để biết thêm thông tin về cách sử dụng Remote Config trong ứng dụng Android, hãy xem phần Sử dụng Firebase Remote Config trên Android.
Đảm bảo rằng Remote Config nằm trong mục
dependencies
của tệp Gradle mô-đun (cấp ứng dụng) (thường là<project>/<app-module>/build.gradle.kts
hoặc<project>/<app-module>/build.gradle
):Kotlin+KTX
implementation("com.google.firebase:firebase-config-ktx:22.0.1")
Java
implementation("com.google.firebase:firebase-config:22.0.1")
Thiết lập Remote Config và tắt Performance Monitoring nếu
perf_disable
được đặt thànhtrue
: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 } } });
Thêm mã sau vào
MainActivity.java
để tìm nạp và kích hoạt các giá trị 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 } } });
Để tắt Performance Monitoring trong bảng điều khiển Firebase, hãy tạo tham số perf_disable trong dự án của ứng dụng, sau đó đặt giá trị của tham số đó thành
true
.Thay đổi này sẽ thực hiện các lệnh gọi "không có thao tác" (NOOP) đến SDK Performance Monitoring, loại bỏ mọi ảnh hưởng đáng kể đến hiệu suất ứng dụng khi sử dụng SDK Performance Monitoring trong ứng dụng.
Nếu bạn đặt giá trị của perf_disable thành
false
, thì Performance Monitoring vẫn được bật.