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