ماژول Statsd شامل statsd، یک سرویس بومی که در پسزمینه برای جمعآوری معیارها اجرا میشود، و سرویس جاوا StatsCompanionService که در فرآیند سیستم اجرا میشود و statsd و جاوا را به هم متصل میکند. این ماژول قابل بهروزرسانی است، به این معنی که میتواند بهروزرسانیهای مربوط به عملکرد (مانند بهروزرسانی معیارهای مورد استفاده در جمعآوری دادهها) را خارج از چرخه انتشار معمول اندروید دریافت کند.
مرز ماژول
Statsd نقطه تماس اصلی بین پلتفرم و جمعآوری دادههای ایمنی پرتاب است. ماژول statsd شامل کد زیر است.
statsd، واقع درframeworks/base/cmds/statsdStatsCompanionService، واقع درframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.javaزیرمجموعهای از ساختارهای protobuf پلتفرم، که عمدتاً در
frameworks/base/core/protoقرار دارد
به عنوان یک سرویس بومی، statsd میتواند از چارچوب بیشتر عمر کند و خرابیها را در خود system_server تشخیص دهد.
در اندروید ۱۲، کد ماژول 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 است و برای دستگاههایی که اندروید ۱۱ یا بالاتر دارند، در دسترس است.
وابستگیهای ماژول
ماژول Statsd مجموعهای از APIهای @hide را برای ثبت وقایع از سیستم ارائه میدهد. برای کد جاوا، اکثر APIهای @hide برای ساخته شدن بر روی مجموعه کوچکتری از متدهای برچسبگذاری شده @SystemApi ، با مقداری کد glue کوچک تولید شده داخلی، بازسازی شدهاند. برای کد native، توابع native موجود برای تبدیل شدن به APIهای رسمی VNDK C، با glue تولید شده، بازسازی شدهاند.
سفارشیسازی
ماژول Statsd از سفارشیسازی پشتیبانی نمیکند.
آزمایش
مجموعه تست سازگاری اندروید (CTS) عملکرد statsd و اتمهایی که مدیریت انتشار به آنها وابسته است را تأیید میکند.