İstatistikler

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 bulunur

  • StatsCompanionService , frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java konumunda bulunur

  • Platform 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/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/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.