Statsd

Statsd modülü, arka planda çalışarak metrikleri toplayan yerel bir hizmet olan statsd'yi ve sistem sürecinde çalışarak statsd ile Java arasında köprü görevi gören Java hizmeti StatsCompanionService'yı içerir. Bu modül güncellenebilir. Bu nedenle, normal Android sürüm döngüsünün dışında işlevsellik güncellemeleri (ör. veri toplamada kullanılan metriklerdeki güncellemeler) alabilir.

Modül sınırı

Statsd, platform ile lansman güvenliği verilerinin toplanması arasındaki temel temas noktasıdır. statsd modülü aşağıdaki kodu içerir.

  • statsd, frameworks/base/cmds/statsd konumunda

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

  • Platform protobuf yapılarının bir alt kümesi (çoğunlukla frameworks/base/core/proto içinde bulunur)

Yerel bir hizmet olan statsd, çerçeveden daha uzun süre çalışabilir ve system_server içindeki 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/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 düzeyi olduğu gibi kopyalama
    • jni öğesini framework/jni klasörüne taşıma
    • En üst düzeydeki dosyaları /apex dizinine taşıma
      • 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 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 sunar. Java kodunda, çoğu @hide API, daha küçük bir @SystemApi etiketli yöntemler kümesi üzerine oluşturulacak şekilde yeniden düzenlenir. Bazı küçük oluşturulmuş yapıştırıcı kodlar da yerleşiktir. Yerel kod için 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), statsd'nin işlevselliğini ve yayın yönetiminin bağlı olduğu atomları doğrular.