自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
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 的功能及版本管理所依赖的 Atom。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-04-07。
[[["易于理解","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"]],["最后更新时间 (UTC):2025-04-07。"],[],[],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."]]