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 집합을 제공합니다. 자바 코드의 경우, 소규모로 생성된 내장 글루 코드를 사용하여 대부분의 @hide
API가 @SystemApi
태그가 지정된 소규모 메서드 집합에 빌드되도록 리팩터링합니다. 네이티브 코드의 경우, 생성된 글루 코드를 사용하여 기존 네이티브 함수가 공식 VNDK C API가 되도록 리팩터링합니다.
맞춤설정
Statsd 모듈은 맞춤설정을 지원하지 않습니다.
테스트
Android 호환성 테스트 모음(CTS)은 statsd의 기능과 출시 관리를 좌우하는 Atom을 확인합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(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-07-27(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."]]