Statsd modülü, metrikleri toplayan arka planda çalışan bir yerel hizmet olan Statsd modülü ile sistem işleminde çalışan ve policiesd ile Java arasında köprü görevi gören Java hizmetini StatsCompanionService
içerir. Bu modül güncellenebilir. Yani, normal Android sürüm döngüsünün dışında işlevlerle ilgili güncellemeleri (veri toplamada kullanılan metriklerde yapılan güncellemeler gibi) alabilir.
Modül sınırı
Statsd, platform ile lansman güvenliği veri toplama arasındaki birincil temas noktasıdır. statsd modülü aşağıdaki kodu içerir.
frameworks/base/cmds/statsd
,frameworks/base/cmds/statsd
statsd
frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
konumundakiStatsCompanionService
Platform protobuf yapılarının alt kümesi. Genellikle
frameworks/base/core/proto
Yerel bir hizmet olarak statsd, çerçeveden daha uzun süre çalışabilir ve system_server
'te 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 kopyala
jni
dosyasınıframework/jni
hedefine taşıyın- Üst düzey 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şımayla ilgili örnek komutlar
Değişiklikleri aşağıdaki şubelere uygulayın:
goog/mainline-prod
goog/main
goog/\*-plus-aosp
aosp/main
Statsd'deki dosyaların geçmişi korunur.
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'si sunar. Java kodunda, çoğu @hide
API'si, daha küçük bir @SystemApi
etiketli yöntem grubuna göre yeniden yapılandırılır ve bazı küçük, oluşturulmuş yapıştırıcı kodlar eklenir. Yerel kodda, 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), istatistikler'in işlevselliğini ve sürüm yönetiminin bağlı olduğu atomları doğrular.