ऐप्लिकेशन स्टैंडबाय बकेट

Android 9 (एपीआई लेवल 28) और उसके बाद के वर्शन पर, ऐप्लिकेशन स्टैंडबाय मोड की सुविधा काम करती है. ऐप्लिकेशन स्टैंडबाय बकेट, सिस्टम को यह प्राथमिकता देने में मदद करती है कि इसके आधार पर, संसाधनों के लिए किए गए अनुरोध हाल ही में और उनका इस्तेमाल कितनी बार किया जाता है. ऐप्लिकेशन के इस्तेमाल के पैटर्न के हिसाब से, ऐप्लिकेशन को पांच प्राथमिकता वाले बकेट में से किसी एक में रखा गया है. सिस्टम, डिवाइस को सीमित करता है ऐप्लिकेशन किस बकेट में है, इसके आधार पर हर ऐप्लिकेशन के लिए उपलब्ध संसाधन.

प्राथमिकता वाली बकेट

सिस्टम, डाइनैमिक तौर पर हर ऐप्लिकेशन को प्राथमिकता बकेट में असाइन करता है. ऐसा करते हुए, किसी भी समय ऐप्लिकेशन का इस्तेमाल कर सकते हैं. सिस्टम, पहले से लोड किए गए ऐसे ऐप्लिकेशन पर निर्भर हो सकता है जो मशीन का इस्तेमाल करता है हर ऐप्लिकेशन के इस्तेमाल की संभावना का पता लगाता है और सही बकेट मिल जाएंगी.

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

प्राथमिकता बकेट नीचे दी गई हैं:

इन प्राथमिकता बकेट के अलावा, आपके लिए एक खास कभी नहीं बकेट है ऐसे ऐप्लिकेशन जो इंस्टॉल तो हैं, लेकिन कभी काम नहीं करते. सिस्टम, पूरी दुनिया में ये ऐप्लिकेशन.

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

चालू है

जब किसी ऐप्लिकेशन का इस्तेमाल किया जाता है, हाल ही में इस्तेमाल किया जाता है या वह इनमें से कोई कार्रवाई करता है, तो वह सक्रिय बकेट में शामिल होता है:

  • कोई गतिविधि लॉन्च करता है.
  • लंबे समय तक चलने वाली फ़ोरग्राउंड सेवा का इस्तेमाल करती है.
  • उपयोगकर्ता ने किसी सूचना पर टैप किया हो.

अगर कोई ऐप्लिकेशन ऐक्टिव बकेट में है, तो सिस्टम उन पर कोई पाबंदी नहीं लगाता ऐप्लिकेशन के जॉब या अलार्म.

उपयोगकर्ता के इंटरैक्शन की वजह से, ऐप्लिकेशन 'चालू है' के तौर पर सेट हो जाते हैं

Android 9 (एपीआई लेवल 28) और उसके बाद के वर्शन पर, जब उपयोगकर्ता आपके ऐप्लिकेशन के साथ कुछ खास तरीकों से इंटरैक्ट करता है, तो सिस्टम आपके ऐप्लिकेशन को कुछ समय के लिए ऐक्टिव बकेट में डाल देता है. जब उपयोगकर्ता आपके ऐप्लिकेशन से इंटरैक्ट करना बंद कर देता है, तब सिस्टम उसे इस्तेमाल के इतिहास के आधार पर बकेट.

सिस्टम के इस व्यवहार को ट्रिगर करने वाले इंटरैक्शन के उदाहरण यहां दिए गए हैं:

वर्किंग सेट

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

अगर कोई ऐप्लिकेशन अपने-आप काम करने वाले सेट में होता है, तो सिस्टम काम करने और अलार्म ट्रिगर करने की सुविधा. ज़्यादा जानकारी के लिए, पावर मैनेजमेंट पाबंदियां तय की गई हैं.

अक्सर

अगर किसी ऐप्लिकेशन का नियमित तौर पर इस्तेमाल किया जाता है, लेकिन ज़रूरी नहीं है कि उसका इस्तेमाल हर दिन किया जाए, तो उसे अक्सर इस्तेमाल किए जाने वाले ऐप्लिकेशन की कैटगरी में रखा जाता है. उदाहरण के लिए, कसरत ट्रैक करने वाला कोई ऐप्लिकेशन, जिसे उपयोगकर्ता जिम में इस्तेमाल करता है वह अक्सर इस्तेमाल होने वाले ऐप्लिकेशन की कैटगरी में हो सकता है.

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

काफ़ी कम बार

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

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

पाबंदी लगी है

Android 12 (एपीआई लेवल 31) में जोड़े गए इस बकेट की प्राथमिकता सबसे कम है और सभी बकेट की सबसे ज़्यादा पाबंदियां हैं. सिस्टम, आपके ऐप्लिकेशन की जैसे कि उपयोगकर्ता इससे कितनी बार इंटरैक्ट करता है, ताकि यह तय किया जा सके कि उसे अपने ऐप्लिकेशन को प्रतिबंधित बकेट में रखें.

