指標

  
アプリのさまざまなランタイム指標を追跡して報告します
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
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 も追加されました。(I59ce8b/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 でメソッド名とパラメータ名を更新し、それらの呼び出しの結果が明確になるようにしました。(I56da5b/233421985
  • 割り当てを管理するためのベンチマーク テストを追加し、状態管理とレポート作成に関連する内部割り当てを取り除きました。リスナーに渡される FrameData は揮発的と見なされるようになり、その構造は次のフレームに再使用されるため、データを信頼できるのはリスナーが戻るまでのみとなります。
  • JankStats のコンストラクタからエグゼキュータを削除しました。リスナーは、内部データを受け取ったどのスレッドでも呼び出されるようになります。(I12743

バグの修正

  • OnFrameMetricsAvailableListener の二重削除によるクラッシュを修正しました。(I44094b/239457413
  • フレーム時間の整合性と予測性を高めるため、キューの先頭に OnPreDrawListener メッセージを送信する元のロジックに戻しました。(I05a43b/233358407
  • リスナー デリゲートのリストが変更されただけでなく、フレームごとのデータを送信するために反復処理も行われた ConcurrentModificationException のバグを修正しました。(Ib7693b/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 内): (I5a4d9b/226565716b/213499234

バグの修正

  • 古い状態が正しいはずのフレームが処理される前に、状態が新しい値に置き換えられる場合があるタイミングの問題を修正しました(aosp/2061892b/213499234
  • リスナーの追加 / 削除時の同時変更例外を修正しました(aosp/2092714b/213499234
  • startTime 計算の精度を高めました(aosp/2027704b/213245198
  • FrameData.equals() 実装に関するバグを修正しました(aosp/2025866b/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 と、フレームごとのパフォーマンスを追跡して報告する機能を組み合わせることで、アプリにパフォーマンスの問題があるかどうかではなく、いつ、なぜ発生したのかを把握できるようにします。