बेसलाइन प्रोफ़ाइल की खास जानकारी

बेसलिन प्रोफ़ाइलें, कोड को चलाने की स्पीड को करीब 30% तक बढ़ा देती हैं. ऐसा, कोड पाथ के लिए इंटरप्रेटेशन और जस्ट-इन-टाइम (JIT) कंपाइलेशन के चरणों को छोड़कर किया जाता है.

किसी ऐप्लिकेशन या लाइब्रेरी में बेसलाइन प्रोफ़ाइल शामिल करके, Android Runtime (ART), Ahead-of-Time (AOT) कंपाइलेशन की मदद से, तय किए गए कोड पाथ को ऑप्टिमाइज़ कर सकता है. इससे हर नए उपयोगकर्ता और ऐप्लिकेशन के हर अपडेट के लिए, परफ़ॉर्मेंस को बेहतर बनाया जा सकता है. प्रोफ़ाइल गाइडेड ऑप्टिमाइज़ेशन (पीजीओ) की मदद से, ऐप्लिकेशन को स्टार्टअप के लिए ऑप्टिमाइज़ किया जा सकता है. साथ ही, इंटरैक्शन जैंक को कम किया जा सकता है. इसके अलावा, पहली बार लॉन्च करने वाले उपयोगकर्ताओं के लिए, रनटाइम की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.

परफ़ॉर्मेंस में हुए इन सुधारों से, कारोबार की मेट्रिक में सीधे तौर पर सुधार होता है. जैसे, उपयोगकर्ताओं को अपने साथ जोड़े रखना, लेन-देन, और रेटिंग. Josh, Lyft, TikTok, और Zomato की कहानियों में, कारोबार की मेट्रिक पर परफ़ॉर्मेंस के असर के बारे में ज़्यादा जानें.

बेसलाइन प्रोफ़ाइल के फ़ायदे

बेसलाइन प्रोफ़ाइल की मदद से, ऐप्लिकेशन के स्टार्टअप, स्क्रीन के बीच नेविगेट करने या कॉन्टेंट को स्क्रोल करने जैसे सभी उपयोगकर्ता इंटरैक्शन को पहली बार चलाने पर ज़्यादा आसानी से किया जा सकता है. ऐप्लिकेशन की स्पीड और रिस्पॉन्स देने की क्षमता को बढ़ाकर, बेसलाइन प्रोफ़ाइलें रोज़ के सक्रिय उपयोगकर्ताओं की संख्या बढ़ा सकती हैं. साथ ही, इससे ऐप्लिकेशन पर वापस आने वाले लोगों की औसत संख्या भी बढ़ सकती है.

बेसलाइन प्रोफ़ाइलें, ऐप्लिकेशन के स्टार्टअप के बाद ऑप्टिमाइज़ेशन में मदद करती हैं. इसके लिए, वे सामान्य उपयोगकर्ता इंटरैक्शन उपलब्ध कराती हैं. इससे ऐप्लिकेशन के पहले लॉन्च से ही, ऐप्लिकेशन के रनटाइम को बेहतर बनाया जा सकता है. गाइडेड एओटी कंपाइलेशन, उपयोगकर्ता के डिवाइसों पर निर्भर नहीं करता. इसे मोबाइल डिवाइस के बजाय, डेवलपमेंट मशीन पर हर रिलीज़ के लिए एक बार किया जा सकता है. बेसलाइन प्रोफ़ाइल के साथ रिलीज़ शिप करने से, ऐप्लिकेशन ऑप्टिमाइज़ेशन, सिर्फ़ क्लाउड प्रोफ़ाइल पर भरोसा करने की तुलना में बहुत तेज़ी से उपलब्ध हो जाते हैं.

बेसलिन प्रोफ़ाइल का इस्तेमाल न करने पर, ऐप्लिकेशन के सभी कोड को इंटरप्रेट करने के बाद, मेमोरी में JIT-कंपाइल किया जाता है. इसके अलावा, जब डिवाइस का इस्तेमाल नहीं किया जा रहा होता है, तब इसे बैकग्राउंड में odex फ़ाइल में लिखा जाता है. किसी ऐप्लिकेशन को इंस्टॉल या अपडेट करने के बाद, उपयोगकर्ताओं को पहली बार उसे चलाने पर खराब अनुभव मिलता है. ऐसा तब तक होता है, जब तक नए कोड पाथ ऑप्टिमाइज़ नहीं हो जाते. ऑप्टिमाइज़ करने के बाद, कई ऐप्लिकेशन की परफ़ॉर्मेंस में करीब 30% का सुधार देखा गया है.

