डिवाइस की बैटरी लाइफ़ को बेहतर बनाने के लिए, Android डिवाइस के इस्तेमाल और डिवाइस के चालू होने की स्थिति पर नज़र रखकर, डिवाइस की स्थिति पर असर डाल सकता है. डिवाइस का इस्तेमाल न होने पर, गतिविधियों को रोकने के लिए प्लैटफ़ॉर्म स्लीप मोड में जा सकता है.
Doze मोड के बारे में जानकारी
Doze मोड, डिवाइस के लंबे समय तक इस्तेमाल न होने पर, ऐप्लिकेशन के बैकग्राउंड में सीपीयू और नेटवर्क गतिविधि को रोककर बैटरी लाइफ़ बढ़ाता है.
Doze मोड में, डिवाइसों को समय-समय पर रखरखाव की विंडो में डाला जाता है. इस दौरान, ऐप्लिकेशन में बाकी बचे काम (सिंक, जॉब वगैरह) पूरे किए जा सकते हैं. इसके बाद, डिवाइस ज़्यादा समय तक स्लीप मोड में रहेगा. इसके बाद, डिवाइस को फिर से चालू करने के लिए, एक और मेंटेनेंस विंडो खुलेगी. प्लैटफ़ॉर्म, Doze मोड में नींद/मेंटेनेंस के क्रम को जारी रखता है. साथ ही, हर बार इंतज़ार की अवधि बढ़ाता है. ऐसा तब तक होता है, जब तक कि नींद के लिए तय किए गए कुछ घंटे पूरे नहीं हो जाते. Doze मोड में मौजूद डिवाइस, हर समय हलचल का पता लगाता रहता है. हलचल का पता चलने पर, वह तुरंत Doze मोड से बाहर निकल जाता है.
Android 7.0 और उसके बाद के वर्शन में, Doze मोड की सुविधा को बेहतर बनाया गया है. इससे, जब भी उपयोगकर्ता डिवाइस की स्क्रीन बंद करता है, तो बैटरी लाइफ़ को बेहतर बनाने के लिए, ऑप्टिमाइज़ेशन के कम सेट को ट्रिगर किया जाता है. भले ही, उपयोगकर्ता डिवाइस का इस्तेमाल करता रहे.
डिवाइस बनाने वाली कंपनियां, आम तौर पर ज़रूरी सिस्टम सेवाओं को सेट अप करती हैं, ताकि उन्हें Doze मोड से छूट मिल सके. उपयोगकर्ता, सेटिंग मेन्यू का इस्तेमाल करके, कुछ ऐप्लिकेशन को Doze मोड से भी छूट दे सकते हैं. हालांकि, ऐप्लिकेशन को छूट देने से डिवाइस की बैटरी खर्च हो सकती है. AOSP में, Doze की सुविधा डिफ़ॉल्ट रूप से बंद रहती है. Doze की सुविधा चालू करने के बारे में जानने के लिए, Doze को इंटिग्रेट करना लेख पढ़ें.
Doze मोड की ज़रूरी शर्तें
Doze मोड के साथ काम करने के लिए, ज़रूरी है कि डिवाइस में क्लाउड मैसेजिंग सेवा हो. जैसे, Firebase क्लाउड से मैसेज (FCM). क्लाउड मैसेज जैसे बाहरी ट्रिगर इवेंट, डिवाइस के Doze मोड में रहने के दौरान, ऐप्लिकेशन को कुछ समय के लिए चालू कर सकते हैं, ताकि वे काम कर सकें.
Doze मोड के सभी फ़ीचर इस्तेमाल करने के लिए, डिवाइस में सिग्निफ़िकेंट मोशन डिटेक्टर (एसएमडी) होना ज़रूरी है. हालांकि, Android 7.0 और उसके बाद के वर्शन में मौजूद, कम बैटरी खर्च करने वाले Doze मोड के लिए एसएमडी की ज़रूरत नहीं होती. अगर किसी डिवाइस पर Doze मोड चालू है, तो:
- इसमें SMD है और Doze मोड के लिए पूरी तरह से ऑप्टिमाइज़ेशन होता है. इसमें हल्के ऑप्टिमाइज़ेशन भी शामिल हैं.
- इसमें SMD नहीं होता. सिर्फ़ Doze मोड के लिए ऑप्टिमाइज़ेशन होता है.
Doze मोड का लाइफ़साइकल
Doze मोड तब चालू होता है, जब प्लैटफ़ॉर्म को पता चलता है कि डिवाइस इस्तेमाल में नहीं है. साथ ही, यह मोड तब बंद होता है, जब डिवाइस के इस्तेमाल में आने की एक या उससे ज़्यादा शर्तें पूरी होती हैं.
प्लैटफ़ॉर्म को तब पता चलता है कि कोई डिवाइस इस्तेमाल में नहीं है, जब:
- डिवाइस एक जगह पर है (एसएमडी का इस्तेमाल किया जा रहा है).
- डिवाइस की स्क्रीन कुछ समय के लिए बंद हो.
बैटरी से चलने वाले डिवाइस को पावर चार्जर में प्लग इन करने पर, स्लीप मोड चालू नहीं होता.
डिवाइस के स्लीप मोड में होने पर
प्लैटफ़ॉर्म, सिस्टम को स्लीप मोड में रखने की कोशिश करता है. इसके लिए, वह रखरखाव की अवधि के दौरान समय-समय पर सामान्य कामकाज फिर से शुरू करता है. इसके बाद, डिवाइस को फिर से स्लीप मोड में डाल देता है. स्लीप मोड के दौरान, ये पाबंदियां लागू होती हैं:
- ऐप्लिकेशन को नेटवर्क ऐक्सेस करने की अनुमति नहीं है.
- ऐप्लिकेशन के वेकलॉक को अनदेखा किया जाता है.
- अलार्म बंद हो जाते हैं. इसमें अलार्म घड़ी के अलार्म और
setAndAllowWhileIdle()
का इस्तेमाल करके सेट किए गए अलार्म शामिल नहीं हैं. Doze मोड के दौरान, हर ऐप्लिकेशन के लिए हर 15 मिनट में सिर्फ़ एक अलार्म सेट किया जा सकता है. यह छूट, Calendar जैसे उन ऐप्लिकेशन के लिए है जिन्हें इवेंट के रिमाइंडर की सूचनाएं दिखानी होंगी. - वाई-फ़ाई स्कैन नहीं किए जाते.
SyncAdapter
सिंक औरJobScheduler
जॉब, रखरखाव की अगली विंडो तक के लिए स्थगित कर दिए जाते हैं.- एसएमएस और एमएमएस मैसेज पाने वाले ऐप्लिकेशन को अस्थायी तौर पर व्हाइटलिस्ट में डाल दिया जाता है, ताकि वे अपनी प्रोसेसिंग पूरी कर सकें.
बाहर निकलें
प्लैटफ़ॉर्म, डिवाइस को Doze मोड से बाहर तब निकालता है, जब उसे इनका पता चलता है:
- डिवाइस के साथ उपयोगकर्ता का इंटरैक्शन
- डिवाइस की मूवमेंट
- डिवाइस की स्क्रीन चालू हो जाती है
- Imminent AlarmClock alarm
सूचनाएं मिलने पर, डिवाइस Doze मोड से बाहर नहीं आता.
Android 7.0 और उसके बाद के वर्शन में, डिवाइस के इस्तेमाल में न होने से पहले, स्क्रीन बंद होने के दौरान, लाइटवेंइट स्लीप मोड चालू करके, Doze मोड की अवधि बढ़ाई जाती है.
पहली इमेज. स्टैशनरी और नॉन-स्टैशनरी डिवाइसों के लिए, Doze मोड.
कार्रवाई | बैटरी बचाएं (डोज़) | लाइटवाइट डॉज़ मोड |
---|---|---|
ट्रिगर करने पर | स्क्रीन बंद है, बैटरी चालू है, और डिवाइस एक जगह पर है | स्क्रीन बंद है, बैटरी चालू है (अनप्लग है) |
अपलोड करने का समय | रखरखाव के लिए, लगातार बढ़ती अवधियां | मेंटेनेंस विंडो के साथ, कुछ मिनट के लिए बार-बार होने वाली अवधियां |
पाबंदियां | नेटवर्क ऐक्सेस, वेक लॉक या जीपीएस/वाई-फ़ाई स्कैन नहीं किया जा सकता. साथ ही, अलार्म और जॉब/सिंक को भी बाद में किया जाएगा | नेटवर्क का ऐक्सेस नहीं है. रखरखाव की विंडो के दौरान ही जॉब/सिंक किए जाते हैं |
व्यवहार | सिर्फ़ ज़्यादा प्राथमिकता वाले पुश नोटिफ़िकेशन मैसेज मिलते हैं | रीयल-टाइम में मिलने वाले सभी मैसेज (इंस्टैंट मैसेज, कॉल वगैरह); ज़्यादा प्राथमिकता वाले पुश नोटिफ़िकेशन मैसेज के लिए, कुछ समय के लिए नेटवर्क का ऐक्सेस चालू किया जाता है |
बाहर निकलें | मोशन, स्क्रीन चालू होने या अलार्म घड़ी के अलार्म से | स्क्रीन चालू |
ऐप्लिकेशन स्टैंडबाय के साथ इंटरैक्शन
- Doze मोड में बीता समय, ऐप्लिकेशन के स्टैंडबाय मोड में बीते समय में नहीं गिना जाता.
- डिवाइस के Doze मोड में होने पर, इनऐक्टिव ऐप्लिकेशन को दिन में कम से कम एक बार सामान्य काम करने की अनुमति होती है.
Doze मोड को इंटिग्रेट करना
Doze मोड चालू होने पर, SENSOR_TYPE_SIGNIFICANT_MOTION
के साथ काम करने वाले डिवाइसों पर, Doze मोड के सभी ऑप्टिमाइज़ेशन लागू होते हैं. इनमें, लाइटवाइट ऑप्टिमाइज़ेशन भी शामिल हैं. SMD के बिना काम करने वाले डिवाइसों पर, Doze मोड के सिर्फ़ लाइटवाइट ऑप्टिमाइज़ेशन लागू होते हैं. Android, Doze मोड के लिए सही ऑप्टिमाइज़ेशन अपने-आप चुनता है. इसके लिए, वेंडर कॉन्फ़िगरेशन की ज़रूरत नहीं होती.
किसी डिवाइस के लिए Doze मोड चालू करने के लिए:
- पुष्टि करें कि डिवाइस में क्लाउड मैसेजिंग सेवा इंस्टॉल हो.
- डिवाइस ओवरले कॉन्फ़िगरेशन फ़ाइल में
overlay/frameworks/base/core/res/res/values/config.xml
,config_enableAutoPowerModes
कोtrue
पर सेट करें: AOSP में, यह पैरामीटर डिफ़ॉल्ट रूप से<bool name="config_enableAutoPowerModes">true</bool>
false
(Doze बंद है) पर सेट होता है.
- पुष्टि करें कि पहले से लोड किए गए ऐप्लिकेशन और सेवाएं:
- बैटरी बचाने के लिए ऑप्टिमाइज़ेशन के दिशा-निर्देशों का इस्तेमाल करें. ज़्यादा जानकारी के लिए, ऐप्लिकेशन की जांच करना और उन्हें ऑप्टिमाइज़ करना लेख पढ़ें.
या
- उन्हें 'बैटरी बचाएं (डोज़)' और ऐप्लिकेशन स्टैंडबाय मोड से छूट मिली है. ज़्यादा जानकारी के लिए, ऐप्लिकेशन को छूट देना लेख पढ़ें.
- बैटरी बचाने के लिए ऑप्टिमाइज़ेशन के दिशा-निर्देशों का इस्तेमाल करें. ज़्यादा जानकारी के लिए, ऐप्लिकेशन की जांच करना और उन्हें ऑप्टिमाइज़ करना लेख पढ़ें.
- पुष्टि करें कि ज़रूरी सेवाओं को Doze मोड से छूट मिली हो.
सलाह
- अगर हो सके, तो डाउनस्ट्रीम मैसेजिंग के लिए FCM का इस्तेमाल करें.
- अगर आपके उपयोगकर्ताओं को तुरंत सूचना दिखनी चाहिए, तो FCM के ज़रिए भेजे जाने वाले, ज़्यादा प्राथमिकता वाले मैसेज का इस्तेमाल करें.
- शुरुआती मैसेज के पेलोड में ज़रूरत के मुताबिक जानकारी दें, ताकि बाद में नेटवर्क को बार-बार ऐक्सेस न करना पड़े.
setAndAllowWhileIdle()
औरsetExactAndAllowWhileIdle()
का इस्तेमाल करके, ज़रूरी अलार्म सेट करें.
ऐप्लिकेशन की जांच करना और उन्हें ऑप्टिमाइज़ करना
Doze मोड में सभी ऐप्लिकेशन (खास तौर पर पहले से लोड किए गए ऐप्लिकेशन) की जांच करें. ज़्यादा जानकारी के लिए, 'बैटरी बचाएं (डोज़)' और ऐप्लिकेशन स्टैंडबाय मोड की मदद से जांच करना लेख पढ़ें.