נתונים סטטיסטיים

המודול 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/libstatspackages/modules/StatsD/lib/libstats
    • system/core/libstats/socketpackages/modules/StatsD/lib/libstatssocket
    • system/core/libstats/pullpackages/modules/StatsD/lib/libstatspull
  • frameworks/base/cmds/StatsDpackages/modules/StatsD/bin
  • frameworks/base/apex/StatsD
    • העתקת הרמה העליונה כפי שהיא
    • העברת jni אל framework/jni
    • העברת הקבצים ברמה העליונה לספריית /apex
      • frameworks/base/apex/StatsD/\*packages/modules/StatsD/apex/\*
      • frameworks/base/apex/StatsD/jnipackages/modules/StatsD/apex/framework/jni
  • cts/hostsidetests/StatsDpackages/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 ואת האטומים שעליהם מבוסס ניהול הגרסאות.