Statsd

Statsd मॉड्यूल में statsd शामिल होता है. यह एक नेटिव सेवा है, जो बैकग्राउंड में चलती है और मेट्रिक इकट्ठा करती है. इसमें Java सेवा StatsCompanionService भी शामिल होती है, जो सिस्टम प्रोसेस में चलती है और statsd और Java के बीच पुल का काम करती है. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि इसे Android की रिलीज़ के सामान्य साइकल के बाहर, फ़ंक्शन से जुड़े अपडेट मिल सकते हैं. जैसे, डेटा कलेक्शन में इस्तेमाल की गई मेट्रिक के अपडेट.

मॉड्यूल की सीमा

Statsd, प्लैटफ़ॉर्म और लॉन्च-सेफ़्टी डेटा कलेक्शन के बीच मुख्य टचपॉइंट है. statsd मॉड्यूल में यह कोड शामिल होता है.

  • frameworks/base/cmds/statsd में मौजूद statsd

  • StatsCompanionService, जो frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java में मौजूद है

  • प्लैटफ़ॉर्म के प्रोटोटाइप स्ट्रक्चर का सबसेट, जो मुख्य रूप से frameworks/base/core/proto में मौजूद है

नेटिव सेवा होने की वजह से, statsd फ़्रेमवर्क के बंद होने के बाद भी काम करता रहता है. साथ ही, यह 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 में मौजूद फ़ाइलों का इतिहास सुरक्षित रखा जाना चाहिए.

मॉड्यूल का फ़ॉर्मैट

statsd मॉड्यूल (com.android.os.statsd), APEX फ़ॉर्मैट में है. यह Android 11 या उसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए उपलब्ध है.

मॉड्यूल डिपेंडेंसी

Statsd मॉड्यूल, सिस्टम से इवेंट लॉग करने के लिए @hide एपीआई का एक सेट उपलब्ध कराता है. Java कोड के लिए, ज़्यादातर @hide एपीआई को फिर से फ़ैक्टर किया जाता है, ताकि उन्हें @SystemApi टैग किए गए तरीकों के छोटे सेट पर बनाया जा सके. साथ ही, कुछ छोटे जनरेट किए गए ग्लू कोड को शामिल किया जा सके. नेटिव कोड के लिए, मौजूदा नेटिव फ़ंक्शन को आधिकारिक VNDK C API में बदला गया है. साथ ही, जनरेट किया गया ग्लू भी शामिल किया गया है.

पसंद के मुताबिक बनाएं

Statsd मॉड्यूल को पसंद के मुताबिक नहीं बनाया जा सकता.

टेस्ट करना

Android Compatibility Test Suite (CTS), statsD और उन ऐटम की सुविधाओं की पुष्टि करता है जिन पर रिलीज़ मैनेजमेंट निर्भर करता है.