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