Statsd modülü, arka planda ölçüm toplamada çalışan 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 veri toplama arasındaki birincil temas noktasıdır. statsd modülü aşağıdaki kodu içerir.
statsd
,frameworks/base/cmds/statsd
frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
StatsCompanionService
Öncelikle
frameworks/base/core/proto
içinde bulunan platform protobuf yapılarının bir alt kümesi
Yerel bir hizmet olarak statsd, çerçeveyi aşabilir ve system_server
kendisindeki çökmeleri algılayabilir.
Android 12'de Statsd modül kodu, frameworks/base/cmds/StatsD
, frameworks/base/apex/StatsD
ve system/core/libstats
.
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/master
-
goog/\*-plus-aosp
-
aosp/master
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 sonraki sürümleri ç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, daha küçük bir @SystemApi
etiketli yöntemler kümesi üzerinde oluşturulmak üzere yeniden düzenlenir ve bazı küçük oluşturulmuş yapıştırıcı kodlar yerleşiktir. Yerel kod için, mevcut yerel işlevler, oluşturulan resmi VNDK C API'leri olacak şekilde yeniden düzenlenir. zamk.
özelleştirme
Statsd modülü özelleştirmeyi desteklemiyor.
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.