あなたが始める前に
まだ行っていない場合は、 Firebase を Android プロジェクトに追加します。
ステップ 1 : Performance Monitoring SDK をアプリに追加する
Performance Monitoring SDK を追加すると、Firebase は、アプリの画面レンダリングに関するデータと、アプリのライフサイクルに関連するデータ (アプリの開始時間など) の収集を自動的に開始します。 Firebase でネットワーク リクエストを監視できるようにするには、Performance Monitoring Gradle プラグインも追加する必要があります (次のステップ)。
モジュール (アプリ レベル) の Gradle ファイル(通常は
<project>/<app-module>/build.gradle
) で、Performance Monitoring Android ライブラリの依存関係を追加します。ライブラリのバージョン管理には、 Firebase Android BoMを使用することをお勧めします。Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add 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' }
Firebase Android BoMを使用すると、アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。
(代替) BoM を使用せずに Firebase ライブラリの依存関係を追加する
Firebase BoM を使用しないことを選択した場合は、依存関係の行で各 Firebase ライブラリ バージョンを指定する必要があります。
アプリで複数のFirebase ライブラリを使用する場合は、BoM を使用してライブラリ バージョンを管理することを強くお勧めします。これにより、すべてのバージョンに互換性が確保されます。
dependencies { // Add 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.3.1' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add 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' }
Firebase Android BoMを使用すると、アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。
(代替) BoM を使用せずに Firebase ライブラリの依存関係を追加する
Firebase BoM を使用しないことを選択した場合は、依存関係の行で各 Firebase ライブラリ バージョンを指定する必要があります。
アプリで複数のFirebase ライブラリを使用する場合は、BoM を使用してライブラリ バージョンを管理することを強くお勧めします。これにより、すべてのバージョンに互換性が確保されます。
dependencies { // Add 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.3.1' }
アプリを再コンパイルします。
ステップ 2 : Performance Monitoring Gradle プラグインをアプリに追加する
Performance Monitoring Gradle プラグインを追加すると、Firebase はHTTP/S ネットワーク リクエストのデータ収集を自動的に開始します。このプラグインでは、 @AddTrace アノテーションを使用してカスタム コード トレースを計測することもできます。
ルート レベル (プロジェクト レベル) のGradle ファイル (
<project>/build.gradle
) で、Performance Monitoring Gradle プラグインをビルドスクリプトの依存関係として追加します。buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } 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:7.2.0' // Make sure that you have the Google services Gradle plugin dependency classpath 'com.google.gms:google-services:4.3.15' // Add the dependency for the Performance Monitoring Gradle plugin classpath 'com.google.firebase:perf-plugin:1.4.2' } }
モジュール (アプリ レベル) のGradle ファイル (通常は
<project>/<app-module>/build.gradle
) で、Performance Monitoring Gradle プラグインを追加します。plugins { id 'com.android.application' // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the Performance Monitoring Gradle plugin id 'com.google.firebase.firebase-perf' ... }
アプリを再コンパイルします。
ステップ 3 : 初期データ表示用のパフォーマンス イベントを生成する
SDK をアプリに正常に追加すると、Firebase はイベントの処理を開始します。まだローカルで開発している場合は、アプリを操作して、初期データの収集と処理のためのイベントを生成します。
アプリのバックグラウンドとフォアグラウンドを数回切り替えたり、画面間を移動してアプリを操作したり、ネットワーク リクエストをトリガーしたりして、イベントを生成します。
Firebase コンソールのパフォーマンスダッシュボードに移動します。数分以内に最初のデータが表示されます。
初期データが表示されない場合は、トラブルシューティングのヒントを確認してください。
ステップ 4 : (オプション)パフォーマンス イベントのログ メッセージを表示する
次のように、アプリの
AndroidManifest.xml
ファイルに<meta-data>
要素を追加して、ビルド時に Performance Monitoring のデバッグ ロギングを有効にします。<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>
ログ メッセージでエラー メッセージを確認します。
Performance Monitoring は、ログ メッセージに
FirebasePerformance
のタグを付けます。 logcat フィルタリングを使用すると、次のコマンドを実行して期間トレースと HTTP/S ネットワーク リクエストのログを具体的に表示できます。adb logcat -s FirebasePerformance
Performance Monitoring がパフォーマンス イベントをログに記録していることを示す次の種類のログを確認します。
-
Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
-
Logging network request trace: URL
-
URL をクリックして、Firebase コンソールでデータを表示します。ダッシュボードでデータが更新されるまで、少し時間がかかる場合があります。
アプリがパフォーマンス イベントをログに記録していない場合は、トラブルシューティングのヒントを確認してください。
ステップ 5 : (オプション)特定のコードのカスタム モニタリングを追加する
アプリ内の特定のコードに関連付けられたパフォーマンス データを監視するために、カスタム コード トレースを計測できます。
カスタム コード トレースを使用すると、一連の画像の読み込みやデータベースへのクエリなど、アプリが特定のタスクまたは一連のタスクを完了するのにかかる時間を測定できます。カスタム コード トレースのデフォルトのメトリックはその期間ですが、キャッシュ ヒットやメモリ警告などのカスタム メトリックを追加することもできます。
コードでは、Performance Monitoring SDK によって提供される API を使用して、カスタム コード トレースの開始と終了を定義します (必要なカスタム メトリックを追加します)。 Android アプリの場合、 @AddTrace アノテーションを使用して特定のメソッドの実行時間を監視することもできます。
これらの機能とそれらをアプリに追加する方法について詳しくは、特定のコードの監視を追加するをご覧ください。
ステップ 6 : アプリをデプロイして結果を確認する
1 つ以上のテスト デバイスを使用して Performance Monitoring を検証したら、アプリの更新バージョンをユーザーに展開できます。
Firebase コンソールのパフォーマンスダッシュボードでパフォーマンス データをモニタリングできます。
既知の問題点
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;
このエラーが表示された場合は、次のいずれかを実行できます。
Performance Monitoring プラグインを v1.1.1 以降にアップグレードします (最新は v1.4.2 です)。
次のように、ルート レベル (プロジェクト レベル) の Gradle ファイル (
build.gradle
) の Performance Monitoring プラグインの依存関係の行を置き換えます。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' } } }
Performance Monitoring は、HTTP content-length ヘッダーに設定された値に基づいて、HTTP ネットワーク要求の合計ペイロード サイズを報告します。この値は常に正確であるとは限りません。
Performance Monitoring は、マルチプロセス Android アプリのメイン プロセスのみをサポートします。
次のステップ
Performance Monitoring によって自動的に収集されるデータの詳細:
- アプリの起動時間など、アプリのライフサイクルに関連するデータ
- アプリでの画面レンダリング用のデータ
- アプリによって発行されたHTTP/S ネットワーク リクエストのデータ
Firebase コンソールでパフォーマンス データを表示、追跡、フィルタリングします。
カスタム コード トレースをインストルメント化して、アプリ内の特定のタスクまたはワークフローの監視を追加します。