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में मौजूद हैप्लैटफ़ॉर्म के प्रोटोबफ़ स्ट्रक्चर का सबसेट, जो मुख्य रूप से
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में ले जाएं- टॉपलेवल की फ़ाइलों को
/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-prodgoog/maingoog/\*-plus-aospaosp/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 और उन ऐटम की सुविधाओं की पुष्टि करता है जिन पर रिलीज़ मैनेजमेंट निर्भर करता है.