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 और उन एटम की जांच करता है जिन पर रिलीज़ मैनेजमेंट निर्भर करता है.