मैं कैसे बता सकता हूं कि मैं प्रभावित हूं?
यह शायद उन लोगों के लिए पहला सवाल है जो इस विषय से परिचित नहीं हैं। जिंजरब्रेड (Android 2.3) और इसके बाद के संस्करण में, आपको एक सेवा प्राप्त हुई है जो आपको यह पता लगाने में मदद करती है: बैटरी के आँकड़े। हालाँकि निर्माता इसे अलग-अलग बिंदुओं पर रखने की कोशिश करते हैं, यह ज्यादातर सेटिंग्स में पाया जाता है → फ़ोन के बारे में → बैटरी या इसी तरह, और उन ऐप्स की सूची दिखाता है जिनमें आपकी बैटरी का सबसे अधिक उपयोग किया जाता है। उसके ऊपर एक छोटा सा ग्राफ है। उस पर टैप करें, और यह आपको इसके समान स्क्रीन पर लाता है:
एंड्रॉइड 2.3 पर बैटरी के आंकड़ों का स्क्रीनशॉट
मैंने अपने एक डिवाइस से एक स्क्रीनशॉट चुना जो इस मुद्दे को दिखाता है। निचली दो नीली पट्टियों ("अक्तीव" = डिवाइस को जागृत (सक्रिय), "बल्डशर्म" "=" स्क्रीन पर ") को देखते हुए," अक्तीव "पर दायीं-सबसे नीली पट्टी एक वेकॉक को इंगित करती है - डिवाइस को इसके बावजूद व्यस्त रखा गया था। वास्तव में स्क्रीन को बंद कर दिया गया था। तो इसके द्वारा हम यह सुनिश्चित कर सकते हैं कि हमें एक WakeLock मिल गया है - लेकिन हम यह नहीं बता सकते कि इसका कारण कौन है।
यदि आपका डिवाइस इस स्क्रीन (या नीचे स्थित बार) की पेशकश नहीं करता है: मुझे अभी-अभी पता चला है जैसे एलजी ऑप्टिमस 4X पर चलने वाले एंड्रॉइड 4.0.3 ने इन बार को काट दिया है), तो आप उन्हें ढूँढ सकते हैं जैसे जीएसएम बैटरी मॉनिटर का उपयोग करना :
GSam बैटरी मॉनिटर से समान जानकारी - यहाँ उल्लेखित "नीली पट्टी" पीले / नारंगी हैं
वेकॉक के कारण क्या हुआ?
दुर्भाग्य से, इस प्रश्न का उत्तर पूर्व-स्थापित ऐप्स (केवल, कुछ कस्टम रोम को छोड़कर) का उपयोग करके नहीं दिया जा सकता है। लेकिन ऐसे उपकरण उपलब्ध हैं जो कर सकते हैं। इसके लिए सबसे अच्छा ज्ञात उम्मीदवार बेटरबैटस्टैट्स है , और इसके आंशिक वाकेलॉक्स अनुभाग में हमें इसका कारण बताता है :
बेटरबैटस्टैट से स्क्रीनशॉट
पहले उदाहरण 2 में (ऐप के प्लेस्टोर पेज से लिया गया), इस घटना के कारण अधिकांश WakeLocks एक वांछित था: हम नहीं चाहते हैं कि प्लेबैक संगीत को सुनते हुए बंद हो जाए। तो दूसरा उदाहरण 3 (मेरे उपकरणों में से एक पर वास्तविक मामले से लिया गया) बेहतर साबित हो सकता है: सर्वोच्च 3 घटनाएं बहुत ही ऐप के कारण होती हैं, जिन्हें IMAP पुश सेवा को सक्रिय रखने के लिए वेकॉक की आवश्यकता थी।
बेटरबैटस्टैट्स के विकल्प के लिए , उज़ुमप्स के उत्तर में उल्लिखित वैकलॉक डिटेक्टर ऐप देखें - जो विशेष रूप से गैर-तकनीकी के लिए संभालना आसान लगता है:
वैकलॉक डिटेक्टर - विस्तार करने के लिए छवि पर क्लिक करें। (स्रोत: Google Play )
क्या किया जा सकता है?
यदि मामला पिछले अनुभाग में दूसरे उदाहरण के रूप में स्पष्ट है, तो कार्रवाई काफी स्पष्ट है - कम से कम मेरे मामले में: जब मेल आता है, तो मुझे तुरंत सूचित करने की आवश्यकता नहीं है; 30 मिनट की देरी बिल्कुल स्वीकार्य है। इसलिए मैं मेल ऐप में चला गया, निष्क्रिय IMAP पुश (यह भी देखें: पुश ईमेल ), और इसके बजाय 30min पोल अंतराल पर स्विच किया गया। WakeLocks पूरी तरह से गायब नहीं हुआ, लेकिन उल्लेखनीय रूप से गिरा - बैटरी जीवन में उल्लेखनीय सुधार हुआ।
तो फिर वहाँ सवाल में ही उल्लेख किया गया मामला है: एक बुरा व्यवहार एप्लिकेशन अपने WakeLock जारी नहीं। अपने निष्कर्षों के साथ देव का सामना करें और ठीक करने के लिए कहें। अगर वह उद्धार करता है: समस्या हल हो गई। यदि नहीं: लगभग हमेशा एक वैकल्पिक ऐप उपलब्ध है।
अगर यह एंड्रॉइड सिस्टम ही है तो क्या होगा?
हाँ, कभी-कभी ऐसा लगता है कि बस: कुछ Android सेवा द्वारा 98% या उससे अधिक की खपत। ओह, अगर यह 98% है, तो ज्यादातर मामलों में उम्मीदवार का नाम LocationManagerService है । बुरा आदमी हम पर जासूसी कर रहा है? जरुरी नहीं। इस विशेष मामले में, सूचीबद्ध "बुरा आदमी" भी दोषी नहीं है - कम से कम सीधे नहीं। यहाँ यह वर्तमान स्थान का अनुरोध करने वाला एक और ऐप है। इस बारे में Setera.org पर एक उत्कृष्ट लेख है: Android LocationManagerService बैटरी नाली को पिनपॉइंट करना । एक सार देने के लिए: यह एंड्रॉइड का उपयोग करता हैdumpsys
सुविधा (रूट की आवश्यकता है) एक सिस्टम स्थिति को डंप करने के लिए, और आपको LocationManagerService के लिए स्थापित श्रोताओं की जांच करने की सुविधा देता है। उनके विन्यास पर एक करीब से नज़र रखता है जो स्थान की जानकारी के लिए इसे लगातार "हथौड़ा" कर रहे हैं (कुछ तो स्थायी रूप से करते हैं, यानी बिना ब्रेक के)। जैसा कि ऐप की आईडी के साथ सूचीबद्ध है, और डंप में एक और जगह पर भी एक साथ ऐप तकनीकी नाम के साथ, आप अभी भी इसे पहचान सकते हैं और उचित कार्रवाई कर सकते हैं।
और UFO के बारे में क्या?
दुर्भाग्य से, ऐसे हैं: एप्स जिन्होंने एक वेकॉक पंजीकृत किया - और फिर इसे जारी किए बिना बाहर निकल गए। क्या बचा है * अप्रयुक्त एफ *** आईएनजी Obsoletes * - WakeLocks बिना किसी उपयोग के लिए आयोजित किया जाता है। तो कोई तरीका नहीं है कि बस ऐप को अग्रभूमि में लाया जाए और फिर से कॉन्फ़िगर किया जाए, या इसे अपने WakeLocks को रिलीज़ किया जाए।
यहाँ मेरे लिए एकमात्र समाधान एक रिबूट है - और मैं एक बेहतर समाधान चाहता हूं। बेशक, यदि आप दोषी एप्लिकेशन को जानते हैं, तो इसके बारे में चरण ऊपर दिए गए समान हैं: देव को सूचित करें, एक फिक्स प्राप्त करें - या ऐप को बदलें। लेकिन वर्तमान वेकॉक से छुटकारा पाने के बारे में ? शायद कोई और रिबूट के लिए एक बेहतर विकल्प प्रदान कर सकता है?
क्या कुछ और पढ़ने की सिफारिश की गई है?
ज़रूर। अभी के लिए एक, मैं बाद में और जोड़ सकता हूं:
/sys/power/wake_lock
, लेकिन अगर आपने इसे पावर मैनजर और पावरमैनगर का उपयोग करके "सही" तरीका किया। तो, सेवा दोनों वास्तविक वैकलॉक को पकड़ लेगी। और भले ही आपकी प्रक्रिया को मार दिया गया हो, इसे जारी करें ...