指標
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2024 年 1 月 10 日 | - | - | 1.0.0-beta01 | - |
依存関係の宣言
Metrics への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.metrics:metrics-performance:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.metrics:metrics-performance:1.0.0-beta01") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.0
バージョン 1.0.0-beta01
2024 年 1 月 10 日
このライブラリの API と機能は、しばらくの間安定しています。このリリースでは、ライブラリをベータ版に移行しただけです。
androidx.metrics:metrics-performance:1.0.0-beta01
がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください。
バージョン 1.0.0-alpha04
2023 年 4 月 5 日
このリリースでは JankStats を最新の修正に更新します。これには、より正確で包括的なタイミング情報が含まれます。
androidx.metrics:metrics-performance:1.0.0-alpha04
がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
API の変更
cpuDuration
の精度が向上しました。また、API31 の新しいtotalDuration
も追加されました。(I59ce8、b/243694893)
バージョン 1.0.0-alpha03
2022 年 7 月 27 日
androidx.metrics:metrics-performance:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
このリリースでは、ライブラリがベータ版にかなり近いものになったことから、API に軽微な改良が加えられています。API 変更の 1 つは、
JankStats
オブジェクトを作成するためのcreateAndTrack()
ファクトリー メソッドからのエグゼキュータの削除です。フレームごとのデータをJankStats
に提供するスレッド(API 24 より前のバージョンでは Main/UI スレッド、API 24 以上ではFrameMetrics
スレッド)でリスナーが呼び出されるようになるため、この変更はOnFrameListener
コールバックに影響します。さらに、リスナーに渡されるFrameData
オブジェクトがフレームごとに再使用されるようになり、リスナーが戻ったらすぐにそのオブジェクトは古いと見なす必要があるため、コールバック時にそのオブジェクトからデータをコピーしてキャッシュに保存する必要があります。また、同時実行に関する問題など、さまざまなバグの修正も行われました。
最後に、
FrameData
を再利用する(前述の)修正により、フレーム指標の提供のため、フレームごとの割り当てがゼロになりました。以前も割り当てはあまりありませんでしたが、新しいアプローチでは、アプリでフレームごとの GC オーバーヘッドを発生させずにJankStats
を使用できます。
API の変更
PerformanceMetricsState
でメソッド名とパラメータ名を更新し、それらの呼び出しの結果が明確になるようにしました。(I56da5、b/233421985)- 割り当てを管理するためのベンチマーク テストを追加し、状態管理とレポート作成に関連する内部割り当てを取り除きました。リスナーに渡される
FrameData
は揮発的と見なされるようになり、その構造は次のフレームに再使用されるため、データを信頼できるのはリスナーが戻るまでのみとなります。 JankStats
のコンストラクタからエグゼキュータを削除しました。リスナーは、内部データを受け取ったどのスレッドでも呼び出されるようになります。(I12743)
バグの修正
OnFrameMetricsAvailableListener
の二重削除によるクラッシュを修正しました。(I44094、b/239457413)- フレーム時間の整合性と予測性を高めるため、キューの先頭に
OnPreDrawListener
メッセージを送信する元のロジックに戻しました。(I05a43、b/233358407) - リスナー デリゲートのリストが変更されただけでなく、フレームごとのデータを送信するために反復処理も行われた
ConcurrentModificationException
のバグを修正しました。(Ib7693、b/236612357)
バージョン 1.0.0-alpha02
2022 年 6 月 29 日
androidx.metrics:metrics-performance:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
MetricsStateHolder
の名前を Holder のみに変更しました(PerformanceMetricsState
内): (I5a4d9、b/226565716、b/213499234)
バグの修正
- 古い状態が正しいはずのフレームが処理される前に、状態が新しい値に置き換えられる場合があるタイミングの問題を修正しました(aosp/2061892、b/213499234)
- リスナーの追加 / 削除時の同時変更例外を修正しました(aosp/2092714、b/213499234)
- startTime 計算の精度を高めました(aosp/2027704、b/213245198)
FrameData.equals()
実装に関するバグを修正しました(aosp/2025866、b/218296544)
バージョン 1.0.0-alpha01
2022 年 2 月 9 日
androidx.metrics:metrics-performance:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
JankStats
ライブラリには、ランタイムにアプリのコールバックをインストルメント化して受け取る機能があり、実際のパフォーマンスの問題を検出できます。JankStats
は、UI の状態に関する情報を簡単に挿入できる API と、フレームごとのパフォーマンスを追跡して報告する機能を組み合わせることで、アプリにパフォーマンスの問題があるかどうかではなく、いつ、なぜ発生したのかを把握できるようにします。