يتضمّن وحدة Statsd كلاً من statsd، وهي خدمة أصلية تعمل في الخلفية وتجمع المقاييس، وخدمة 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/libstats
→packages/modules/StatsD/lib/libstats
-
system/core/libstats/socket
←packages/modules/StatsD/lib/libstatssocket
-
system/core/libstats/pull
←packages/modules/StatsD/lib/libstatspull
-
-
frameworks/base/cmds/StatsD
←packages/modules/StatsD/bin
frameworks/base/apex/StatsD
→- نسخ المستوى الأعلى كما هو
- نقل
jni
إلىframework/jni
- نقل الملفات ذات المستوى الأعلى إلى الدليل
/apex
-
frameworks/base/apex/StatsD/\*
←packages/modules/StatsD/apex/\*
-
frameworks/base/apex/StatsD/jni
←packages/modules/StatsD/apex/framework/jni
-
-
cts/hostsidetests/StatsD
←packages/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
عليها، مع تضمين بعض الرموز البرمجية الصغيرة التي تم إنشاؤها. بالنسبة إلى الرموز البرمجية الأصلية، تتم إعادة تصميم الدوال الأصلية الحالية لتصبح واجهات برمجة تطبيقات C رسمية في VNDK، مع إنشاء رمز ربط.
التخصيص
لا يتيح وحدة Statsd إمكانية التخصيص.
الاختبار
تتحقّق "مجموعة أدوات اختبار التوافق" (CTS) لنظام التشغيل Android من وظائف statsd والعناصر التي تعتمد عليها إدارة الإصدارات.