Statsd モジュールには、統計情報を収集するバックグラウンドで実行されるネイティブ サービスである statsd と、システム プロセスで実行され、statsd と Java をブリッジする Java サービスStatsCompanionService
が含まれています。このモジュールは更新可能です。つまり、通常の Android リリース サイクル以外で、機能の更新 (データ収集で使用される指標の更新など) を受け取ることができます。
モジュール境界
Statsd は、プラットフォームと打ち上げ安全データ収集の間の主要なタッチポイントです。 statsd モジュールには、次のコードが含まれています。
statsd
、frameworks/base/cmds/statsd
にありますframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
StatsCompanionService
主に
frameworks/base/core/proto
にある、プラットフォームの protobuf 構造のサブセット
ネイティブ サービスとして、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/master
-
goog/\*-plus-aosp
-
aosp/master
Statsd 内のファイルの履歴は保持する必要があります。
モジュール形式
statsd モジュール ( com.android.os.statsd
) はAPEX形式であり、Android 11 以降を実行しているデバイスで使用できます。
モジュールの依存関係
Statsd モジュールは、システムからのイベントをログに記録するための一連の@hide
API を提供します。 Java コードの場合、ほとんどの@hide
API はリファクタリングされ、 @SystemApi
タグが付けられたメソッドのより小さなセットで構築され、生成された小さなグルー コードが組み込まれています。ネイティブ コードの場合、既存のネイティブ関数は公式の VNDK C API になるようリファクタリングされ、のり。
カスタマイズ
Statsd モジュールはカスタマイズをサポートしていません。
テスト
Android 互換性テスト スイート (CTS) は、リリース管理が依存する statsd とアトムの機能を検証します。