LoginSignup
7
5

More than 5 years have passed since last update.

Firebase Performance Monitoring の導入方法と注意点

Last updated at Posted at 2018-12-03

FirebasePerformanceMonitoring is 何?

  • ライブラリ導入するだけで、アプリ実行中のパフォーマンスがわかる
  • ボトルネックになっている通信などをコンソール上で確認できる
  • 導入は簡単だけど注意点あり(下記参照)

導入方法

Firebaseプロジェクトの準備

  • コンソール上でプロジェクト作成する

スクリーンショット 2018-12-04 0.40.13.png

  • プロジェクトの設定から構成ファイルをダウンロードする

スクリーンショット 2018-12-04 0.39.21.png

  • google-services.json をapp配下に置く

  • プロジェクトのGradleファイル


buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.1.0'
    }
}

allprojects {
    repositories {
        google()
    }
}
  • アプリのGradleファイル
    • apply plugin: 'com.google.gms.google-services' はファイル一番下に書かないとちゃんと動かない(失敗あるある)
apply plugin: 'com.android.application'

dependencies {
  implementation 'com.google.firebase:firebase-core:16.0.4'
}

// ファイルの一番下に記載する
apply plugin: 'com.google.gms.google-services'

Performance Monitoringを追加

  • プロジェクトのGradleファイル
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.google.firebase:firebase-plugins:1.1.5'
    }
}

  • アプリのGradleファイル
apply plugin: 'com.android.application' // ←の下に書く
apply plugin: 'com.google.firebase.firebase-perf'

dependencies {
    implementation 'com.google.firebase:firebase-perf:16.2.1'
}

ここまでやってビルドすると、Firebaseのコンソールから情報を確認できるようになります。楽勝ですね!

で、本題(?)はここから

  • ふと、妙にアプリのビルドが遅いことに気づく
  • AndroidStudioのアップデートあたりが原因だろうと思っていたが、ボトルネックを調べたら原因が判明
    • コマンド : ./gradlew --profile --recompile-scripts --offline --rerun-tasks assembleDebug
    • なんかめっちゃ時間かかってる・・・(画像はサンプルプロジェクトで、実際のプロダクトで測定したら1分近く長くなっていた) スクリーンショット 2018-12-04 1.04.53.png
  • 対処法がないか調べたところ、一件だけ見つけることができた
  • 僕の理解では、開発中にライブラリを除外して気にしないようにするような感じ
  • 素のままで使っている場合は良いけど、カスタムトレースなどやってる場合はどうすればいいか不明

まとめ

  • FirebasePerformanceMonitoringを導入した
  • 導入結果をコンソール上で確認し、ボトルネックとなる処理の情報を得ることができた
  • 引き換えに、それなりのビルド時間を奪われた

解決法ご存知の方コメントいただけると嬉しいです

参考URL

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5