ماژول 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/libstatssystem/core/libstats/socket←packages/modules/StatsD/lib/libstatssocketsystem/core/libstats/pull←packages/modules/StatsD/lib/libstatspull
frameworks/base/cmds/StatsD←packages/modules/StatsD/binframeworks/base/apex/StatsD→- کپی کردن سطح بالا همانگونه که هست
- انتقال
jniبهframework/jni - انتقال فایلهای سطح بالا به دایرکتوری
/apexframeworks/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-prodgoog/maingoog/\*-plus-aospaosp/main
سابقه فایلهای درون Statsd باید حفظ شود.
قالب واحد
واحد statsd (com.android.os.statsd) در قالب
APEX است و برای دستگاههای
دارای Android 11 یا بالاتر دردسترس است.
وابستگیهای واحد
واحد Statsd مجموعهای از @hide API برای ثبت رویدادهای سیستم ارائه میدهد. برای کد Java، اکثر میاناهای برنامهسازی کاربردی @hide بازسازی میشوند تا روی مجموعه کوچکتری از روشهای برچسبگذاریشده @SystemApi ساخته شوند و برخیاز کدهای چسب تولیدشده کوچک در آن تعبیه شده است. برای کد بومی، توابع بومی موجود بازسازی میشوند
تا به میاناهای برنامهسازی کاربردی رسمی VNDK C تبدیل شوند، با چسب تولیدشده.
سفارشیسازی
واحد Statsd از سفارشیسازی پشتیبانی نمیکند.
آزمایش
«مجموعه آزمون سازگاری Android» (CTS) عملکرد statsd و اتمهایی را که مدیریت انتشار به آنها وابسته است تأیید میکند.