Statsd 모듈에는 메트릭을 수집하는 백그라운드에서 실행되는 기본 서비스인 statsd와 시스템 프로세스에서 실행되고 statsd와 Java를 연결하는 Java 서비스 StatsCompanionService
가 포함됩니다. 이 모듈은 업데이트할 수 있습니다. 즉, 정상적인 Android 릴리스 주기 외에 기능 업데이트(예: 데이터 수집에 사용되는 메트릭 업데이트)를 받을 수 있습니다.
모듈 경계
Statsd는 플랫폼과 발사 안전 데이터 수집 사이의 주요 접점입니다. statsd 모듈에는 다음 코드가 포함되어 있습니다.
statsd
,frameworks/base/cmds/statsd
에 있습니다.frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
StatsCompanionService
주로
frameworks/base/core/proto
에 있는 플랫폼 protobuf 구조의 하위 집합
기본 서비스인 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
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/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의 기능과 릴리스 관리가 의존하는 원자를 확인합니다.