统计数据

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

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/StatsDframeworks/base/apex/StatsDsystem/core/libstats

新的项目结构

  • system/core/libstatspackages/modules/StatsD/lib/libstats
    • system/core/libstats/socketpackages/modules/StatsD/lib/libstatssocket
    • system/core/libstats/pullpackages/modules/StatsD/lib/libstatspull
  • frameworks/base/cmds/StatsDpackages/modules/StatsD/bin
  • frameworks/base/apex/StatsD
    • 按原样复制顶层
    • jni移动到framework/jni
    • 将顶级文件移动到/apex目录
      • frameworks/base/apex/StatsD/\*packages/modules/StatsD/apex/\*
      • frameworks/base/apex/StatsD/jnipackages/modules/StatsD/apex/framework/jni
  • cts/hostsidetests/StatsDpackages/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 的功能以及发布管理所依赖的原子。