स्टार्टअप प्रोफ़ाइलें

स्टार्टअप प्रोफ़ाइलें, बेसलाइन प्रोफ़ाइलों की तरह ही होती हैं. हालांकि, इनमें अंतर यह है कि इनका इस्तेमाल डिवाइस पर ऑप्टिमाइज़ेशन के बजाय, कंपाइल टाइम पर किया जाता है. स्टार्टअप प्रोफ़ाइल का इस्तेमाल, DEX फ़ाइल के लेआउट को ऑप्टिमाइज़ करने के लिए किया जाता है, ताकि स्टार्टअप के समय को बेहतर बनाया जा सके. स्टार्टअप प्रोफ़ाइल में पहचाने गए कोड को प्राइमरी classes.dex फ़ाइल में रखा जाता है. साथ ही, अन्य कोड को अलग-अलग DEX फ़ाइलों में रखा जाता है. इससे ऐप्लिकेशन के खुलने में लगने वाला समय कम हो जाता है. ऐसा इसलिए होता है, क्योंकि ऐप्लिकेशन के खुलने के दौरान पेज फ़ॉल्ट की संख्या कम हो जाती है. स्टार्टअप प्रोफ़ाइल और DEX लेआउट ऑप्टिमाइज़ेशन से, ऐप्लिकेशन के स्टार्टअप समय को कैसे बेहतर बनाया जा सकता है, इस बारे में ज़्यादा जानने के लिए, DEX लेआउट ऑप्टिमाइज़ेशन और स्टार्टअप प्रोफ़ाइल लेख पढ़ें.

शुरू करें

अपने मौजूदा ऐप्लिकेशन की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, बेसलाइन प्रोफ़ाइलें बनाएं लेख पढ़ें.

डिपेंडेंसी चेन, स्टेबल और डेवलपमेंट रिलीज़ वर्शन उपलब्ध कराती है. बेसलाइन प्रोफ़ाइल जनरेट और इंस्टॉल करने के लिए, Android Gradle प्लगइन, Macrobenchmark लाइब्रेरी, और Profile Installer के इन वर्शन या इसके बाद के वर्शन का इस्तेमाल करें. इन डिपेंडेंसी की ज़रूरत अलग-अलग समय पर होती है. ये एक साथ मिलकर टूलचेन के तौर पर काम करती हैं, ताकि ऑप्टिमल बेसलाइन प्रोफ़ाइल को चालू किया जा सके.

  • Android Gradle प्लग इन: com.android.tools.build:8.0.0
  • Macrobenchmark लाइब्रेरी: androidx.benchmark:benchmark-macro-junit4:1.4.0
  • प्रोफ़ाइल इंस्टॉलर: androidx.profileinstaller:profileinstaller:1.4.1

हमारा सुझाव है कि बेसलाइन प्रोफ़ाइलें बनाने और मैनेज करने के लिए, AGP के नए वर्शन का इस्तेमाल करें. यहां AGP के अलग-अलग वर्शन में उपलब्ध मुख्य सुविधाएं दी गई हैं:

AGP वर्शन सुविधाएं
8.4 Gradle रैपर कमांड लाइन टूल या Android Studio का इस्तेमाल करके, डीबग नहीं की जा सकने वाली बिल्ड के ऐप्लिकेशन स्थानीय तौर पर इंस्टॉल किए जाते हैं. इसलिए, आपकी लोकल रिलीज़ बिल्ड की परफ़ॉर्मेंस, प्रोडक्शन बिल्ड की परफ़ॉर्मेंस से ज़्यादा मिलती-जुलती है. इस अपडेट से, बेसलाइन प्रोफ़ाइलों की प्रोडक्शन परफ़ॉर्मेंस पर कोई असर नहीं पड़ता.
8.3
  • सोर्स सेट डायरेक्ट्री के लिए पूरी तरह से काम करता है (लाइब्रेरी मॉड्यूल): एक से ज़्यादा Baseline Profile सोर्स फ़ाइलें डिक्लेयर करें. साथ ही, src/free/generated/baselineProfiles/baseline-prof1.txt जैसे वैरिएंट के हिसाब से डायरेक्ट्री का इस्तेमाल करें. अब यह सुविधा, लाइब्रेरी मॉड्यूल के साथ-साथ ऐप्लिकेशन मॉड्यूल के लिए भी उपलब्ध है.
  • बेसलाइन प्रोफ़ाइल में डीसुगर की गई क्लास शामिल होती हैं.
