Statsd モジュールには、メトリクスを収集するバックグラウンドで実行されるネイティブ サービスである statsd と、システム プロセスで実行され statsd と Java のブリッジとなる Java サービスStatsCompanionService
が含まれています。このモジュールは更新可能です。つまり、通常の Android リリース サイクル以外でも、機能の更新 (データ収集で使用されるメトリクスの更新など) を受け取ることができます。
モジュール境界
Statsd は、プラットフォームと打ち上げ安全データ収集の間の主要なタッチポイントです。 statsd モジュールには次のコードが含まれています。
statsd
、frameworks/base/cmds/statsd
にありますStatsCompanionService
、frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
にあります。プラットフォームの protobuf 構造のサブセット。主に
frameworks/base/core/proto
にあります。
ネイティブ サービスとして、statsd はフレームワークよりも存続し、 system_server
自体のクラッシュを検出できます。
Android 12 では、Statsd モジュール コードはframeworks/base/cmds/StatsD
、 frameworks/base/apex/StatsD
、およびsystem/core/libstats
から移動されました。
新しいプロジェクト構造
system/core/libstats
→packages/modules/StatsD/lib/libstats
-
system/core/libstats/socket
→packages/modules/StatsD/lib/libstatssocket
-
system/core/libstats/pull
→packages/modules/StatsD/lib/libstatspull
-
-
frameworks/base/cmds/StatsD
→packages/modules/StatsD/bin
-
frameworks/base/apex/StatsD
→- トップレベルをそのままコピー
jni
framework/jni
に移動する- トップレベルのファイルを
/apex
ディレクトリに移動しますframeworks/base/apex/StatsD/\*
→packages/modules/StatsD/apex/\*
-
frameworks/base/apex/StatsD/jni
→packages/modules/StatsD/apex/framework/jni
-
cts/hostsidetests/StatsD
→packages/modules/StatsD/tests
パッチ移動サンプルコマンド
変更を次のブランチに適用します。
-
goog/mainline-prod
-
goog/main
-
goog/\*-plus-aosp
-
aosp/main
Statsd 内のファイルの履歴は保存する必要があります。
モジュールフォーマット
statsd モジュール ( com.android.os.statsd
) はAPEX形式であり、Android 11 以降を実行しているデバイスで利用できます。
モジュールの依存関係
Statsd モジュールは、システムからのイベントをログに記録するための@hide
API のセットを提供します。 Java コードの場合、ほとんどの@hide
API は、いくつかの小さな生成されたグルー コードが組み込まれた、より小さな@SystemApi
タグ付きメソッドのセット上に構築されるようにリファクタリングされます。 ネイティブ コードの場合、既存のネイティブ関数は公式の VNDK C API になるようにリファクタリングされ、生成されたのり。
カスタマイズ
Statsd モジュールはカスタマイズをサポートしていません。
テスト
Android Compatibility Test Suite (CTS) は、statsd の機能と、リリース管理が依存するアトムを検証します。