Catch up on everthing we announced at this year's Firebase Summit. Learn more

Android 性能監控入門

在你開始之前

如果你還沒有,添加火力地堡到您的Android項目

第1步:添加性能監視SDK到您的應用

您添加性能監視SDK後,火力地堡自動開始收集應用數據的畫面呈現與您的應用程序的生命週期(如數據和應用程序啟動時間)。為了使火力地堡來監視網絡請求,你必須添加性能監視搖籃插件(下一步)。

  1. 使用火力地堡Android的物料清單,申報性能的模塊(應用程序級)搖籃文件(通常在監測的Android庫的依賴app/build.gradle )。

    爪哇

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare the dependency for the Performance Monitoring library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-perf'
    }
    

    通過使用火力地堡Android的物料清單,您的應用程序將始終使用火力地堡的Android庫的兼容版本。

    (替代)聲明火力地堡庫依賴使用物料清單

    如果您選擇不使用 Firebase BoM,則必須在其依賴項行中指定每個 Firebase 庫版本。

    需要注意的是,如果你在你的應用程序使用多個火力地堡庫,我們強烈建議您使用的物料清單管理庫版本,以保證所有版本相互兼容。

    dependencies {
        // Declare the dependency for the Performance Monitoring library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-perf:20.0.4'
    }
    

    科特林+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare the dependency for the Performance Monitoring library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-perf-ktx'
    }
    

    通過使用火力地堡Android的物料清單,您的應用程序將始終使用火力地堡的Android庫的兼容版本。

    (替代)聲明火力地堡庫依賴使用物料清單

    如果您選擇不使用 Firebase BoM,則必須在其依賴項行中指定每個 Firebase 庫版本。

    需要注意的是,如果你在你的應用程序使用多個火力地堡庫,我們強烈建議您使用的物料清單管理庫版本,以保證所有版本相互兼容。

    dependencies {
        // Declare the dependency for the Performance Monitoring library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-perf-ktx:20.0.4'
    }
    

  2. 重新編譯您的應用程序。

第2步:性能監視插件添加到您的應用程序

您添加監控搖籃插件演出結束後,火力地堡自動開始收集數據的HTTP / S的網絡請求。該插件還使您能夠使用工具自定義代碼的痕跡@AddTrace註解

  1. 在你的模塊(應用程序級)搖籃文件(通常是app/build.gradle ),應用性能監控插件:

    apply plugin: 'com.android.application'
    apply plugin: 'com.google.gms.google-services'
    // Apply the Performance Monitoring plugin
    apply plugin: 'com.google.firebase.firebase-perf'
    
    android {
      // ...
    }
    
  2. 在你的根級別(項目級別)搖籃文件( build.gradle ),添加規則,包括性能監控插件。

    buildscript {
    
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // Add the Bintray repository
          jcenter()
        }
    
        dependencies {
          // ...
    
          // To benefit from the latest Performance Monitoring plugin features,
          // update your Android Gradle Plugin dependency to at least v3.4.0
          classpath 'com.android.tools.build:gradle:3.4.0'
    
          classpath 'com.google.gms:google-services:4.3.10'  // Google Services plugin
    
          // Add the dependency for the Performance Monitoring plugin
          classpath 'com.google.firebase:perf-plugin:1.4.0'  // Performance Monitoring plugin
        }
    }
    
  3. 重新編譯您的應用程序。

步驟3:為初始數據顯示生成性能事件

當您成功地將 SDK 添加到您的應用程序時,Firebase 開始處理事件。如果您仍在本地開發,請與您的應用程序交互以生成用於初始數據收集和處理的事件。

  1. 通過在後台和前台之間多次切換您的應用程序、通過跨屏幕導航和/或觸發網絡請求與您的應用程序交互來生成事件。

  2. 轉至性能儀表板的火力地堡控制台。您應該會在幾分鐘內看到初始數據顯示。

    如果您沒有看到您的初始數據顯示,查看故障排除提示

步驟4:對性能事件(可選)查看日誌信息

  1. 啟用調試日誌記錄性能在構建時通過增加一個監測<meta-data>元素應用程式的AndroidManifest.xml的文件,如下所示:

    <application>
        <meta-data
          android:name="firebase_performance_logcat_enabled"
          android:value="true" />
    </application>
    
  2. 檢查您的日誌消息是否有任何錯誤消息。

  3. 性能監控標記其日誌消息與FirebasePerformance 。使用 logcat 過濾,您可以通過運行以下命令來具體查看持續時間跟踪和 HTTP/S 網絡請求日誌記錄:

    adb logcat -s FirebasePerformance
  4. 檢查以下類型的日誌,這些日誌表明性能監控正在記錄性能事件:

    • Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. 單擊 URL 以在 Firebase 控制台中查看您的數據。數據在儀表板中更新可能需要一些時間。

如果您的應用不記錄性能事件,查看故障排除提示

步驟5:(可選)添加自定義的監視特定代碼

要監視特定代碼在您的應用程序相關聯,可以儀器性能數據自定義代碼的痕跡

使用自定義代碼跟踪,您可以測量應用完成特定任務或任務集所需的時間,例如加載一組圖像或查詢您的數據庫。自定義代碼跟踪的默認指標是其持續時間,但您也可以添加自定義指標,例如緩存命中和內存警告。

在您的代碼中,您可以使用性能監控 SDK 提供的 API 定義自定義代碼跟踪的開始和結束(並添加任何所需的自定義指標)。對於Android應用,還可以監控的使用具體方法的持續時間@AddTrace註解

訪問添加監視特定代碼,以了解更多有關這些功能,以及如何將它們添加到您的應用程序。

第6步:部署應用程序,然後查看結果

在使用一台或多台測試設備驗證性能監控後,您可以向用戶部署應用的更新版本。

您可以監視性能數據的性能儀表板的火力地堡控制台。

已知的問題

  • Performance Monitoring Gradle插件v1.1.0會導致Guava依賴不匹配,導致如下錯誤:

    Error:Execution failed for task ':app:packageInstantRunResourcesDebug'.
    > com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;

    如果您看到此錯誤,您可以:

    • 將性能監控插件升級到 v1.1.1 或更高版本(最新的是 v1.4.0)。

    • 更換性能監視插件依賴性線在你的根級別(項目級別)搖籃文件( build.gradle ),具體如下:

      buildscript {
        // ...
      
        dependencies {
          // ...
      
          // Replace the standard Performance Monitoring plugin dependency line, as follows:
          classpath ('com.google.firebase:perf-plugin:1.1.0') {
                      exclude group: 'com.google.guava', module: 'guava-jdk5'
          }
        }
      }
      
  • 性能監控根據 HTTP 內容長度標頭中設置的值報告 HTTP 網絡請求的總負載大小。該值可能並不總是準確的。

  • 性能監控僅支持多進程 Android 應用中的主進程。

下一步