Statsd modülü, arka planda çalışarak metrikleri toplayan yerel bir hizmet olan statsd'yi ve sistem sürecinde çalışarak statsd ile Java arasında köprü görevi gören Java hizmeti StatsCompanionService
'yı içerir. Bu modül güncellenebilir. Bu nedenle, normal Android sürüm döngüsünün dışında işlevsellik güncellemeleri (ör. veri toplamada kullanılan metriklerdeki güncellemeler) alabilir.
Modül sınırı
Statsd, platform ile lansman güvenliği verilerinin toplanması arasındaki temel temas noktasıdır. statsd modülü aşağıdaki kodu içerir.
statsd
,frameworks/base/cmds/statsd
konumundaStatsCompanionService
,frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
konumundaPlatform protobuf yapılarının bir alt kümesi (çoğunlukla
frameworks/base/core/proto
içinde bulunur)
Yerel bir hizmet olan statsd, çerçeveden daha uzun süre çalışabilir ve system_server
içindeki kilitlenmeleri algılayabilir.
Android 12'de Statsd
modül kodu frameworks/base/cmds/StatsD
,
frameworks/base/apex/StatsD
ve system/core/libstats
'den taşındı.
Yeni proje yapısı
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
→- Üst düzeyi olduğu gibi kopyalama
jni
öğesiniframework/jni
klasörüne taşıma- En üst düzeydeki dosyaları
/apex
dizinine taşımaframeworks/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
Yama taşıma örnek komutları
Değişiklikleri aşağıdaki dallara uygulayın:
goog/mainline-prod
goog/main
goog/\*-plus-aosp
aosp/main
Statsd içindeki dosyaların geçmişi korunmalıdır.
Modül biçimi
statsd modülü (com.android.os.statsd
) APEX biçimindedir ve Android 11 veya sonraki sürümleri çalıştıran cihazlarda kullanılabilir.
Modül bağımlılıkları
Statsd modülü, sistemdeki etkinlikleri günlüğe kaydetmek için bir dizi @hide
API sunar. Java kodunda, çoğu @hide
API, daha küçük bir @SystemApi
etiketli yöntemler kümesi üzerine oluşturulacak şekilde yeniden düzenlenir. Bazı küçük oluşturulmuş yapıştırıcı kodlar da yerleşiktir. Yerel kod için mevcut yerel işlevler, oluşturulan yapıştırıcıyla birlikte resmi VNDK C API'leri olacak şekilde yeniden düzenlenir.
Özelleştirme
Statsd modülü özelleştirmeyi desteklemez.
Test
Android Uyumluluk Test Paketi (CTS), statsd'nin işlevselliğini ve yayın yönetiminin bağlı olduğu atomları doğrular.