Statsd मॉड्यूल में statsd शामिल होता है. यह एक नेटिव सेवा है, जो बैकग्राउंड में चलती है और मेट्रिक इकट्ठा करती है. इसमें Java सेवा StatsCompanionService भी शामिल होती है, जो सिस्टम प्रोसेस में चलती है और statsd और Java के बीच पुल का काम करती है. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि इसे Android की रिलीज़ के सामान्य साइकल के बाहर, फ़ंक्शन से जुड़े अपडेट मिल सकते हैं. जैसे, डेटा कलेक्शन में इस्तेमाल की गई मेट्रिक के अपडेट.
मॉड्यूल की सीमा
Statsd, प्लैटफ़ॉर्म और लॉन्च-सेफ़्टी डेटा कलेक्शन के बीच मुख्य टचपॉइंट है. statsd मॉड्यूल में यह कोड शामिल होता है.
frameworks/base/cmds/statsdमें मौजूदstatsdStatsCompanionService, जो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 और उन ऐटम की सुविधाओं की पुष्टि करता है जिन पर रिलीज़ मैनेजमेंट निर्भर करता है.