ในระหว่างการพัฒนาและการทดสอบแอป การปิดใช้การตรวจสอบประสิทธิภาพอาจเป็นประโยชน์กับคุณ
เช่น การปิดใช้การตรวจสอบประสิทธิภาพระหว่างขั้นตอนการสร้างแอปช่วยให้คุณทำสิ่งต่อไปนี้ได้
ปิดใช้ฟังก์ชันการทำงานบางอย่างของการตรวจสอบประสิทธิภาพ (เช่น ฟังก์ชันจากปลั๊กอิน Performance Monitoring Gradle) ในบิลด์การแก้ไขข้อบกพร่อง แต่ให้เปิดใช้ฟังก์ชันการทำงานสำหรับบิลด์ที่เผยแพร่อีกครั้ง
ปิดใช้การตรวจสอบประสิทธิภาพเมื่อสร้างแอป แต่อนุญาตให้เปิดใช้แอปอีกครั้งระหว่างรันไทม์
ปิดใช้การตรวจสอบประสิทธิภาพเมื่อสร้างแอป และไม่อนุญาตให้แอปเปิดใช้อีกครั้งระหว่างรันไทม์
นอกจากนี้ คุณยังสร้างแอปให้เปิดใช้ Performance Monitoring ได้ด้วย แต่ให้ใช้การกำหนดค่าระยะไกลของ Firebase เพื่อให้มีความยืดหยุ่นในการปิดใช้ Performance Monitoring (และเปิดใช้อีกครั้ง) ในแอปเวอร์ชันที่ใช้งานจริง เมื่อใช้ตัวเลือกนี้ คุณจะกำหนดค่าแอปเพื่อให้ผู้ใช้เลือกใช้หรือเลือกไม่ใช้ Performance Monitoring ได้ด้วย
ปิดใช้การตรวจสอบประสิทธิภาพระหว่างขั้นตอนการสร้างแอป
คุณปิดใช้การตรวจสอบประสิทธิภาพได้ในระหว่างขั้นตอนการสร้างโดยการปิดใช้ปลั๊กอิน Performance Monitoring Gradle และ/หรือการปิดใช้ไลบรารี Performance Monitoring ใน Android
ในระหว่างการพัฒนาและการแก้ไขข้อบกพร่อง การปิดใช้ปลั๊กอินจะมีประโยชน์เนื่องจากการใช้เครื่องมือโดยปลั๊กอินอาจทำให้มีเวลาบิลด์เพิ่มขึ้น อย่างไรก็ตาม คุณอาจพิจารณาเปิดใช้ไลบรารีไว้เพื่อให้ยังคงดูข้อมูลประสิทธิภาพได้จากการติดตามการเริ่มต้นแอป การติดตามในแอปที่ทำงานอยู่เบื้องหน้า และการติดตามในเบื้องหลัง รวมถึงการติดตามโค้ดที่กำหนดเองในแอป
ปิดใช้ปลั๊กอิน Performance Monitoring Gradle
คุณปิดใช้ปลั๊กอินการตรวจสอบประสิทธิภาพได้โดยการเพิ่มแฟล็ก instrumentationEnabled
โดยใช้ตัวเลือกต่อไปนี้
พร็อพเพอร์ตี้ส่วนขยาย — ปิดใช้ปลั๊กอินสำหรับตัวแปรบิลด์ที่เฉพาะเจาะจงขณะคอมไพล์
พร็อพเพอร์ตี้ของโปรเจ็กต์ — ปิดใช้ปลั๊กอินสำหรับตัวแปรบิลด์ทั้งหมดขณะคอมไพล์
ปิดใช้ปลั๊กอินผ่านแฟล็กพร็อพเพอร์ตี้ส่วนขยาย
เมื่อใช้แฟล็กพร็อพเพอร์ตี้ส่วนขยาย คุณจะปิดใช้ปลั๊กอินการตรวจสอบประสิทธิภาพสำหรับตัวแปรบิลด์ที่เฉพาะเจาะจงได้ขณะคอมไพล์
ในไฟล์ Gradle ระดับรูท (ระดับโปรเจ็กต์) (
<project>/build.gradle.kts
หรือ<project>/build.gradle
) โปรดตรวจสอบว่าได้ระบุทรัพยากร Dependency ของปลั๊กอิน Android Gradle เป็น v3.4.0 ขึ้นไปแล้วสำหรับปลั๊กอิน Android Gradle เวอร์ชันก่อนหน้า คุณยังคงปิดใช้ปลั๊กอิน Performance Monitoring สำหรับตัวแปรบิลด์ที่เฉพาะเจาะจงได้ แต่จะไม่ตัดการมีส่วนร่วมของเวลาบิลด์สำหรับตัวแปรนั้นออกโดยสมบูรณ์
เพิ่มแฟล็กต่อไปนี้ลงในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ
<project>/<app-module>/build.gradle.kts
หรือ<project>/<app-module>/build.gradle
) จากนั้นตั้งค่าเป็นfalse
เพื่อปิดใช้ปลั๊กอินการตรวจสอบประสิทธิภาพ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 } } } }
ปิดใช้ปลั๊กอินผ่านแฟล็กพร็อพเพอร์ตี้โปรเจ็กต์
การใช้แฟล็กพร็อพเพอร์ตี้ของโปรเจ็กต์จะทำให้คุณปิดใช้ปลั๊กอินการตรวจสอบประสิทธิภาพสำหรับตัวแปรบิลด์ทั้งหมดในเวลาคอมไพล์ได้
เพิ่มแฟล็กต่อไปนี้ลงในไฟล์ gradle.properties
แล้วตั้งค่าเป็น false
เพื่อปิดใช้ปลั๊กอินการตรวจสอบประสิทธิภาพ
// ... // 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
ปิดใช้ไลบรารี Android ของ Performance Monitoring
หากปิดใช้ไลบรารีการตรวจสอบประสิทธิภาพในขณะคอมไพล์ คุณจะเลือกได้ว่าจะอนุญาตให้แอปเปิดใช้ไลบรารีในรันไทม์หรือไม่
ปิดใช้ไลบรารี ณ เวลาคอมไพล์ แต่อนุญาตให้แอปเปิดใช้ขณะรันไทม์
เพิ่มองค์ประกอบ <meta-data>
ต่อไปนี้ลงในไฟล์ AndroidManifest.xml
ของแอป
<application> <meta-data android:name="firebase_performance_collection_enabled" android:value="false" /> </application>
ปิดใช้ไลบรารี ณ เวลาคอมไพล์ แต่ไม่อนุญาตให้แอปของคุณเปิดใช้ขณะรันไทม์
เพิ่มองค์ประกอบ <meta-data>
ต่อไปนี้ลงในไฟล์ AndroidManifest.xml
ของแอป
<application> <meta-data android:name="firebase_performance_collection_deactivated" android:value="true" /> </application>
ปิดใช้แอปขณะรันไทม์โดยใช้การกำหนดค่าระยะไกล
การกำหนดค่าระยะไกลของ Firebase ช่วยให้คุณเปลี่ยนลักษณะการทำงานและรูปลักษณ์ของแอป จึงให้วิธีที่เหมาะสมในการปิดใช้การตรวจสอบประสิทธิภาพในอินสแตนซ์ของแอปที่ทำให้ใช้งานได้แล้ว
หากต้องการปิดการเก็บรวบรวมข้อมูลการตรวจสอบประสิทธิภาพในครั้งถัดไปที่แอป Android เริ่มทำงาน ให้ใช้โค้ดตัวอย่างที่แสดงด้านล่าง ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ การกำหนดค่าระยะไกลในแอป Android ได้ที่ ใช้การกำหนดค่าระยะไกลของ Firebase ใน Android
ตรวจสอบว่าการกำหนดค่าระยะไกลอยู่ในส่วน
dependencies
ของไฟล์ 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
เป็น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
เพื่อดึงข้อมูลและเปิดใช้งานค่าการกำหนดค่าระยะไกล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 ให้สร้างพารามิเตอร์ perf_disable ในโปรเจ็กต์ของแอป แล้วกำหนดค่าเป็น
true
การเปลี่ยนแปลงนี้จะเรียกใช้ Performance Monitoring SDK ที่ "ไม่มีการดำเนินการ" (NOOP) ซึ่งจะช่วยลดผลกระทบที่สำคัญใดๆ ต่อประสิทธิภาพของแอปจากการใช้ Performance Monitoring SDK ในแอปของคุณ
หากคุณตั้งค่า perf_disable เป็น
false
การตรวจสอบประสิทธิภาพจะยังคงเปิดใช้ต่อไป