ปิดใช้งานการตรวจสอบประสิทธิภาพ Firebase

ตัวยึดตำแหน่ง42

ในระหว่างการพัฒนาและทดสอบแอพ คุณอาจพบว่าการปิดใช้งานการตรวจสอบประสิทธิภาพมีประโยชน์

ตัวอย่างเช่น โดย การปิดใช้งานการตรวจสอบประสิทธิภาพระหว่างกระบวนการสร้างแอป คุณสามารถ:

  • ปิดใช้งานฟังก์ชันบางอย่างของ Performance Monitoring (เช่นที่มีให้โดย ปลั๊กอิน Performance Monitoring Gradle ) ในบิลด์การดีบักของคุณ แต่ให้เปิดใช้งานฟังก์ชันสำหรับบิลด์รีลีสของคุณอีกครั้ง

  • ปิดใช้งานการตรวจสอบประสิทธิภาพเมื่อสร้างแอปของคุณ แต่อนุญาตให้แอปเปิดใช้งานอีกครั้งเมื่อรันไทม์

  • ปิดใช้งานการตรวจสอบประสิทธิภาพเมื่อสร้างแอปของคุณ และไม่อนุญาตให้แอปของคุณเปิดใช้งานอีกครั้งเมื่อรันไทม์

คุณยังสามารถสร้างแอปของคุณด้วย Performance Monitoring ที่ เปิดใช้งาน แต่ ใช้ Firebase Remote Config เพื่อให้คุณมีความยืดหยุ่นในการปิดใช้งาน (และเปิดใช้งานอีกครั้ง) การตรวจสอบประสิทธิภาพในแอปที่ใช้งานจริงของคุณ ด้วยตัวเลือกนี้ คุณยังสามารถกำหนดค่าแอปของคุณเพื่อให้ผู้ใช้เลือกเข้าร่วมหรือไม่ใช้การตรวจสอบประสิทธิภาพได้

ตัวยึดตำแหน่ง46

ปิดใช้งานการตรวจสอบประสิทธิภาพระหว่างกระบวนการสร้างแอปของคุณ

คุณสามารถปิดใช้งานการตรวจสอบประสิทธิภาพระหว่างกระบวนการสร้างของคุณโดย การปิดใช้งานปลั๊กอิน Performance Monitoring Gradle และ/หรือโดย การปิดใช้งานไลบรารี Android Performance Monitoring

ในระหว่างการพัฒนาและการดีบัก การปิดใช้งานปลั๊กอินนั้นมีประโยชน์ เนื่องจาก การใช้เครื่องมือโดยปลั๊กอิน สามารถเพิ่มเวลาในการสร้างได้ อย่างไรก็ตาม คุณอาจลองเปิดไลบรารี่ไว้เพื่อให้ยังคงดูข้อมูลประสิทธิภาพตั้งแต่การ เริ่มแอป การติดตามแอปในเบื้องหลัง และการติดตามแอปในเบื้องหลัง ตลอดจนการ ติดตามโค้ดที่กำหนดเอง ในแอปของคุณ

ปิดใช้งานปลั๊กอิน Gradle การตรวจสอบประสิทธิภาพ

คุณสามารถปิดใช้งานปลั๊กอิน Performance Monitoring ได้โดยเพิ่มการตั้งค่าสถานะ instrumentationEnabled โดยใช้ตัวเลือกต่อไปนี้:

ปิดใช้งานปลั๊กอินผ่านแฟล็กคุณสมบัติส่วนขยาย

ด้วยการใช้แฟล็ก คุณสมบัติส่วนขยาย คุณสามารถปิดใช้งานปลั๊กอินการตรวจสอบประสิทธิภาพสำหรับตัวแปรบิลด์ เฉพาะ ในเวลาคอมไพล์

  1. ในไฟล์ build.gradle ระดับราก (ระดับโปรเจ็กต์) ตรวจสอบให้แน่ใจว่าการพึ่งพา Android Gradle Plugin ของคุณถูกระบุเป็น v3.4.0 หรือใหม่กว่า

    สำหรับ Android Gradle Plugin เวอร์ชันก่อนหน้า คุณยังคงสามารถปิดใช้งานปลั๊กอินการตรวจสอบประสิทธิภาพสำหรับรุ่นบิลด์เฉพาะได้ แต่การสนับสนุนเวลาบิลด์สำหรับตัวแปรนั้นจะไม่ถูกกำจัดโดยสิ้นเชิง

  2. เพิ่มแฟล็กต่อไปนี้ในไฟล์ build.gradle ของโมดูล (ระดับแอป) จากนั้นตั้งค่าเป็น false เพื่อปิดใช้งานปลั๊กอิน Performance Monitoring

    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 เพื่อปิดใช้งานปลั๊กอิน 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

ปิดใช้งานไลบรารี 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>

ปิดใช้งานแอปของคุณขณะใช้งานจริงโดยใช้ Remote Config

การกำหนดค่าระยะไกลของ Firebase ช่วยให้คุณเปลี่ยนแปลงลักษณะการทำงานและรูปลักษณ์ของแอปได้ ดังนั้นจึงเป็นวิธีที่เหมาะเป็นอย่างยิ่งในการปิดใช้การตรวจสอบประสิทธิภาพในอินสแตนซ์ที่ปรับใช้แอปของคุณ

หากต้องการปิดใช้งานการรวบรวมข้อมูลการตรวจสอบประสิทธิภาพในครั้งถัดไปที่แอป Android ของคุณเริ่มทำงาน ให้ใช้โค้ดตัวอย่างที่แสดงด้านล่าง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ Remote Config ในแอพ Android โปรดดู Use Firebase Remote Config บน Android

  1. ตรวจสอบให้แน่ใจว่าการกำหนดค่าระยะไกลอยู่ในส่วนการ dependencies ของไฟล์ Gradle โมดูลของคุณ (โดยปกติคือ app/build.gradle ):

    implementation 'com.google.firebase:firebase-config:21.1.1'
    
  2. ตั้งค่า Remote Config และปิดใช้งาน Performance Monitoring หาก perf_disable ถูกตั้งค่า true :

    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
                    }
                }
            });

    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
                }
            }
  3. เพิ่มโค้ดต่อไปนี้ใน MainActivity.java เพื่อดึงและเปิดใช้งานค่า Remote Config:

    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
                    }
                }
            });

    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
                }
            }
  4. หากต้องการปิดใช้งาน Performance Monitoring ในคอนโซล Firebase ให้สร้างพารามิเตอร์ perf_disable ในโครงการของแอป จากนั้นตั้งค่า true

    การเปลี่ยนแปลงนี้จะทำให้การเรียกใช้ Performance Monitoring SDK "ไม่มีการดำเนินการ" (NOOPs) ขจัดผลกระทบที่มีนัยสำคัญต่อประสิทธิภาพของแอปจากการใช้ Performance Monitoring SDK ในแอปของคุณ

    หากคุณตั้งค่า perf_disable false การมอนิเตอร์ประสิทธิภาพจะยังคงเปิดใช้งานอยู่