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