Android 13 (एपीआई लेवल 33) और उसके बाद वाले वर्शन पर, जब तक कि आपका ऐप्लिकेशन छूट है, तो सिस्टम आपके ऐप्लिकेशन को इन स्थितियों में:

  • उपयोगकर्ता किसी तय दिन तक आपके ऐप्लिकेशन से इंटरैक्ट न करता हो. चालू है Android 12 (एपीआई लेवल 31) और 12L (एपीआई लेवल 32) में कितने दिन लगते हैं 45 साल है. Android 13 में, इस अवधि को घटाकर आठ दिन कर दिया गया है.

  • आपका ऐप्लिकेशन 24 घंटे के दौरान, बहुत ज़्यादा ब्रॉडकास्ट या बाइंडिंग का इस्तेमाल करता है.

अगर सिस्टम आपके ऐप्लिकेशन को किसी प्रतिबंधित बकेट में रखता है, तो ये पाबंदियां लागू हैं:

  • हर दिन एक बार, 10 मिनट के बैच वाले सेशन में जॉब चलाए जा सकते हैं. इस दौरान इस सेशन में, सिस्टम आपके ऐप्लिकेशन की जॉब को अन्य ऐप्लिकेशन के साथ ग्रुप करता है नौकरियां.
    • पाबंदी वाली नौकरियां अपने-आप नहीं चलती हैं. कम से कम एक होना चाहिए साथ ही, काम नहीं कर रहा हो या उसे मंज़ूरी मिलना बाकी हो. इसमें कोई भी काम शामिल हो सकता है दूसरी नौकरी.
  • आपका ऐप्लिकेशन, सिस्टम की तुलना में कम तेज़ जॉब चला सकता है आपके ऐप्लिकेशन को कम पाबंदी वाले बकेट में रखता है.
  • आपका ऐप्लिकेशन एक दिन में एक अलार्म सेट कर सकता है. यह अलार्म या तो सटीक अलार्म या इनएग्ज़ैक्ट अलार्म लगा सकते हैं.

पाबंदी वाले बकेट से जुड़ी छूट

इस तरह के ऐप्लिकेशन को प्रतिबंधित बकेट में शामिल नहीं किया जा सकता और Android 12 और उसके बाद वाले वर्शन पर भी, इनऐक्टिविटी ट्रिगर को बायपास करने के लिए:

प्राथमिकता बकेट का आकलन करना

यह देखने के लिए कि आपका ऐप्लिकेशन किस बकेट के लिए असाइन किया गया है, इनमें से कोई एक काम करें:

  • getAppStandbyBucket() पर कॉल करें.

  • टर्मिनल विंडो में यह कमांड चलाएं:

    adb shell am get-standby-bucket PACKAGE_NAME

जब भी आपके ऐप्लिकेशन को किसी ऐप्लिकेशन स्टैंडबाय बकेट में रखा जाता है, तो सिस्टम उसे थ्रॉटल करता है जिसकी वैल्यू STANDBY_BUCKET_ACTIVE (10) से ज़्यादा है.

सबसे सही तरीके

अगर आपका ऐप्लिकेशन, बैटरी बचाएं और ऐप्लिकेशन स्टैंडबाय मोड के लिए सबसे सही तरीके अपनाता है, तो इसलिए, बाद में पावर मैनेजमेंट की बाद की सुविधाओं को इस्तेमाल करना मुश्किल नहीं है. हालांकि, ऐप्लिकेशन के कुछ ऐसे व्यवहारों की वजह से समस्याएं हो सकती हैं जो पहले ठीक से काम करते थे.

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

  • अगर ऐप्लिकेशन ज़्यादा प्राथमिकता मिलने पर सूचना नहीं दिखाता है Firebase क्लाउड से मैसेज (FCM) मैसेज, उपयोगकर्ता इससे इंटरैक्ट नहीं कर सकता ऐप्लिकेशन को चालू करता है और इस तरह उसे ऐक्टिव बकेट में प्रमोट करता है. असल में, ज़्यादा प्राथमिकता वाले FCM मैसेज का इस्तेमाल सिर्फ़ उपयोगकर्ता को सूचना भेजने के लिए किया जाता है. इसलिए, ऐसा नहीं होना चाहिए. 12L (एपीआई लेवल 32) और उससे कम पर, अगर तो आप किसी FCM मैसेज को गलत तरीके से 'हाई प्राथमिकता' के तौर पर मार्क करते हैं, जबकि वह ऐसा नहीं करता उपयोगकर्ता इंटरैक्शन को ट्रिगर करता है, तो इसकी वजह से आने वाले समय में मैसेज कमज़ोर हो सकते हैं.

  • अगर ऐप्लिकेशन को कई पैकेज में बांटा गया है, तो हो सकता है कि वे पैकेज अलग-अलग बकेट में हों और उनके ऐक्सेस लेवल अलग-अलग हों. इसके साथ इन ऐप्लिकेशन का परीक्षण करें: अलग-अलग बकेट के लिए असाइन किए गए पैकेज, ताकि यह पक्का किया जा सके कि ऐप्लिकेशन ठीक से काम करे.