מודול Statsd כולל את statsd, שירות מקורי שפועל ברקע ומאסף מדדים, ואת שירות Java StatsCompanionService, שפועל בתהליך המערכת ומגשר בין statsd ל-Java. המודול הזה ניתן לעדכון, כלומר הוא יכול לקבל עדכונים לפונקציונליות (כמו עדכונים למדדים שמשמשים לאיסוף נתונים) מחוץ למחזור הרגיל של הפצת Android.
גבול המודול
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 עצמו.
ב-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, רוב ממשקי ה-API של @hide עוברים רפקטורינג כדי שייבנו על קבוצה קטנה יותר של שיטות שתויגו ב-@SystemApi, עם קוד דבק קטן שנוצר מראש. במקרה של קוד מקורי, פונקציות מקוריות קיימות עוברות רפקטורינג כדי להפוך לממשקי API רשמיים של VNDK C, עם דבק שנוצר.
התאמה אישית
מודול Statsd לא תומך בהתאמה אישית.
בדיקה
חבילת הבדיקות לתאימות (CTS) של Android מאמתת את הפונקציונליות של statsd ואת האטומים שעליהם מסתמך ניהול הגרסאות.