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을 확인합니다.
