PowerManager
API में, कुछ समय के लिए वेक लॉक करने की सुविधा होती है. इसकी मदद से, डेवलपर डिवाइस के डिसप्ले के बंद होने के बाद भी सीपीयू को चालू रख सकते हैं. डिसप्ले बंद होने की वजह, सिस्टम टाइम आउट या उपयोगकर्ता का पावर बटन दबाना हो सकता है. आपका ऐप्लिकेशन, PARTIAL_WAKE_LOCK
फ़्लैग के साथ acquire()
को कॉल करके, पार्शियल वेक लॉक हासिल करता है. अगर आपका ऐप्लिकेशन बैकग्राउंड में चल रहा है (उपयोगकर्ता को आपके ऐप्लिकेशन का कोई हिस्सा नहीं दिख रहा है), तो कुछ समय तक होल्ड किए जाने पर, आंशिक वेक लॉक स्टक हो जाता है. इस वजह से, डिवाइस की बैटरी जल्दी खर्च हो जाती है, क्योंकि इससे डिवाइस को कम बैटरी मोड में जाने से रोका जाता है. 'कुछ समय के लिए डिवाइस को चालू रखना' सुविधा का इस्तेमाल सिर्फ़ ज़रूरत पड़ने पर किया जाना चाहिए. साथ ही, ज़रूरत खत्म होने पर, इसे तुरंत बंद कर देना चाहिए.
अगर आपके ऐप्लिकेशन में आंशिक तौर पर चालू रहने वाला वेक लॉक फ़ंक्शन काम नहीं कर रहा है, तो इस पेज पर दिए गए निर्देशों का इस्तेमाल करके, समस्या का पता लगाएं और उसे ठीक करें.
समस्या का पता लगाना
ऐसा हो सकता है कि आपको हमेशा यह पता न हो कि आपके ऐप्लिकेशन के वेक लॉक अटके हुए हैं. अगर आपने अपना ऐप्लिकेशन पहले ही पब्लिश कर दिया है, तो 'Android की ज़रूरी जानकारी' की मदद से, आपको समस्या के बारे में पता चल सकता है.
Android की ज़रूरी जानकारी
'Android की ज़रूरी जानकारी' सुविधा, आपके ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने में मदद कर सकती है. इसके लिए, यह Play Console के ज़रिए आपको सूचना देती है कि आपका ऐप्लिकेशन, आंशिक रूप से चालू रहने वाले वेक लॉक की समस्या से जूझ रहा है. 'Android की ज़रूरी जानकारी' में, पार्शियल वेक लॉक के ठीक से काम न करने की जानकारी तब दी जाती है, जब बैटरी सेशन के दौरान, बैकग्राउंड में कम से कम एक घंटे तक पार्शियल वेक लॉक चालू रहता है.
बैटरी सेशन की परिभाषा, प्लैटफ़ॉर्म के वर्शन पर निर्भर करती है.
- Android 10 में, बैटरी सेशन में इस बात की पूरी जानकारी होती है कि दिए गए 24 घंटों में, डिवाइस की बैटरी कितनी बार चार्ज की गई है. बैटरी रिपोर्ट में, दो बार बैटरी चार्ज होने के बीच के समय की जानकारी होती है. इस रिपोर्ट में जानकारी तब ही शामिल होती है, जब बैटरी को 20% से कम से लेकर 80% से ज़्यादा तक या किसी भी वैल्यू से लेकर 100% तक चार्ज किया जाता है.
- Android 11 में, बैटरी सेशन 24 घंटे की तय अवधि होती है.
बैटरी सेशन की दिखाई गई संख्या, ऐप्लिकेशन के उन सभी उपयोगकर्ताओं के लिए एक साथ इकट्ठा की गई है जिनकी परफ़ॉर्मेंस का आकलन किया गया है. Google Play, Android की ज़रूरी जानकारी का डेटा कैसे इकट्ठा करता है, इस बारे में जानने के लिए Play Console के दस्तावेज़ देखें.
अगर आपको पता चलता है कि आपके ऐप्लिकेशन में, 'डिवाइस को कुछ समय के लिए चालू रखना' सुविधा के कुछ लॉक फ़्रीज़ हो गए हैं, तो अगला कदम यह समस्या हल करना है.
समस्या ठीक करें
वेक लॉक की वजह से डिवाइस की बैटरी खर्च हो सकती है. इसलिए, अगर कोई दूसरा विकल्प उपलब्ध है, तो वेक लॉक का इस्तेमाल न करें. डिवाइस को चालू रखने के लिए सही एपीआई चुनें दस्तावेज़ से, आपको अपने ऐप्लिकेशन के लिए सबसे अच्छा समाधान ढूंढने में मदद मिल सकती है.
अगर आपको वेक लॉक का इस्तेमाल करना है, तो वेक लॉक के सबसे सही तरीकों का पालन करें. इससे यह पक्का किया जा सकेगा कि वेक लॉक, डिवाइस की परफ़ॉर्मेंस पर असर न डालें. खास तौर पर, पक्का करें कि आपने जो भी डिवाइस खरीदा है वह रिलीज़ हो चुका हो. साथ ही, डिवाइस को जल्द से जल्द रिलीज़ करें.
कोड में समस्या को ठीक करने के बाद, इन टूल का इस्तेमाल करके पुष्टि करें कि आपका ऐप्लिकेशन, वेक अप लॉक को सही तरीके से रिलीज़ करता है:
dumpsys - यह एक टूल है, जो किसी डिवाइस पर सिस्टम सेवाओं के स्टेटस के बारे में जानकारी देता है. पावर सेवा का स्टेटस देखने के लिए,
adb shell dumpsys power
चलाएं. इसमें, डिवाइस को जगाने वाले डिवाइसों की सूची भी शामिल होती है.Battery Historian - यह एक ऐसा टूल है जो Android बग रिपोर्ट के आउटपुट को पार्स करके, बैटरी से जुड़े इवेंट को विज़ुअल तौर पर दिखाता है.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- रुके हुए फ़्रेम
- कंटिन्यूअस इंटिग्रेशन में मानदंड चलाना
- मैक्रोबेंचमार्क के बिना बेसलाइन प्रोफ़ाइलें बनाना और मेज़र करना