परफ़ॉर्मेंस के आधार पर लेवल अप करने के बारे में गाइड
परफ़ॉर्मेंस स्पॉटलाइट वीक के चौथे दिन आपका स्वागत है. हमने हाल ही में कुछ बेहतरीन टूल और सबसे सही तरीके लॉन्च किए हैं. जैसे, R8 ऑप्टिमाइज़र, बेसलाइन प्रोफ़ाइल और स्टार्टअप प्रोफ़ाइल के साथ प्रोफ़ाइल गाइडेड ऑप्टिमाइज़ेशन. अब आपके मन में यह सवाल उठ रहा होगा कि परफ़ॉर्मेंस को बेहतर बनाने के लिए, कहां से शुरुआत की जाए.
हमने परफ़ॉर्मेंस लेवलिंग के बारे में चरण-दर-चरण जानकारी देने वाली गाइड तैयार की है. इससे आपकी मोबाइल डेवलपमेंट टीम को मदद मिलेगी. चाहे आपके पास सिर्फ़ एक डेवलपर वाला ऐप्लिकेशन हो और आपको परफ़ॉर्मेंस से जुड़ी जानकारी चाहिए हो या आपके पास Android की परफ़ॉर्मेंस को बेहतर बनाने के लिए पूरी टीम हो, यह गाइड आपके लिए मददगार साबित होगी.
परफ़ॉर्मेंस लेवलिंग गाइड में पांच लेवल होते हैं. हम लेवल 1 से शुरुआत करेंगे. इसमें परफ़ॉर्मेंस टूल को कम से कम इस्तेमाल करने के बारे में बताया गया है. इसके बाद, हम लेवल 5 तक जाएंगे. यह उन ऐप्लिकेशन के लिए सबसे सही है जिनके पास परफ़ॉर्मेंस फ़्रेमवर्क को बनाए रखने के लिए संसाधन हैं.
उस लेवल को एक्सप्लोर करें जो आपके लिए सबसे सही है:
लेवल 1: Play Console में उपलब्ध फ़ील्ड मॉनिटरिंग का इस्तेमाल करें
हमारा सुझाव है कि Play Console में Android की ज़रूरी जानकारी का इस्तेमाल करके, फ़ील्ड मॉनिटरिंग का अपने-आप इकट्ठा हुआ डेटा देखें. इससे आपको अपने ऐप्लिकेशन के बारे में कम मेहनत में अहम जानकारी मिल सकती है.
Android की ज़रूरी जानकारी, Google की एक पहल है. इसके तहत, इस फ़ील्ड का डेटा आपके लिए अपने-आप इकट्ठा किया जाता है और दिखाया जाता है.
हम यह डेटा कैसे उपलब्ध कराते हैं, इस बारे में यहां बताया गया है:
- डेटा इकट्ठा करना: जब कोई उपयोगकर्ता इस सुविधा के लिए ऑप्ट-इन करता है, तो उसके Android डिवाइस पर सभी ऐप्लिकेशन के परफ़ॉर्मेंस और स्थिरता से जुड़े मुख्य इवेंट अपने-आप लॉग हो जाते हैं. इनमें आपका ऐप्लिकेशन भी शामिल होता है.
- एग्रीगेट किया गया डेटा: Google Play, आपके ऐप्लिकेशन के उपयोगकर्ताओं से यह डेटा इकट्ठा करता है और इसमें मौजूद पहचान छिपाने वाली जानकारी हटा देता है.
- अहम जानकारी पाना: यह डेटा, आपको Google Play Console में Android की ज़रूरी जानकारी वाले डैशबोर्ड में दिखाया जाता है.
'Android की ज़रूरी जानकारी' वाला डैशबोर्ड कई मेट्रिक ट्रैक करता है. हालांकि, कुछ मेट्रिक को ज़रूरी जानकारी के तौर पर तय किया गया है. ये सबसे अहम मेट्रिक हैं, क्योंकि इनसे Google Play Store पर आपके ऐप्लिकेशन के दिखने और उसकी रैंकिंग पर असर पड़ सकता है.
वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी
Google Play की तकनीकी क्वालिटी से जुड़े मुख्य मेट्रिक Google Play पर अपने ऐप्लिकेशन को ज़्यादा से ज़्यादा लोगों को दिखाने के लिए, इन मेट्रिक के लिए ऐप्लिकेशन की खराब परफ़ॉर्मेंस के थ्रेशोल्ड से नीचे रखें. | |
| यूज़र-पर्सीव्ड क्रैश रेट | हर दिन के ऐसे सक्रिय उपयोगकर्ताओं का प्रतिशत जिन्होंने कम से कम एक बार ऐप्लिकेशन क्रैश होने की ऐसी गड़बड़ी का सामना किया जिसके बारे में उन्हें पता चला |
| यूज़र-पर्सीव्ड ANR रेट | हर दिन के ऐसे सक्रिय उपयोगकर्ताओं का प्रतिशत जिन्होंने कम से कम एक बार ऐसी ANR की गड़बड़ी का सामना किया जिसके बारे में उन्हें पता चला |
| ज़्यादा बैटरी खर्च हुई | वॉच फ़ेस के ऐसे सेशन का प्रतिशत जिसमें बैटरी खर्च, हर घंटे 4.44% से ज़्यादा हुई |
| नई मेट्रिक: पार्शियल वेक लॉक का ज़्यादा इस्तेमाल हुआ | उन उपयोगकर्ता सेशन का प्रतिशत जिनमें कुल मिलाकर, दो घंटे से ज़्यादा समय तक वेक लॉक का इस्तेमाल किया गया. हालांकि, इसमें वेक लॉक के इस्तेमाल से जुड़ी पाबंदी से छूट पाने वाले सेशन शामिल नहीं हैं |
कोर वाइटल में, उपयोगकर्ता के हिसाब से क्रैश रेट, एएनआर रेट, बैटरी का ज़्यादा इस्तेमाल, और हाल ही में पेश की गई मेट्रिक शामिल है. यह मेट्रिक, डिवाइस के चालू रहने पर स्क्रीन बंद होने की स्थिति में बैटरी के ज़्यादा इस्तेमाल से जुड़ी है.
यूज़र-पर्सीव्ड एएनआर रेट
Android की ज़रूरी जानकारी वाले एएनआर डैशबोर्ड का इस्तेमाल करके, फ़ील्ड में होने वाली समस्याओं के स्टैक ट्रेस देखे जा सकते हैं. साथ ही, समस्या को ठीक करने के बारे में अहम जानकारी और सुझाव पाए जा सकते हैं.
किसी खास एएनआर के बारे में ज़्यादा जानकारी देखी जा सकती है. इससे स्टैक ट्रेस के साथ-साथ, समस्या की वजह के बारे में अहम जानकारी भी मिलती है.
साथ ही, एएनआर से जुड़े हमारे दिशा-निर्देश देखें. इससे आपको एएनआर की समस्या का पता लगाने और उसे ठीक करने में मदद मिलेगी.
यूज़र-पर्सीव्ड क्रैश रेट
क्रैश की गड़बड़ियों को डीबग करने के लिए, Android की ज़रूरी जानकारी वाला क्रैश डैशबोर्ड का इस्तेमाल करें. साथ ही, अपने ऐप्लिकेशन में होने वाले स्टैक ट्रेस का सैंपल देखें.
हमारे दस्तावेज़ में, क्रैश से जुड़ी समस्याओं को हल करने के बारे में भी जानकारी दी गई है. उदाहरण के लिए, फ़ोरग्राउंड सेवाओं से जुड़ी समस्या हल करने की गाइड में, क्रैश होने की सामान्य स्थितियों का पता लगाने और उन्हें ठीक करने के तरीकों के बारे में बताया गया है.
ज़्यादा बैटरी खर्च हुई
Wear OS पर, वॉच फ़ेस के ऐसे सेशन की संख्या कम करने के लिए जिनमें बैटरी ज़्यादा खर्च होती है, बैटरी की परफ़ॉर्मेंस बेहतर बनाने और बैटरी बचाने के तरीके के बारे में Wear गाइड देखें.
[नई सुविधा] पार्शियल वेक लॉक का ज़्यादा इस्तेमाल
हमने हाल ही में यह एलान किया था कि पार्शियल वेक लॉक के ज़्यादा इस्तेमाल के थ्रेशोल्ड को पार करने वाले ऐप्लिकेशन के लिए, 1 मार्च, 2026 से अतिरिक्त कार्रवाई की जा सकती है.
मोबाइल डिवाइसों के लिए, Android vitals मेट्रिक उन वेक लॉक पर लागू होती है जिन्हें स्क्रीन बंद होने पर हासिल किया गया हो. साथ ही, ऐप्लिकेशन बैकग्राउंड में चल रहा हो या फ़ोरग्राउंड सेवा चला रहा हो. अगर 24 घंटे की अवधि में वेक लॉक कम से कम दो घंटे तक चालू रहते हैं और इससे आपके ऐप्लिकेशन के 5% से ज़्यादा सेशन पर असर पड़ता है, तो Android की ज़रूरी जानकारी के मुताबिक, वेक लॉक का इस्तेमाल बहुत ज़्यादा माना जाता है. यह औसत 28 दिनों के हिसाब से निकाला जाता है.
वेक लॉक की ज़्यादा समस्याओं को डीबग करने और ठीक करने के लिए, हमारी तकनीकी ब्लॉग पोस्ट देखें.
हमारे Android की ज़रूरी जानकारी वाले दस्तावेज़ देखें और Android की ज़रूरी जानकारी का बेहतर तरीके से इस्तेमाल करना जारी रखें.
लेवल 2: ऐप्लिकेशन की परफ़ॉर्मेंस के स्कोर से जुड़े ऐक्शन आइटम को पूरा करना
इसके बाद, ऐप्लिकेशन परफ़ॉर्मेंस स्कोर का इस्तेमाल करके, ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने के लिए, ज़्यादा फ़ायदे वाले ऐक्शन आइटम ढूंढें.
Android ऐप्लिकेशन परफ़ॉर्मेंस स्कोर, आपके ऐप्लिकेशन की तकनीकी परफ़ॉर्मेंस को मेज़र करने का एक स्टैंडर्ड फ़्रेमवर्क है. इससे आपको 0 से 100 के बीच स्कोर मिलता है. कम स्कोर का मतलब है कि सुधार की गुंजाइश ज़्यादा है.
आसानी से जीत हासिल करने के लिए, आपको सबसे पहले स्टैटिक परफ़ॉर्मेंस स्कोर से शुरुआत करनी चाहिए. ये अक्सर कॉन्फ़िगरेशन में बदलाव या टूलिंग अपडेट होते हैं, जिनसे परफ़ॉर्मेंस में काफ़ी सुधार होता है.
पहला चरण: स्टैटिक असेसमेंट करना
स्टैटिक असेसमेंट से, आपके प्रोजेक्ट के कॉन्फ़िगरेशन और टूल के इस्तेमाल का आकलन किया जाता है. आम तौर पर, परफ़ॉर्मेंस को बेहतर बनाने के लिए ये सबसे तेज़ तरीके होते हैं.
स्कोरबोर्ड पेज के स्टैटिक स्कोर सेक्शन पर जाएं और यह तरीका अपनाएं:
- Android Gradle प्लगिन (AGP) के वर्शन का आकलन करें.
- ऐप्लिकेशन के कोड को छोटा करने और उसे ऑप्टिमाइज़ करने के लिए, R8 की मदद से कोड छोटा करने की सुविधा को धीरे-धीरे लागू करें. इसके अलावा, R8 को फ़ुल मोड में इस्तेमाल करें.
- बेसलाइन प्रोफ़ाइलें इस्तेमाल करें. इससे पहली बार लॉन्च करने पर, कोड के एक्ज़ीक्यूट होने की स्पीड बेहतर होती है. साथ ही, ऐप्लिकेशन के हर नए इंस्टॉल और हर अपडेट के लिए, परफ़ॉर्मेंस बेहतर होती है.
- Dex लेआउट को बेहतर बनाने के लिए, स्टार्टअप प्रोफ़ाइल का इस्तेमाल करें. स्टार्टअप प्रोफ़ाइलों का इस्तेमाल, बिल्ड सिस्टम करता है. इससे, वह क्लास और तरीकों को और बेहतर तरीके से ऑप्टिमाइज़ कर पाता है. इसके लिए, वह आपके APK की DEX फ़ाइलों में कोड के लेआउट को बेहतर बनाता है.
- Jetpack Compose के नए वर्शन में अपग्रेड करना
दूसरा चरण: डाइनैमिक असेसमेंट करना
स्टैटिक ईज़ी विन लागू करने के बाद, डाइनैमिक असेसमेंट का इस्तेमाल करके, किसी असली डिवाइस पर किए गए सुधारों की पुष्टि करें. इसके लिए, सबसे पहले किसी फ़िज़िकल डिवाइस और स्टॉप वॉच का इस्तेमाल करके, मैन्युअल तरीके से यह काम करें.
स्कोरबोर्ड पेज के डाइनैमिक स्कोर सेक्शन पर जाएं और ये काम करें:
- किसी फ़िज़िकल डिवाइस की मदद से, टेस्ट एनवायरमेंट सेट अप करें. परफ़ॉर्मेंस से जुड़ी समस्याओं को ज़्यादा दिखाने के लिए, कम कॉन्फ़िगरेशन वाले डिवाइस का इस्तेमाल करें. इससे समस्याओं को आसानी से पहचाना जा सकता है.
- लॉन्चर से स्टार्टअप समय मेज़र करें. लॉन्चर आइकॉन से अपने ऐप्लिकेशन को कोल्ड स्टार्ट करें. इसके बाद, इंटरैक्टिव होने तक का समय मेज़र करें.
- सूचना से ऐप्लिकेशन के शुरू होने में लगने वाले समय को मेज़र करें. इसका मकसद, सूचना से ऐप्लिकेशन के शुरू होने में लगने वाले समय को कुछ सेकंड से कम करना है.
- अपनी मुख्य स्क्रीन और ऐनिमेशन पर स्क्रोल करके, रेंडरिंग की परफ़ॉर्मेंस मेज़र करें.
इन चरणों को पूरा करने के बाद, आपको स्टैटिक और डाइनैमिक स्कोर के लिए 1 से 100 के बीच का स्कोर मिलेगा. इससे आपको अपने ऐप्लिकेशन की परफ़ॉर्मेंस के बारे में पता चलेगा. साथ ही, यह भी पता चलेगा कि आपको किस पर ध्यान देना है.
तीसरा लेवल: स्थानीय परफ़ॉर्मेंस टेस्ट फ़्रेमवर्क का फ़ायदा उठाना
डाइनैमिक परफ़ॉर्मेंस का आकलन शुरू करने के बाद, आपको मैन्युअल तरीके से परफ़ॉर्मेंस मेज़र करना मुश्किल लग सकता है. परफ़ॉर्मेंस टेस्ट फ़्रेमवर्क, जैसे कि Macrobenchmarks और UiAutomator का इस्तेमाल करके, परफ़ॉर्मेंस टेस्टिंग को ऑटोमेट करने पर विचार करें.
Macrobenchmark 💚 UiAutomator
Macrobenchmark और UiAutomator को एक साथ काम करने वाले दो टूल के तौर पर देखें: Macrobenchmark, मेज़रमेंट टूल है. यह स्टॉपवॉच और फ़्रेम-रेट काउंटर की तरह होता है, जो आपके ऐप्लिकेशन के बाहर काम करता है. यह आपके ऐप्लिकेशन को शुरू करने, मेट्रिक रिकॉर्ड करने (जैसे, स्टार्टअप का समय या ड्रॉप किए गए फ़्रेम) और ऐप्लिकेशन को बंद करने के लिए ज़िम्मेदार होता है. UiAutomator, रोबोट उपयोगकर्ता होता है. इस लाइब्रेरी की मदद से, डिवाइस की स्क्रीन के साथ इंटरैक्ट करने के लिए कोड लिखा जा सकता है. यह किसी आइकॉन को ढूंढ सकता है, किसी बटन पर टैप कर सकता है, किसी सूची को स्क्रोल कर सकता है वगैरह.
टेस्ट लिखने का तरीका
टेस्ट लिखते समय, आप अपने UiAutomator कोड को Macrobenchmark ब्लॉक में रैप करते हैं.
- टेस्ट तय करना:
@MacrobenchmarkRuleका इस्तेमाल करें - मेज़रमेंट शुरू करें: कॉल
benchmarkRule.measureRepeated. - यूज़र इंटरफ़ेस (यूआई) को ड्राइव करें: उस ब्लॉक में, UiAutomator कोड का इस्तेमाल करके अपना ऐप्लिकेशन लॉन्च करें, यूज़र इंटरफ़ेस (यूआई) एलिमेंट ढूंढें, और उनसे इंटरैक्ट करें.
स्क्रोलिंग जैंक की समस्या के लिए, कंपोज़ लिस्ट को टेस्ट करने का उदाहरण यहां दिया गया है.
benchmarkRule.measureRepeated(
// ...
metrics = listOf(
FrameTimingMetric(),
),
startupMode = StartupMode.COLD,
iterations = 10,
) {
// 1. Launch the app's main activity
startApp()
// 2. Find the list using its resource ID and scroll down
onElement { viewIdResourceName == "$packageName.my_list" }
.fling(Direction.DOWN)
}4. नतीजों की समीक्षा करें: हर टेस्ट रन से आपको सटीक जानकारी मिलती है. इससे आपको अपने ऐप्लिकेशन की परफ़ॉर्मेंस के बारे में सबसे अच्छा डेटा मिलता है.
timeToInitialDisplayMs min 1894.4, median 2847.4, max 3355.6 frameOverrunMs P50 -3.2, P90 6.2, P95 10.4, P99 119.5
इस्तेमाल के सामान्य उदाहरण
मैक्रोबेंचमार्क में, डिफ़ॉल्ट रूप से कई मुख्य मेट्रिक उपलब्ध होती हैं. StartupTimingMetric की मदद से, ऐप्लिकेशन के चालू होने की प्रोसेस को सटीक तरीके से मेज़र किया जा सकता है. FrameTimingMetric की मदद से, टेस्ट के दौरान किसी ऐप्लिकेशन की रेंडरिंग परफ़ॉर्मेंस को समझा जा सकता है.
मैक्रोबेंचमार्क और UiAutomator को इस्तेमाल करने के बारे में पूरी जानकारी देने वाली गाइड उपलब्ध है. साथ ही, कोड सैंपल भी उपलब्ध हैं, ताकि आप इनके बारे में ज़्यादा जान सकें.
चौथा लेवल: Perfetto जैसे ट्रेस विश्लेषण टूल का इस्तेमाल करें
जब आपको अपने ऐप्लिकेशन कोड से आगे की जानकारी देखनी होती है, तब Perfetto जैसे ट्रेस विश्लेषण टूल का इस्तेमाल किया जाता है. स्टैंडर्ड डीबगर या प्रोफ़ाइलर सिर्फ़ आपकी प्रोसेस देखते हैं. इसके उलट, Perfetto पूरे डिवाइस की स्थिति को कैप्चर करता है. जैसे, कर्नल शेड्यूलिंग, सीपीयू फ़्रीक्वेंसी, अन्य प्रोसेस, और सिस्टम सेवाएं. इससे आपको परफ़ॉर्मेंस से जुड़ी समस्याओं के बारे में पूरी जानकारी मिलती है.
सिस्टम ट्रेस, Android Studio Profiler, और Perfetto का इस्तेमाल करके परफ़ॉर्मेंस डीबग करने के बारे में वीडियो में दिए गए निर्देशों के लिए, हमारी परफ़ॉर्मेंस डीबग करने से जुड़ी YouTube प्लेलिस्ट देखें.
परफ़ॉर्मेंस को डीबग करने के लिए, Perfetto का इस्तेमाल कैसे करें
ट्रेस विश्लेषण टूल का इस्तेमाल करके, परफ़ॉर्मेंस को डीबग करने का सामान्य वर्कफ़्लो यह है: ट्रेस को रिकॉर्ड करना, लोड करना, और उसका विश्लेषण करना.
पहला चरण: ट्रेस रिकॉर्ड करना
सिस्टम ट्रेस को कई तरीकों से रिकॉर्ड किया जा सकता है:
- डिवाइस पर, डेवलपर विकल्पों से सीधे तौर पर मैन्युअल तरीके से ट्रेस रिकॉर्ड करना.
- Android Studio CPU Profiler का इस्तेमाल करके
- Perfetto यूज़र इंटरफ़ेस का इस्तेमाल करना
दूसरा चरण: ट्रेस लोड करना
ट्रेस फ़ाइल मिलने के बाद, आपको इसे विश्लेषण टूल में लोड करना होगा.
- Chrome खोलें और ui.perfetto.dev पर जाएं.
- अपनी
.perfetto-trace(या.pftrace) फ़ाइल को सीधे ब्राउज़र विंडो में खींचें और छोड़ें. - यूज़र इंटरफ़ेस (यूआई), फ़ाइल को प्रोसेस करेगा और टाइमलाइन दिखाएगा.
तीसरा चरण: ट्रेस का विश्लेषण करना
परफ़ॉर्मेंस से जुड़ी समस्याओं की जांच करने के लिए, Perfetto यूज़र इंटरफ़ेस (यूआई) या Android Studio Profiler का इस्तेमाल किया जा सकता है. परफ़ॉर्मेंस से जुड़ी MAD Skills सीरीज़ का यह एपिसोड देखें. इसमें हमारी परफ़ॉर्मेंस इंजीनियर कार्मेन जैक्सन, Perfetto traceviewer के बारे में बताती हैं.
Perfetto का इस्तेमाल करके सिस्टम ट्रेस की जांच करने के अलग-अलग तरीके
Perfetto एक एक्सपर्ट टूल है. यह Android डिवाइस पर हुई हर गतिविधि की जानकारी दे सकता है. यह जानकारी, ट्रेस कैप्चर करने के दौरान की होती है. यह खास तौर पर तब मददगार होता है, जब स्टैंडर्ड लॉग या बुनियादी प्रोफ़ाइलर का इस्तेमाल करके, परफ़ॉर्मेंस में गिरावट की मुख्य वजह का पता नहीं लगाया जा सकता.
जंक (ड्रॉप किए गए फ़्रेम) को डीबग करना
अगर स्क्रोल करते समय आपका ऐप्लिकेशन अटकता है, तो Perfetto आपको यह दिखा सकता है कि कोई खास फ़्रेम अपनी समयसीमा क्यों पूरी नहीं कर सका.
अगर ऐसा ऐप्लिकेशन की वजह से हो रहा है, तो आपको दिख सकता है कि आपकी मुख्य थ्रेड लंबे समय तक चल रही है और पार्सिंग का काम कर रही है. इससे उन स्थितियों का पता चलता है जहां आपको काम को एसिंक्रोनस प्रोसेसिंग में ले जाना चाहिए.
अगर सिस्टम की वजह से ऐसा हो रहा है, तो हो सकता है कि आपको अपनी मुख्य थ्रेड चलने के लिए तैयार दिखे. हालांकि, सीपीयू कर्नल शेड्यूलर ने किसी दूसरी सिस्टम सर्विस को प्राथमिकता दी हो. इस वजह से, आपका ऐप्लिकेशन इंतज़ार कर रहा हो (सीपीयू कंटेंशन). इससे उन स्थितियों के बारे में पता चलता है जिनमें आपको प्लैटफ़ॉर्म एपीआई के इस्तेमाल को ऑप्टिमाइज़ करने की ज़रूरत पड़ सकती है.
ऐप्लिकेशन के शुरू होने में ज़्यादा समय लगने की समस्या का विश्लेषण करना
स्टार्टअप एक जटिल प्रोसेस है. इसमें सिस्टम को शुरू करना, प्रोसेस फ़ोर्क करना, और संसाधन लोड करना शामिल है. Perfetto इस टाइमलाइन को सटीक तरीके से दिखाता है.
इससे यह पता चलता है कि क्या आपको बाइंडर कॉल (इंटर-प्रोसेस कम्यूनिकेशन) का इंतज़ार करना पड़ रहा है. अगर आपका onCreate सिस्टम से जवाब पाने के लिए लंबे समय तक इंतज़ार करता है PackageManager, तो Perfetto उस ब्लॉक किए गए स्टेटस को साफ़ तौर पर दिखाएगा.
यह भी देखा जा सकता है कि ऐप्लिकेशन शुरू होने के दौरान, क्या आपका ऐप्लिकेशन ज़रूरत से ज़्यादा काम कर रहा है. उदाहरण के लिए, अगर ऐप्लिकेशन को दिखाने के लिए ज़रूरी व्यू से ज़्यादा व्यू बनाए और लेआउट किए जा रहे हैं, तो आपको ट्रेस में ये कार्रवाइयां दिख सकती हैं.
बैटरी के तेज़ी से खर्च होने और सीपीयू के इस्तेमाल की जांच करना
Perfetto पूरे सिस्टम को देखता है. इसलिए, यह बैटरी की खपत करने वाली उन प्रक्रियाओं का पता लगाने के लिए सबसे सही है जो दिखती नहीं हैं.
यह पता लगाया जा सकता है कि कौनसी प्रोसेस, वेक लॉक को होल्ड कर रही हैं. इससे “डिवाइस की स्थिति” ट्रैक के तहत, डिवाइस को स्लीप मोड में जाने से रोका जा सकता है. ज़्यादा जानने के लिए, हमारी वेक लॉक से जुड़ी ब्लॉग पोस्ट पढ़ें. साथ ही, Perfetto का इस्तेमाल करके देखें कि बैकग्राउंड में चल रहे आपके टास्क बहुत ज़्यादा बार तो नहीं चल रहे हैं या सीपीयू को बेवजह तो नहीं चालू कर रहे हैं.
लेवल 5: परफ़ॉर्मेंस ट्रैकिंग का अपना फ़्रेमवर्क बनाना
आखिरी लेवल उन ऐप्लिकेशन के लिए है जिनके पास परफ़ॉर्मेंस ट्रैकिंग फ़्रेमवर्क को बनाए रखने के लिए संसाधन वाली टीमें हैं.
Android पर परफ़ॉर्मेंस ट्रैकिंग का कस्टम फ़्रेमवर्क बनाने के लिए, कई सिस्टम एपीआई का इस्तेमाल करना होता है. इससे ऐप्लिकेशन की लाइफ़साइकल के दौरान डेटा कैप्चर किया जा सकता है. जैसे, स्टार्टअप से लेकर ऐप्लिकेशन बंद होने तक और ज़्यादा लोड वाले खास मामलों के दौरान.
ApplicationStartInfo, ProfilingManager, और ApplicationExitInfo का इस्तेमाल करके, एक मज़बूत टेलीमेट्री सिस्टम बनाया जा सकता है. यह सिस्टम, आपके ऐप्लिकेशन के शुरू होने के तरीके, उसके चलने के दौरान की गई गतिविधियों की पूरी जानकारी, और उसके बंद होने की वजह के बारे में रिपोर्ट करता है.
ApplicationStartInfo: यह ट्रैक करता है कि ऐप्लिकेशन कैसे शुरू हुआ
Android 15 (एपीआई 35) से उपलब्ध, ApplicationStartInfo फ़ील्ड में ऐप्लिकेशन के स्टार्टअप के बारे में ज़्यादा जानकारी वाली मेट्रिक उपलब्ध कराता है. इस डेटा में यह जानकारी शामिल होती है कि ऐप्लिकेशन को कोल्ड, वॉर्म या हॉट स्टार्ट किया गया था या नहीं. साथ ही, इसमें स्टार्टअप के अलग-अलग चरणों की अवधि भी शामिल होती है.
इससे आपको प्रोडक्शन डेटा का इस्तेमाल करके, स्टार्टअप मेट्रिक की बेसलाइन तैयार करने में मदद मिलती है. इससे उस मेट्रिक को और ऑप्टिमाइज़ किया जा सकता है जिसे स्थानीय तौर पर फिर से बनाना मुश्किल हो सकता है. इन मेट्रिक का इस्तेमाल करके, स्टार्टअप फ़्लो को ऑप्टिमाइज़ करने के लिए A/B टेस्ट किए जा सकते हैं.
इसका मकसद, हर इनिशियलाइज़ेशन फ़ेज़ को मैन्युअल तरीके से इंस्ट्रुमेंट किए बिना, लॉन्च मेट्रिक को सटीक तरीके से रिकॉर्ड करना है.
ऐप्लिकेशन लॉन्च होने के कुछ समय बाद, इस डेटा को क्वेरी किया जा सकता है.
ProfilingManager: Capturing why it was slow
ProfilingManager (API 35) की मदद से, आपका ऐप्लिकेशन उपयोगकर्ता के डिवाइसों पर सिस्टम ट्रेस को प्रोग्राम के हिसाब से ट्रिगर कर सकता है. इससे परफ़ॉर्मेंस से जुड़ी ऐसी समस्याओं का पता लगाने में मदद मिलती है जिन्हें स्थानीय तौर पर दोहराया नहीं जा सकता.
इसका मकसद यह है कि जब किसी खास उपयोगकर्ता के सफ़र का पता चले कि वह धीरे चल रहा है या उसे परफ़ॉर्मेंस से जुड़ी समस्याएं आ रही हैं, तो ट्रेस अपने-आप रिकॉर्ड हो जाए.
आप एक लिसनर रजिस्टर कर सकते हैं जो तय की गई शर्तों के पूरा होने पर ट्रिगर होता है या परफ़ॉर्मेंस की समस्या (जैसे कि जैंक, बहुत ज़्यादा मेमोरी या तेज़ी से बैटरी खर्च होना) का पता चलने पर, इसे मैन्युअल तरीके से भी ट्रिगर कर सकते हैं.
प्रोफ़ाइल कैप्चर करने, प्रोफ़ाइलिंग डेटा को वापस पाने और उसका विश्लेषण करने, और डीबग कमांड इस्तेमाल करने के बारे में जानने के लिए, हमारा दस्तावेज़ पढ़ें.
ApplicationExitInfo: यह ट्रैक करता है कि ऐप्लिकेशन बंद क्यों हुआ
ApplicationExitInfo (एपीआई 30) से पता चलता है कि आपकी पिछली प्रोसेस क्यों बंद हुई. यह नेटिव क्रैश, एएनआर या बहुत ज़्यादा मेमोरी का इस्तेमाल (ओओएम) की वजह से सिस्टम बंद होने की समस्या का पता लगाने के लिए ज़रूरी है. एपीआई getTraceInputStream का इस्तेमाल करके, आपको स्टैक ट्रेस की ज़्यादा जानकारी भी मिल सकती है.
इस एपीआई का मकसद, स्थिरता से जुड़ी उन समस्याओं को समझना है जो स्टैंडर्ड Java क्रैश रिपोर्टर (जैसे कि कम मेमोरी की वजह से बंद होना) को ट्रिगर नहीं करती हैं.
आपको इस एपीआई को अगले ऐप्लिकेशन लॉन्च पर ट्रिगर करना चाहिए.
अगले चरण
Android की परफ़ॉर्मेंस को बेहतर बनाने के लिए, आपको इन चरणों को पूरा करना होगा. हमें यह देखने का बेसब्री से इंतज़ार रहेगा कि इन टूल का इस्तेमाल करके, आप अपने चैनल की परफ़ॉर्मेंस को किस तरह बेहतर बनाते हैं!
Android के बारे में सवाल पूछने के लिए, कल हमारे साथ जुड़ें
आपने R8 की मदद से अपने ऐप्लिकेशन का साइज़ कम कर दिया है. साथ ही, प्रोफ़ाइल गाइडेड ऑप्टिमाइज़ेशन की मदद से, रनटाइम को ऑप्टिमाइज़ कर दिया है. साथ ही, अपने ऐप्लिकेशन की परफ़ॉर्मेंस को मेज़र करें.
Android से जुड़े सवालों के जवाब पाने के लिए, कल होने वाले लाइव सेशन में शामिल हों. #AskAndroid का इस्तेमाल करके, अभी अपने सवाल पूछें और विशेषज्ञों से उनके जवाब पाएं.
-
कैसे करेंऐप्लिकेशन की परफ़ॉर्मेंस को अक्सर बेहतर यूज़र इंटरफ़ेस (यूआई) और ऐप्लिकेशन के तेज़ी से शुरू होने से जोड़कर देखा जाता है. हालांकि, मेमोरी एक ऐसा आधार है जिस पर ये मेट्रिक तैयार की जाती हैं. यह कोई छिपी हुई बात नहीं है कि अब डिवाइस की मेमोरी पहले से ज़्यादा ज़रूरी हो गई है.
Alice Yuan, Ajesh Pai, Fung Lam • पढ़ने में 10 मिनट लगेंगे -
कैसे करेंGoogle को पता है कि Android उपयोगकर्ताओं के लिए, बैटरी का ज़्यादा खर्च होना एक बड़ी समस्या है. इसलिए, Google ने डेवलपर की मदद करने के लिए कई अहम कदम उठाए हैं, ताकि वे कम बैटरी खर्च करने वाले ऐप्लिकेशन बना सकें.
Alice Yuan • 8 मिनट में पढ़ें -
कैसे करेंMedia3 1.11 उपलब्ध है. यह रिलीज़, Android के ज़्यादातर मीडिया ऐप्लिकेशन को बेहतर बनाती है. इसमें नई सुविधाएं जोड़ी गई हैं, गड़बड़ियां ठीक की गई हैं, और प्लेबैक, एडिटिंग, और यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट को बेहतर बनाया गया है.
Toni Heidenreich • तीन मिनट में पढ़ा जा सकता है
Android डेवलपमेंट से जुड़ी नई अहम जानकारी, हर हफ़्ते अपने इनबॉक्स में पाएं.