8.2
  • R8 की मदद से नियमों को फिर से लिखना: D8 और R8, इंसानों के पढ़ने लायक बेसलाइन और स्टार्टअप प्रोफ़ाइल के नियमों को बदल सकते हैं. इससे, ऐप्लिकेशन की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए ज़रूरी सभी नियमों को पूरी तरह से कैप्चर किया जा सकता है. इससे, तरीकों के लिए बेसलाइन प्रोफ़ाइल कवरेज में ~30% की बढ़ोतरी होती है. साथ ही, ऐप्लिकेशन की परफ़ॉर्मेंस में ~15% की बढ़ोतरी होती है.
  • स्टार्टअप प्रोफ़ाइलें: इस नई तरह की बेसलाइन प्रोफ़ाइल को जनरेट करती हैं, ताकि DEX में कोड के लेआउट के बारे में जानकारी दी जा सके. इससे स्टार्टअप की परफ़ॉर्मेंस में ~15% की बढ़ोतरी होती है. बड़े ऐप्लिकेशन के लिए, यह बढ़ोतरी इससे भी ज़्यादा हो सकती है.
8.0 सुझाया गया कम से कम वर्शन: एक ही Gradle टास्क के साथ बेसलाइन प्रोफ़ाइलें जनरेट करने के लिए, Baseline Profile Gradle प्लगिन का इस्तेमाल करें.
  • पूरे सोर्स सेट डायरेक्ट्री के साथ काम करता है (ऐप्लिकेशन मॉड्यूल): एक से ज़्यादा बेसलाइन प्रोफ़ाइल सोर्स फ़ाइलें डिक्लेयर करें. साथ ही, src/free/generated/baselineProfiles/baseline-prof1.txt जैसे वैरिएंट के हिसाब से डायरेक्ट्री का इस्तेमाल करें.
