खास जानकारी

ProfilingManager एपीआई की मदद से, असली उपयोगकर्ता की परफ़ॉर्मेंस प्रोफ़ाइलें इकट्ठा की जा सकती हैं. जैसे, Android 15 (एपीआई लेवल 35) और इसके बाद के वर्शन वाले प्रोडक्शन डिवाइसों से सिस्टम ट्रेस और Java हीप डंप. यह प्रोफ़ाइल इकट्ठा करने के दो तरीके उपलब्ध कराता है: ऐप्लिकेशन से कंट्रोल की जाने वाली प्रोफ़ाइलें: इनमें आपका ऐप्लिकेशन, प्रोफ़ाइल इकट्ठा करने की प्रोसेस को शुरू से लेकर खत्म होने तक कंट्रोल करता है (Android 15 और इसके बाद के वर्शन पर). ट्रिगर पर आधारित प्रोफ़ाइलें: इनमें सिस्टम, उन इवेंट के जवाब में कैप्चर को मैनेज करता है जिनमें आपने Android 16 (एपीआई लेवल 36) और इसके बाद के वर्शन पर दिलचस्पी दिखाई है.

इस गाइड में ये विषय शामिल हैं:

इस्तेमाल की जा सकने वाली प्रोफ़ाइल के टाइप

ProfilingManager में कई तरह की प्रोफ़ाइलें इकट्ठा की जा सकती हैं, ताकि आप अपने ऐप्लिकेशन में परफ़ॉर्मेंस से जुड़ी खास समस्याओं को टारगेट कर सकें. प्लैटफ़ॉर्म एपीआई या AndroidX Core बिल्डर का इस्तेमाल करके, सीधे तौर पर अनुरोधों को कॉन्फ़िगर किया जा सकता है:

  • सिस्टम ट्रेस: इन्हें PROFILING_TYPE_SYSTEM_TRACE या SystemTraceRequestBuilder का इस्तेमाल करके कैप्चर किया जाता है.
    • यह जैंक का पता लगाने, इंतज़ार के समय का विश्लेषण करने, और सामान्य परफ़ॉर्मेंस को डीबग करने के लिए मददगार है.
  • Java के हीप डंप: इन्हें PROFILING_TYPE_JAVA_HEAP_DUMP या JavaHeapDumpRequestBuilder का इस्तेमाल करके कैप्चर किया जाता है.
    • यह आपके ऐप्लिकेशन के Java हीप ऑब्जेक्ट ग्राफ़ और साइज़ का स्नैपशॉट कैप्चर करता है, ताकि मेमोरी लीक का पता लगाया जा सके और मेमोरी को ऑप्टिमाइज़ किया जा सके.
  • हीप प्रोफ़ाइलें: इन्हें PROFILING_TYPE_HEAP_PROFILE या HeapProfileRequestBuilder का इस्तेमाल करके कैप्चर किया जाता है.
    • यह समय के साथ नेटिव (या वैकल्पिक तौर पर Java) मेमोरी के बंटवारे को ट्रैक करता है, ताकि मेमोरी के इस्तेमाल को ऑप्टिमाइज़ करने में मदद मिल सके.
  • स्टैक सैंपलिंग: इसे PROFILING_TYPE_STACK_SAMPLING या StackSamplingRequestBuilder का इस्तेमाल करके कैप्चर किया जाता है.
    • यह थ्रेड कॉल स्टैक के सैंपल इकट्ठा करता है, ताकि आपको कोड एक्ज़ीक्यूशन को समझने और सीपीयू के इस्तेमाल का विश्लेषण करने में मदद मिल सके.

ProfilingManager को एआई एजेंट के साथ इंटिग्रेट करना

अपने ऐप्लिकेशन में ProfilingManager को इंटिग्रेट करने के लिए, एआई कोडिंग एजेंट का इस्तेमाल किया जा सकता है. उदाहरण के लिए, ऐप्लिकेशन काम नहीं कर रहा है (एएनआर) ट्रिगर कलेक्शन को सेट अप करने के लिए, अपने एआई कोडिंग एजेंट में यह प्रॉम्प्ट चलाएं. इसमें </path/to/codebase> को अपने ऐप्लिकेशन के पाथ से बदलें:

Read https://developer.android.com/topic/performance/tracing/profiling-manager/trigger-based-capture
and https://developer.android.com/topic/performance/tracing/profiling-manager/upload-worker
and integrate ProfilingManager ANR trigger collection (TRIGGER_TYPE_ANR) into my
app at </path/to/codebase>, including registering the result listener after app
startup completes and scheduling a WorkManager upload job when a profile is
received.

इस प्रॉम्प्ट का इस्तेमाल करके, अन्य सिस्टम ट्रिगर सेट अप किए जा सकते हैं. जैसे, TRIGGER_TYPE_OOM. इसके अलावा, ऐप्लिकेशन-ड्रिवन प्रोफ़ाइलिंग गाइड का इस्तेमाल करके, ऐप्लिकेशन-ड्रिवन प्रोफ़ाइल कैप्चर को कॉन्फ़िगर किया जा सकता है. इंटिग्रेट करने के बाद, लोकल प्रोफ़ाइलिंग के लिए डीबग कमांड का इस्तेमाल करके, अपने सेटअप को स्थानीय तौर पर टेस्ट करें. साथ ही, एआई एजेंट की मदद से, इकट्ठा की गई प्रोफ़ाइलों का विश्लेषण करें.