2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
Statsd
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
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 にリファクタリングされます。
カスタマイズ
stats モジュールではカスタマイズがサポートされていません。
テスト
Android 互換性テストスイート(CTS)は、statsd の機能と、リリース管理が依存する Atom を検証します。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-26 UTC。"],[],[],null,["# Statsd\n\nThe Statsd module includes statsd, a native service that runs in the background\ncollecting metrics, and the Java service `StatsCompanionService`, which runs in\nthe system process and bridges statsd and Java. This module is updatable,\nmeaning it can receive updates to functionality (such as updates to the metrics\nused in data collection) outside of the normal Android release cycle.\n\nModule boundary\n---------------\n\nStatsd is the primary touchpoint between the platform and launch-safety data\ncollection. The statsd module includes the following code.\n\n- `statsd`, located in `frameworks/base/cmds/statsd`\n\n- `StatsCompanionService`, located in\n `frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java`\n\n- A subset of the platform protobuf structures, located primarily in\n `frameworks/base/core/proto`\n\nAs a native service, statsd can outlive the framework and detect crashes in the\n`system_server` itself.\n\nIn Android 12, the Statsd\nmodule code is moved from `frameworks/base/cmds/StatsD`,\n`frameworks/base/apex/StatsD`, and `system/core/libstats`.\n\n### New project structure\n\n- `system/core/libstats` → `packages/modules/StatsD/lib/libstats`\n - `system/core/libstats/socket` → `packages/modules/StatsD/lib/libstatssocket`\n - `system/core/libstats/pull` → `packages/modules/StatsD/lib/libstatspull`\n- `frameworks/base/cmds/StatsD` → `packages/modules/StatsD/bin`\n- `frameworks/base/apex/StatsD` →\n - Copy top level as is\n - Move `jni` into `framework/jni`\n - Move toplevel files into `/apex` directory\n - `frameworks/base/apex/StatsD/\\*` → `packages/modules/StatsD/apex/\\*`\n - `frameworks/base/apex/StatsD/jni` → `packages/modules/StatsD/apex/framework/jni`\n- `cts/hostsidetests/StatsD` → `packages/modules/StatsD/tests`\n\n### Patch move sample commands\n\nApply the changes to the following branches:\n\n- `goog/mainline-prod`\n- `goog/main`\n- `goog/\\*-plus-aosp`\n- `aosp/main`\n\nThe history for the files within Statsd should be preserved.\n\nModule format\n-------------\n\nThe statsd module (`com.android.os.statsd`) is in\n[APEX](/docs/core/ota/apex) format and is available for devices\nrunning Android 11 or higher.\n\nModule dependencies\n-------------------\n\nThe Statsd module presents a set of `@hide` APIs to log events from the\nsystem. For Java code, most `@hide` APIs are refactored to be built on a\nsmaller set of `@SystemApi` tagged methods, with some small generated\nglue code built in. For native code, existing native functions are refactored\nto be official VNDK C APIs, with generated glue.\n\nCustomization\n-------------\n\nThe Statsd module doesn't support customization.\n\nTesting\n-------\n\nThe Android Compatibility Test Suite (CTS) verifies the functionality of statsd\nand the atoms on which release management depends."]]