7.4 कम से कम ज़रूरी वर्शन: ऐप्लिकेशन, लाइब्रेरी से बेसलाइन प्रोफ़ाइलें इस्तेमाल कर सकते हैं. साथ ही, src/main/baseline-prof.txt फ़ाइल में अपनी बेसलाइन प्रोफ़ाइल दे सकते हैं.
  • ऐप्लिकेशन बंडल से APK बनाते समय, बेसलाइन प्रोफ़ाइलें सही तरीके से पैकेज की जाती हैं (समस्या #230361284).
  • जिन ऐप्लिकेशन में एक से ज़्यादा .dex फ़ाइलें हैं उनके लिए, बेसलाइन प्रोफ़ाइलें, प्राइमरी .dex फ़ाइल के लिए सही तरीके से पैकेज की गई हैं.

प्रोफ़ाइल जनरेट करने का उदाहरण

यहां ऐप्लिकेशन स्टार्टअप के लिए बेसलाइन प्रोफ़ाइल बनाने वाली क्लास का उदाहरण दिया गया है. इसमें सुझाए गए Macrobenchmark लाइब्रेरी का इस्तेमाल करके, नेविगेशन और स्क्रोल करने से जुड़े कई इवेंट भी शामिल किए गए हैं:

@OptIn(ExperimentalBaselineProfilesApi::class)
class BaselineProfileGenerator {
    @get:Rule
    val baselineProfileRule = BaselineProfileRule()

    @Test
    fun appStartupAndUserJourneys() {
        baselineProfileRule.collect(packageName = PACKAGE_NAME) {
            // App startup journey.
            startActivityAndWait()

            device.findObject(By.text("COMPOSE LAZYLIST")).clickAndWait(Until.newWindow(), 1_000)
            device.findObject(By.res("myLazyColumn")).also {
                it.fling(Direction.DOWN)
                it.fling(Direction.UP)
            }
            device.pressBack()
        }
    }
}

इस कोड को पूरे कॉन्टेक्स्ट और ज़्यादा जानकारी के साथ, GitHub पर परफ़ॉर्मेंस के सैंपल में देखा जा सकता है.

अपील वाले वीडियो में क्या शामिल करना है

किसी ऐप्लिकेशन में बेसलाइन प्रोफ़ाइल का इस्तेमाल करते समय, ऐप्लिकेशन स्टार्टअप कोड और उपयोगकर्ता के सामान्य इंटरैक्शन शामिल किए जा सकते हैं. जैसे, स्क्रीन के बीच नेविगेट करना या स्क्रोल करना. रजिस्ट्रेशन, लॉगिन या पेमेंट जैसे पूरे फ़्लो भी इकट्ठा किए जा सकते हैं. आपको जिन उपयोगकर्ता जर्नी को ज़रूरी लगता है वे बेसलाइन प्रोफ़ाइल से फ़ायदा पा सकती हैं. इससे उनकी रनटाइम परफ़ॉर्मेंस बेहतर होती है.

अगर आपको परफ़ॉर्मेंस को बेहतर बनाने के लिए अलग-अलग तरीकों से एक्सपेरिमेंट करना है, तो अपने एक्सपेरिमेंट के दोनों ग्रुप के लिए बेसलाइन प्रोफ़ाइलें शामिल करें. ऐसा करने से, आपको नतीजों को समझने में आसानी होगी. साथ ही, यह पक्का किया जा सकेगा कि आपके सभी उपयोगकर्ता, कंपाइल किया गया कोड लगातार चला रहे हैं.

लाइब्रेरी, अपनी खुद की बेसलाइन प्रोफ़ाइलें उपलब्ध करा सकती हैं. साथ ही, ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने के लिए, उन्हें रिलीज़ के साथ शिप कर सकती हैं. उदाहरण के लिए, Jetpack Compose की परफ़ॉर्मेंस में, बेसलाइन प्रोफ़ाइल का इस्तेमाल करें सेक्शन देखें.

बेसलाइन प्रोफ़ाइलें कैसे काम करती हैं

अपने ऐप्लिकेशन या लाइब्रेरी को डेवलप करते समय, बेसलाइन प्रोफ़ाइलें तय करें. इससे, उपयोगकर्ता के सामान्य इंटरैक्शन को कवर किया जा सकेगा. साथ ही, रेंडरिंग में लगने वाले समय या लेटेन्सी को कम किया जा सकेगा. ये इस तरह से काम करते हैं:

  1. आपके ऐप्लिकेशन के लिए, आसानी से समझ में आने वाले प्रोफ़ाइल के नियम जनरेट किए जाते हैं. साथ ही, उन्हें ऐप्लिकेशन में बाइनरी फ़ॉर्म में कंपाइल किया जाता है. इन्हें assets/dexopt/baseline.prof में देखा जा सकता है. इसके बाद, Google Play पर एएबी को पहले की तरह अपलोड किया जा सकता है.

  2. Google Play, प्रोफ़ाइल को प्रोसेस करता है और उसे सीधे उपयोगकर्ताओं को APK के साथ भेजता है. इंस्टॉल करने के दौरान, ART प्रोफ़ाइल में मौजूद तरीकों का एओटी कंपाइलेशन करता है. इससे उन तरीकों को तेज़ी से लागू किया जा सकता है. अगर प्रोफ़ाइल में, ऐप्लिकेशन लॉन्च करने या फ़्रेम रेंडर करने के दौरान इस्तेमाल किए गए तरीके शामिल हैं, तो उपयोगकर्ता को ऐप्लिकेशन के लॉन्च होने में कम समय लग सकता है. साथ ही, उसे कम जंक का सामना करना पड़ सकता है.

  3. यह फ़्लो, क्लाउड प्रोफ़ाइल के एग्रीगेशन के साथ काम करता है, ताकि समय के साथ ऐप्लिकेशन के असल इस्तेमाल के आधार पर परफ़ॉर्मेंस को बेहतर बनाया जा सके.

पहली इमेज. इस डायग्राम में, अपलोड करने से लेकर असली उपयोगकर्ता तक डिलीवरी करने तक, बेसलाइन प्रोफ़ाइल के वर्कफ़्लो के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि यह वर्कफ़्लो, क्लाउड प्रोफ़ाइल से कैसे जुड़ा है.

क्लाउड प्रोफ़ाइलें

क्लाउड प्रोफ़ाइलें, PGO का एक और तरीका उपलब्ध कराती हैं. इन्हें Google Play Store इकट्ठा करता है और इंस्टॉल करने के समय कंपाइल करने के लिए डिस्ट्रिब्यूट करता है. ये बेसलाइन प्रोफ़ाइलों के साथ काम करती हैं.

क्लाउड प्रोफ़ाइलें, ऐप्लिकेशन के साथ उपयोगकर्ताओं के असल इंटरैक्शन के आधार पर बनाई जाती हैं. हालांकि, अपडेट के बाद इन्हें डिस्ट्रिब्यूट होने में कई घंटे से लेकर कई दिन लग जाते हैं. इससे इनकी उपलब्धता सीमित हो जाती है. जब तक प्रोफ़ाइलें पूरी तरह से डिस्ट्रिब्यूट नहीं हो जातीं, तब तक नए या अपडेट किए गए ऐप्लिकेशन का इस्तेमाल करने वाले लोगों के लिए, ऐप्लिकेशन की परफ़ॉर्मेंस अच्छी नहीं होती. इसके अलावा, Cloud Profiles सिर्फ़ Android 9 (एपीआई लेवल 28) या इसके बाद के वर्शन वाले Android डिवाइसों पर काम करती हैं. साथ ही, यह सिर्फ़ उन ऐप्लिकेशन के लिए बेहतर तरीके से काम करती हैं जिनका उपयोगकर्ता आधार काफ़ी बड़ा है.

Android के अलग-अलग वर्शन पर कंपाइल करने का तरीका

Android प्लैटफ़ॉर्म के वर्शन, ऐप्लिकेशन कंपाइल करने के अलग-अलग तरीके इस्तेमाल करते हैं. हर तरीके में, परफ़ॉर्मेंस से जुड़ा समझौता होता है. बेसलाइन प्रोफ़ाइलें, कंपाइल करने के पिछले तरीकों से बेहतर होती हैं. ऐसा इसलिए, क्योंकि ये सभी इंस्टॉल के लिए एक प्रोफ़ाइल उपलब्ध कराती हैं.

Android वर्शन कंपाइलेशन का तरीका ऑप्टिमाइज़ेशन का तरीका
5 से 6 (एपीआई लेवल 21 से 23 तक) फ़ुल एओटी पूरे ऐप्लिकेशन को इंस्टॉल करने के दौरान ऑप्टिमाइज़ किया जाता है. इस वजह से, ऐप्लिकेशन का इस्तेमाल करने के लिए ज़्यादा इंतज़ार करना पड़ता है. साथ ही, रैम और डिस्क स्पेस का इस्तेमाल बढ़ जाता है. इसके अलावा, डिस्क से कोड लोड होने में ज़्यादा समय लगता है. इससे कोल्ड स्टार्टअप में लगने वाला समय बढ़ सकता है.
7 से लेकर 8.1 (एपीआई लेवल 24 से 27 तक) पार्शियल एओटी (बेसलाइन प्रोफ़ाइल) बेसलिन प्रोफ़ाइलें, androidx.profileinstaller इंस्टॉल करता है. ऐसा पहली बार ऐप्लिकेशन चलाने पर होता है. हालांकि, ऐसा तब होता है, जब ऐप्लिकेशन मॉड्यूल इस डिपेंडेंसी को तय करता है. ART, ऐप्लिकेशन के इस्तेमाल के दौरान अतिरिक्त प्रोफ़ाइल के नियम जोड़कर, इसे और बेहतर बना सकता है. साथ ही, डिवाइस के इस्तेमाल में न होने पर उन्हें कंपाइल कर सकता है. इससे डिस्क स्पेस को ऑप्टिमाइज़ किया जाता है. साथ ही, डिस्क से कोड लोड करने में लगने वाला समय कम हो जाता है. इससे ऐप्लिकेशन के लोड होने में लगने वाला समय कम हो जाता है.
9 (एपीआई लेवल 28) और इससे ऊपर के वर्शन आंशिक एओटी (बेसलाइन + क्लाउड प्रोफ़ाइल) Play, ऐप्लिकेशन इंस्टॉल करने के दौरान बेसलाइन प्रोफ़ाइलों का इस्तेमाल करता है. इससे, APK और क्लाउड प्रोफ़ाइलों को ऑप्टिमाइज़ किया जा सकता है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब ये प्रोफ़ाइलें उपलब्ध हों. इंस्टॉल करने के बाद, ART प्रोफ़ाइलें Play पर अपलोड की जाती हैं. इसके बाद, उन्हें इकट्ठा किया जाता है. इसके बाद, जब अन्य उपयोगकर्ता ऐप्लिकेशन इंस्टॉल या अपडेट करते हैं, तो उन्हें क्लाउड प्रोफ़ाइलें के तौर पर उपलब्ध कराया जाता है.

पहले से मालूम समस्याएं

यहां कुछ समस्याएं और उनके समाधान दिए गए हैं. इसके अलावा, कुछ ऐसी समस्याएं भी दी गई हैं जिनके समाधान पर काम चल रहा है:

  • कुछ डिवाइसों पर अनुमति की सेटिंग की वजह से, बेसलाइन प्रोफ़ाइल जनरेट नहीं हो सकती. इनमें OnePlus डिवाइस भी शामिल हैं. इस समस्या को ठीक करने के लिए, डेवलपर के लिए सेटिंग और टूल में जाकर, अनुमति की निगरानी बंद करें विकल्प को बंद करें.

  • Firebase टेस्ट लैब के डिवाइसों पर, बेसलाइन प्रोफ़ाइल जनरेट करने की सुविधा काम नहीं करती. इनमें Gradle मैनेज किए गए टेस्ट लैब डिवाइस भी शामिल हैं (समस्या #285187547).

  • लाइब्रेरी के लिए बेसलाइन प्रोफ़ाइलें उपलब्ध कराने के लिए, कम से कम बेसलाइन प्रोफ़ाइल Gradle प्लगिन 1.2.3 या AGP 8.3 का इस्तेमाल करें (समस्या #313992099).

  • अगर आपने ./gradlew app:generateBaselineProfile कमांड का इस्तेमाल करके बेसलाइन प्रोफ़ाइलें जनरेट की हैं, तो टेस्ट मॉड्यूल में मौजूद बेंचमार्क भी चलेंगे. हालांकि, इनके नतीजों को खारिज कर दिया जाएगा. अगर ऐसा होता है, तो -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile के साथ कमांड चलाकर, सिर्फ़ बेसलाइन प्रोफ़ाइलें जनरेट की जा सकती हैं. इस समस्या को AGP 8.2 में ठीक कर दिया गया है.

  • सभी बिल्ड टाइप के लिए बेसलाइन प्रोफ़ाइलें जनरेट करने का निर्देश— ./gradlew app:generateBaselineProfile—सिर्फ़ रिलीज़ बिल्ड टाइप के लिए बेसलाइन प्रोफ़ाइलें जनरेट करता है. इस समस्या को AGP 8.1 में ठीक कर दिया गया है.

  • Google Play Store के अलावा, ऐप्लिकेशन डिस्ट्रिब्यूशन के अन्य चैनल, इंस्टॉल करते समय बेसलाइन प्रोफ़ाइल इस्तेमाल करने की सुविधा नहीं देते हैं. इन चैनलों से इंस्टॉल किए गए ऐप्लिकेशन के उपयोगकर्ताओं को, बैकग्राउंड में dexopt प्रोसेस पूरी होने तक फ़ायदे नहीं दिखते. इस प्रोसेस में आम तौर पर पूरी रात लगती है.

  • Play Store में संगठन के लोगों के साथ ऐप्लिकेशन शेयर करने की सुविधा, बेसलाइन प्रोफ़ाइलों के साथ काम नहीं करती. हालांकि, इंटरनल टेस्टिंग ट्रैक के साथ काम करती है.

  • Huawei जैसे कुछ डिवाइसों पर बैटरी ऑप्टिमाइज़ेशन की सुविधा चालू होने पर, प्रोफ़ाइल इंस्टॉल करने में समस्या आ सकती है. यह पक्का करने के लिए कि आपकी प्रोफ़ाइलें सही तरीके से इंस्टॉल हों, बेंचमार्क डिवाइसों में बैटरी ऑप्टिमाइज़ेशन की सुविधा बंद करें.

अन्य संसाधन