Android 效能優化系列 — 25 Firebase Performance Monitoring

Evan Chen
Oct 14, 2022

--

Photo by Marianna Lutkova on Unsplash

Firebase 是 Google 的一個為 Android、iOS、Web 提供豐富的後端服務。其中一個功能就 Firebase Performance Monitoring,用來監控 App 的效能表現。可提供「App 的啟動時間」、「頁面顯示時間」、「網路請求效能」,並可以自定義指標及屬性。

啟用Firebase Performance Monitoring

登入Firebase 後,點選 Performance,啟用 Performance。接著回到 App 修改程式碼。

在 Project level 的 Gradle 加入

dependencies {
classpath 'com.google.firebase:perf-plugin:1.4.1'
}

在 Application level 的 Gradle 加入

plugins {
id 'com.google.firebase.firebase-perf'
}
dependencies {
implementation platform('com.google.firebase:firebase-bom:30.5.0')
implementation 'com.google.firebase:firebase-perf-ktx'
}

在 AndroidManifest.xml 加入

<application>
<meta-data
android:name="firebase_performance_logcat_enabled"
android:value="true" />
</application>

將 App 執行起來,再回到 Firebase Performance 就可以看到數字了。如下圖顯示的是應用程式啟動時間。關於應用程式啟動時間,請參考本系列縮短 App 的短動時間

你還可以選擇依「應用程式版本」、「行動電信業者」等來顯示分佈狀況。

頁面顯示

所有的 Activity 將自動被監控並記錄載入的時間。

點 Activity 進入可以查看是否有顯示速度緩慢或凍結的頁框。關於頁面顯示效能,請參考本系列 UI的效能優化

監控網路請求

Firebase 也可以監控使用者的網路狀況,我們可以知道每個網路請求的時間、請求 (Request) 的內容、回應(Response) 的內容。可以方便找出是否有哪個 API 有效能問題,對於 debug 也很有幫助。關於網路請求效能,請參考本系列網路請求的效能優化

點進去可以看到更多的資料,你可以從這裡來查看是否有網路的效能問題。

自定義指標

與 Google play vitals 最大的不同是,使用 Firebase Performance 可以自行定義指標。例如我要計算開啟某個服務的時間,就可以在開啟這個服務的前後加上 trace.start()trace.stop()

val trace = Firebase.performance.newTrace("test_trace")
trace.start()
// 追蹤這段程式碼執行所需時間trace.stop()

自定義屬性

你也可以針對一個追蹤去自定義屬性,在Firebase的統計數字就可以在依自定義屬性再分類。在做這些都要記得不要搜集跟個資有關的,例如 E-mail 就是不能放入追蹤的屬性。

Firebase.performance.newTrace("test_trace").trace {
putAttribute("experiment", "A")
}

以上就是 Firebase Performance Monitoring 的介紹,與 Google play vitals 都是很重要且容易使用的監控 App 工具,可以讓我們知道真實使用者的使用狀況,並能即時收到通知。

下一篇:熟悉 Component 的使用方式 — 以 RecyclerView 為例

--

--