istatistikler

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 yayın 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/libstatspackages/modules/StatsD/lib/libstats
    • system/core/libstats/socketpackages/modules/StatsD/lib/libstatssocket
    • system/core/libstats/pullpackages/modules/StatsD/lib/libstatspull
  • frameworks/base/cmds/StatsDpackages/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/jnipackages/modules/StatsD/apex/framework/jni
  • cts/hostsidetests/StatsDpackages/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.google.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, yerleşik bazı küçük yapıştırıcı kodlarla birlikte daha küçük @SystemApi etiketli yöntemler kümesi üzerinde oluşturulmak üzere yeniden düzenlenir. 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.