Statsd modülü, arka planda ölçümleri toplayan yerel bir hizmet olan statsd'yi ve sistem sürecinde çalışan ve statsd ile Java arasında köprü kuran Java hizmeti StatsCompanionService
içerir. Bu modül güncellenebilir, yani normal Android sürüm döngüsünün dışında işlevsellik güncellemelerini (veri toplamada kullanılan ölçümlerdeki güncellemeler gibi) alabilir.
Modül sınırı
Statsd, platform ile fırlatma güvenliği verilerinin toplanması arasındaki birincil temas noktasıdır. Statsd modülü aşağıdaki kodu içerir.
statsd
,frameworks/base/cmds/statsd
bulunurStatsCompanionService
,frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
konumunda bulunurPlatform protobuf yapılarının bir alt kümesi olup, öncelikli olarak
frameworks/base/core/proto
bulunur
Yerel bir hizmet olarak statsd, çerçeveyi aşabilir ve system_server
kendisindeki çökmeleri tespit edebilir.
Android 12'de Statsd modül kodu frameworks/base/cmds/StatsD
, frameworks/base/apex/StatsD
ve system/core/libstats
taşınmıştır.
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 seviyeyi olduğu gibi kopyala
-
jni
framework/jni
taşı - Üst düzey dosyaları
/apex
dizinine taşıyın-
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
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 formatı
Statsd modülü ( com.android.os.statsd
) APEX biçimindedir ve Android 11 veya üstünü çalıştıran cihazlarda kullanılabilir.
Modül bağımlılıkları
Statsd modülü, sistemdeki olayları günlüğe kaydetmek için bir dizi @hide
API sunar. Java kodu için, @hide
API'lerinin çoğu, yerleşik olarak küçük oluşturulmuş birleştirici kod içeren, daha küçük bir @SystemApi
etiketli yöntemler kümesi üzerine oluşturulacak şekilde yeniden düzenlenir. Yerel kod için, mevcut yerel işlevler, oluşturulan kodlarla resmi VNDK C API'leri olacak şekilde yeniden düzenlenir. zamk.
Özelleştirme
Statsd modülü özelleştirmeyi desteklemez.
Test yapmak
Android Uyumluluk Test Paketi (CTS), statsd'nin ve sürüm yönetiminin bağlı olduğu atomların işlevselliğini doğrular.