המודול Statsd כולל את statsd, שירות מקומי שפועל ברקע ומאגר מדדים, ואת שירות Java StatsCompanionService
, שפועל בתהליך המערכת ומקשר בין statsd ל-Java. אפשר לעדכן את המודול הזה, כלומר הוא יכול לקבל עדכונים לפונקציונליות (כמו עדכונים למדדים שמשמשים לאיסוף נתונים) מחוץ למחזור ההפצה הרגיל של Android.
גבול המודול
Statsd הוא נקודת המגע העיקרית בין הפלטפורמה לבין איסוף הנתונים של בטיחות ההשקה. המודול של הנתונים הסטטיסטיים כולל את הקוד הבא.
statsd
, שנמצאת ב-frameworks/base/cmds/statsd
StatsCompanionService
, שנמצאת ב-frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
קבוצת משנה של מבני ה-protobuf של הפלטפורמה, שנמצאים בעיקר ב-
frameworks/base/core/proto
כשירות נייטיב, הנתונים הסטטיסטיים יכולים להמשיך לפעול מחוץ ל-framework ולזהות קריסות ב-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 (com.android.os.statsd
) נמצא בפורמט APEX והוא זמין במכשירים עם Android מגרסה 11 ואילך.
יחסי תלות בין מודולים
המודול Statsd מציג קבוצה של ממשקי API מסוג @hide
לתיעוד אירועים מהמערכת. בקוד Java, רוב ממשקי ה-API של @hide
עוברים עיבוד מחדש כדי שיבנו על קבוצה קטנה יותר של שיטות מתויגות של @SystemApi
, עם קצת קוד דבק שנוצר מראש. כשמדובר בקוד נייטיב, הפונקציות המקוריות הקיימות הופכות לממשקי API רשמיים של VNDK C עם דבק.
התאמה אישית
המודול 'נתונים סטטיסטיים' לא תומך בהתאמה אישית.
בדיקה
חבילה לבדיקות תאימות (CTS) של Android מאמתת את הפונקציונליות של statsd ואת האטומים שעליהם מבוסס ניהול הגרסאות.