İstatistik

Statsd modülü, metrikleri toplayan arka planda çalışan bir yerel hizmet olan Statsd modülü ile sistem işleminde çalışan ve policiesd ile Java arasında köprü görevi gören Java hizmetini StatsCompanionService içerir. Bu modül güncellenebilir. Yani, normal Android sürüm döngüsünün dışında işlevlerle ilgili güncellemeleri (veri toplamada kullanılan metriklerde yapılan güncellemeler gibi) alabilir.

Modül sınırı

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

  • frameworks/base/cmds/statsd, frameworks/base/cmds/statsdstatsd

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

  • Platform protobuf yapılarının alt kümesi. Genellikle frameworks/base/core/proto

Yerel bir hizmet olarak statsd, çerçeveden daha uzun süre çalışabilir ve system_server'te 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 kopyala
    • jni dosyasını framework/jni hedefine taşıyın
    • Üst düzey 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şımayla ilgili örnek komutlar

Değişiklikleri aşağıdaki şubelere uygulayın:

  • goog/mainline-prod
  • goog/main
  • goog/\*-plus-aosp
  • aosp/main

Statsd'deki dosyaların geçmişi korunur.

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'si sunar. Java kodunda, çoğu @hide API'si, daha küçük bir @SystemApi etiketli yöntem grubuna göre yeniden yapılandırılır ve bazı küçük, oluşturulmuş yapıştırıcı kodlar eklenir. Yerel kodda, 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), istatistikler'in işlevselliğini ve sürüm yönetiminin bağlı olduğu atomları doğrular.