Statsd

تتضمّن وحدة Statsd أداة statsd، وهي خدمة أصلية تعمل في background لجمع المقاييس، وخدمة Java StatsCompanionService التي تعمل في عملية النظام وتربط بين statsd وJava. يمكن تعديل هذه الوحدة، ما يعني أنّه يمكنها تلقّي تعديلات على الوظائف (مثل تعديلات على المقاييس المستخدَمة في جمع البيانات) خارج دورة إصدار Android العادية.

حدود الوحدة

وتعدّ Statsd نقطة الاتصال الأساسية بين المنصة وجمع بيانات أمان الإطلاق. تتضمّن وحدة statsd الرمز التالي.

  • statsd، في frameworks/base/cmds/statsd

  • StatsCompanionService، في frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java

  • مجموعة فرعية من هياكل protobuf للمنصة، والتي تقع في المقام الأول في frameworks/base/core/proto

وبصفتها خدمة أصلية، يمكن أن تستمر statsd بعد انتهاء صلاحية إطار العمل وأن ترصد الأعطال في system_server نفسه.

في Android 12، تم نقل رمز وحدة Statsd من frameworks/base/cmds/StatsD وframeworks/base/apex/StatsD وsystem/core/libstats.

بنية المشروع الجديدة

  • 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
    • نسخ المستوى الأعلى كما هو
    • نقل jni إلى framework/jni
    • نقل ملفات المستوى الأعلى إلى الدليل /apex
      • frameworks/base/apex/StatsD/\*packages/modules/StatsD/apex/\*
      • frameworks/base/apex/StatsD/jnipackages/modules/StatsD/apex/framework/jni
  • cts/hostsidetests/StatsDpackages/modules/StatsD/tests

أمثلة على أوامر نقل التصحيحات

طبِّق التغييرات على الفروع التالية:

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

يجب الاحتفاظ بسجلّ الملفات ضمن Statsd.

تنسيق الوحدة

وحدة statsd (com.android.os.statsd) بتنسيق APEX وهي متاحة للأجهزة التي تعمل بنظام التشغيل Android 11 أو الإصدارات الأحدث.

تبعيات الوحدة

تقدّم وحدة Statsd مجموعة من واجهات برمجة التطبيقات @hide لتسجيل الأحداث من النظام. بالنسبة إلى رمز Java، تتم إعادة هيكلة معظم واجهات برمجة التطبيقات @hide لتكون مبنية على مجموعة أصغر من @SystemApi الطرق المُشار إليها، مع تضمين بعض الرموز البرمجية المُنشأة الصغيرة. بالنسبة إلى الرموز البرمجية الأصلية، تتم إعادة هيكلة الدوال البرمجية الأصلية الحالية لتكون واجهات برمجة تطبيقات رسمية لـ VNDK C، مع إنشاء رمز ربط.

التخصيص

لا تتيح وحدة Statsd إمكانية التخصيص.

الاختبار

تتحقّق مجموعة أدوات اختبار التوافق مع Android (CTS) من وظيفة statsd والعناصر التي تعتمد عليها إدارة الإصدارات.