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/libstats
→packages/modules/StatsD/lib/libstats
system/core/libstats/socket
→packages/modules/StatsD/lib/libstatssocket
system/core/libstats/pull
→packages/modules/StatsD/lib/libstatspull
frameworks/base/cmds/StatsD
→packages/modules/StatsD/bin
frameworks/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-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 और उन ऐटम की सुविधाओं की पुष्टि करता है जिन पर रिलीज़ मैनेजमेंट निर्भर करता है.