自 2025 年 3 月 27 日起,我們建議您使用 android-latest-release
而非 aosp-main
建構及貢獻 AOSP。詳情請參閱「Android 開放原始碼計畫變更」。
Statsd
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
Statsd 模組包含 statsd,這是在背景執行並收集指標的原生服務,以及 Java 服務 StatsCompanionService
,該服務會在系統程序中執行,並連結 statsd 和 Java。這個模組可更新,也就是說,它可以在正常的 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 相容性測試套件 (CTS) 會驗證 statsd 的功能,以及版本管理作業所依賴的原子。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-07-27 (世界標準時間)。
[[["容易理解","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-07-27 (世界標準時間)。"],[],[],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."]]