Wear OS पर बैटरी की खपत कम होना बहुत ज़रूरी है. Wear OS के डिज़ाइन सिद्धांत, डिवाइस की बैटरी के इस्तेमाल पर ज़्यादा फ़ोकस करते हैं. ऐसा इसलिए, क्योंकि स्मार्टवॉच एक छोटा डिवाइस है, जिसे कम समय के इंटरैक्शन के लिए बनाया गया है.
बड़े मोबाइल डिवाइसों की तुलना में, Wear OS डिवाइसों की बैटरी छोटी होती है. इसलिए, बैटरी खर्च होने पर ज़्यादा ध्यान जाता है. इसके अलावा, मोबाइल डिवाइस की तुलना में Wear OS डिवाइस को चार्ज करने में ज़्यादा समय लगता है. उपयोगकर्ता अपने मोबाइल डिवाइसों को दिन भर में कई बार चार्ज कर सकते हैं. हालांकि, Wear OS डिवाइस को चार्ज करने से पहले, उन्हें इसे अपने शरीर से अलग करना होगा.
अपने ऐप्लिकेशन की बैटरी कम खर्च करने की क्षमता को बेहतर बनाने के लिए, डिज़ाइन से जुड़े इन सबसे सही तरीकों को अपनाएं:
- आपके ऐप्लिकेशन का डिज़ाइन, Wear OS के साइज़, डाइमेंशन या कॉन्फ़िगरेशन के हिसाब से सही होना चाहिए. यह सीधे तौर पर आपके मोबाइल ऐप्लिकेशन की कॉपी नहीं होनी चाहिए.
- अपने मौजूदा मोबाइल ऐप्लिकेशन का इस्तेमाल करके, कुछ खास कामों में मदद पाएं. उदाहरण के लिए, स्मार्टवॉच पर इंटरनेट और सिंक करने की सुविधा का इस्तेमाल करने से बैटरी ज़्यादा खर्च होती है. इसलिए, यह तय करें कि क्या मोबाइल डिवाइस पर ज़्यादा बैटरी खर्च करने वाले काम किए जा सकते हैं और Wear OS डिवाइस पर डेटा में होने वाले बदलावों की जानकारी मिल सकती है.
- कम समय के इंटरैक्शन के लिए, इस्तेमाल के उदाहरण डिज़ाइन करें.
- यह देखें कि आपने कौनसे Wear OS इवेंट इस्तेमाल किए हैं और ये इवेंट कितनी बार होते हैं.
जब भी संभव हो, अपने ऐप्लिकेशन के काम को तब तक के लिए रोक दें, जब तक स्मार्टवॉच चार्ज न हो जाए. यह खास तौर पर उन कामों पर लागू होता है जिनमें ज़्यादा डेटा की ज़रूरत होती है. जैसे, डेटा सिंक करना और डेटाबेस व्यवस्थित करना.
अगर डिवाइस चार्ज हो रहा है और वाई-फ़ाई से कनेक्ट है, तो डेटा, इमेज, और अपडेट को पहले से फ़ेच करने के लिए जॉब शेड्यूल करें. इससे उपयोगकर्ता को आपके ऐप्लिकेशन में वह कॉन्टेंट दिख सकता है जो वह देखना चाहता है.
इस पावर गाइड से आपको यह समझने में मदद मिलती है कि सिस्टम आपके ऐप्लिकेशन को कब और कैसे चलाता है. साथ ही, इससे आपको यह भी पता चलता है कि ऐप्लिकेशन के चलने के समय और बैटरी के खर्च को कैसे सीमित किया जा सकता है. ऐप्लिकेशन लोड करने या सूची को स्क्रोल करने जैसी खास कार्रवाइयां कैसे की जाती हैं, इस बारे में ज़्यादा जानने के लिए, परफ़ॉर्मेंस से जुड़े दिशा-निर्देश देखें. जैसे, Wear OS पर Compose की परफ़ॉर्मेंस से जुड़ी गाइड.
समय के साथ बैटरी के इस्तेमाल पर नज़र रखना
आपके ऐप्लिकेशन को चलाने वाले Wear OS डिवाइस की बैटरी के आंकड़े देखने के लिए, अपनी डेवलपमेंट मशीन पर टर्मिनल विंडो में यह निर्देश डालें:
adb shell dumpsys batterystats
GitHub पर मौजूद एक लाइब्रेरी में, बैटरी के आंकड़ों का पार्सर मौजूद है. इस कमांड के साथ इसका इस्तेमाल करना फ़ायदेमंद हो सकता है.
बैटरी लाइफ़ पर असर डालने वाले इवेंट
अपने ऐप्लिकेशन के बारे में सोचने से पहले, यह जानना ज़रूरी है कि Wear OS डिवाइस पर कौनसे इवेंट बैटरी की खपत करते हैं.
यहां दी गई टेबल में, Wear OS ऐप्लिकेशन में होने वाले कई सामान्य इवेंट के दौरान, बैटरी लाइफ़ पर पड़ने वाले असर के बारे में बताया गया है. हर डिवाइस के हिसाब से, बैटरी खर्च होने की दर अलग-अलग होती है.
| इवेंट | बैटरी लाइफ़ पर असर | उतार-चढ़ाव को कम करने का तरीका |
|---|---|---|
| एलटीई और वाई-फ़ाई सहित नेटवर्क को ऐक्सेस करना | बहुत ज़्यादा | डिवाइस के चार्ज होने तक, गैर-ज़रूरी नेटवर्क ऐक्सेस को रोकें. |
| स्क्रीन चालू करना और इंटरैक्टिव मोड शुरू करना | ज़्यादा | उपयोगकर्ता को ज़रूरत से ज़्यादा समय तक स्क्रीन चालू रखने के लिए बढ़ावा न दें. ऐसा अनुभव देना जो हमेशा चालू रहने वाले मोड का इस्तेमाल करता हो. इसे ऐंबियंट मोड भी कहा जाता है. |
| जीपीएस सेंसर को ऐक्सेस करना | ज़्यादा | अगर हो सके, तो उपयोगकर्ता के जीपीएस का ऐक्सेस मांगने तक इंतज़ार करें. |
| सीपीयू का इस्तेमाल ज़्यादा रखें | ज़्यादा | Jetpack Compose का इस्तेमाल करके फ़्लो को इस्तेमाल करना. |
| धड़कन की दर मापने वाले सेंसर को ऐक्सेस करना | मध्यम | सेंसर एपीआई से कॉलबैक मिलने पर, प्रोसेसर के चालू रहने के समय का इस्तेमाल करें. जैसे, Wear OS पर स्वास्थ्य सेवाओं का इस्तेमाल करते समय. |
| ब्लूटूथ की मदद से किसी दूसरे डिवाइस को ऐक्सेस करना | मध्यम | सेशन छोटे रखें. |
| वेकलॉक को होल्ड करना | मध्यम | मैन्युअल तरीके से वेकलॉक बनाने और उनका इस्तेमाल करने की प्रोसेस को कम करें. साथ ही,
WorkManager का इस्तेमाल करें. |
स्क्रीन-ऑन टाइम कम करना
अपने Wear OS ऐप्लिकेशन में, स्क्रीन के इस्तेमाल से जुड़े इन सिद्धांतों का पालन करें:
- स्क्रीन-ऑन लॉक: जब तक ज़रूरी न हो, इनका इस्तेमाल न करें. इसकी जांच करने के लिए, सिस्टम सेटिंग में जाकर हमेशा चालू रहने वाला डिसप्ले बंद करें. इसके बाद, देखें कि टाइम आउट की अवधि के अंदर स्क्रीन बंद होती है या नहीं.
- ऐनिमेशन: ज़्यादा ऐनिमेशन का इस्तेमाल न करें. इसके बजाय, कम समय के ट्रांज़िशन पर फ़ोकस करें, ताकि वीडियो ज़्यादा प्रोफ़ेशनल लगे. खास तौर पर, लंबे समय तक चलने वाले ऐनिमेशन और लूप का इस्तेमाल करने से बचें. अगर लूप की ज़रूरत है, तो लूप के बीच में कम से कम उतनी देर का पॉज़ जोड़ें जितनी देर का ऐनिमेशन है.
- हमेशा चालू स्क्रीन मोड में स्क्रीन चालू रहने का समय: अगर ज़रूरी हो, तो हमेशा चालू सुविधा का इस्तेमाल करें. जैसे, फ़िटनेस से जुड़े मामलों में. अगर आपके ऐप्लिकेशन को हमेशा चालू रहने की ज़रूरत है, तो ऐंबियंट मोड के लिए ये सुझाव अपनाएं.
सीपीयू का इस्तेमाल कम से कम करना
अपने Wear OS ऐप्लिकेशन में, सीपीयू के इस्तेमाल से जुड़े इन सिद्धांतों का पालन करें:
- इस्तेमाल की जानकारी को छोटा रखें.
- एक जैसे कामों को एक साथ करें, ताकि आपके ऐप्लिकेशन की प्रोसेस ज़्यादा से ज़्यादा समय तक बंद रहे.
वेकलॉक कम करना
ज़्यादातर मामलों में, ऐसे किसी भी ऑपरेशन से बचें जो आपके ऐप्लिकेशन को स्लीप मोड में जाने से रोकता है. जैसे, वेकलॉक. उदाहरण के लिए, सेहत और फ़िटनेस से जुड़े ऐप्लिकेशन में, लंबे समय तक चलने वाले वर्कआउट के लिए वेकलॉक की ज़रूरत नहीं होती. सेंसर एपीआई से कॉलबैक पाने के दौरान, प्रोसेसर के चालू रहने के समय का इस्तेमाल करें. जैसे, Wear OS पर स्वास्थ्य सेवाएं का इस्तेमाल करते समय.
कुछ मामलों में, वेकलॉक हासिल करना ठीक होता है. जैसे, जब आपका ऐप्लिकेशन इनमें से कोई एक काम करता है:
- बैकग्राउंड में मीडिया चलाता है.
WorkManagerयाJobSchedulerका इस्तेमाल किया गया है. (बैकग्राउंड में जॉब चलाने पर, सिस्टम आपकी ओर से वेकलॉक को होल्ड करता है.)
वेक लॉक को स्थानीय तौर पर डीबग करने के लिए, Android Studio के बैकग्राउंड टास्क इंस्पेक्टर, सिस्टम ट्रेस करने वाला टूल या adb shell dumpsys batterystats का इस्तेमाल करें. इससे लंबे समय तक वेक लॉक होने की अलग-अलग घटनाओं के साथ-साथ, वेक लॉक की कुल संख्या और अवधि की खास जानकारी की जांच की जा सकती है. आपके ऐप्लिकेशन के इस्तेमाल के इंटरैक्टिव पैटर्न से, आपके ऐप्लिकेशन के वेकलॉक की संख्या और अवधि की तुलना करें:
- देखें कि कहीं कोई ऐसा वेकलॉक तो नहीं है जिसकी उम्मीद न हो.
- अगर काम पूरा होने में उम्मीद से ज़्यादा समय लग रहा है, तो देखें कि क्या काम किसी डिपेंडेंसी पर निर्भर है. जैसे, नेटवर्क की उपलब्धता.
यह देखना कि आपका ऐप्लिकेशन कैसे इनऐक्टिव हो जाता है
यह देखें कि डिवाइस के मुख्य इवेंट होने पर, चालू ऐप्लिकेशन क्या कर रहा है. जैसे:
- स्क्रीन बंद हो जाती है और डिवाइस, हमेशा चालू स्क्रीन मोड में चला जाता है.
ऐप्लिकेशन को स्वाइप करके खारिज किया गया हो.
ऐप्लिकेशन की गतिविधि का विश्लेषण करने के लिए, यहां दिए गए सेक्शन में मौजूद टूल इस्तेमाल करें.
पावर प्रोफ़ाइलर
Power Profiler को Android Studio मेन्यू में जाकर ऐक्सेस किया जा सकता है. इसके लिए, व्यू > टूल विंडो > Profiler चुनें:
- स्क्रीन बंद होने और डिवाइस के ऐंबियंट मोड में जाने पर, सिस्टम ट्रेस की जांच करें.
- देखें कि कोई काम जारी है या नहीं. साथ ही, डिवाइस के सीपीयू के इस्तेमाल का लेवल देखें.
Perfetto
Perfetto की मदद से, ट्रेस रिकॉर्ड किया जा सकता है. इसके बाद, अपने ऐप्लिकेशन की जाँच करके यह देखा जा सकता है कि स्क्रीन बंद होने, डिवाइस के ऐंबियंट मोड में जाने या उपयोगकर्ता के ऐप्लिकेशन की गतिविधि बंद करने पर, कोई थ्रेड काम कर रही है या नहीं.
अपने ऐप्लिकेशन के अहम इवेंट को मार्क करने के लिए, कस्टम इवेंट तय करें. इनमें डोमेन के हिसाब से होने वाले इवेंट भी शामिल हैं. किसी मीडिया ऐप्लिकेशन के लिए, इसमें प्लेलिस्ट फ़ेच करना, किसी मीडिया आइटम को डाउनलोड करना, वीडियो चलाना, और वीडियो बंद करना जैसे टास्क शामिल होंगे. इन इवेंट को तय करके, इन्हें Perfetto में देखा जा सकता है. साथ ही, इनकी टाइमिंग की तुलना अपने ऐप्लिकेशन के सीपीयू और पावर के इस्तेमाल से की जा सकती है.
Android CLI का इस्तेमाल करके, android-profiler
स्किल (android skills add android-profiler) भी इंस्टॉल की जा सकती है. इससे एआई एजेंट, कमांड लाइन से Perfetto सिस्टम ट्रेस रिकॉर्ड कर सकते हैं. साथ ही, पावर रेल, वेक लॉक, और डिवाइस के सस्पेंड होने की स्थितियों का विश्लेषण कर सकते हैं.
अपने ऐप्लिकेशन के शेड्यूल किए गए जॉब का विश्लेषण करना
WorkManager का इस्तेमाल करके शेड्यूल किए गए जॉब, आपको अपने ऐप्लिकेशन में बैकग्राउंड में काम करने की सुविधा देते हैं. हालांकि, बैकग्राउंड में होने वाले कुछ काम समय-समय पर होने चाहिए, लेकिन जॉब को बार-बार या लंबे समय तक न चलाएं. इससे डिवाइस की बैटरी खत्म हो सकती है.
Android Studio के बैकग्राउंड टास्क इंस्पेक्टर (व्यू > टूल विंडो >
ऐप्लिकेशन की जांच) का इस्तेमाल करें. इसके अलावा, शेड्यूल किए गए जॉब और वर्कर के एक्ज़ीक्यूशन की जांच करने के लिए, adb shell dumpsys jobscheduler और adb shell dumpsys
batterystats चलाएं. स्क्रिप्ट के चलने की फ़्रीक्वेंसी और कुल अवधि देखें:
- अगर कोई जॉब बहुत बार चलती है, तो इस फ़्रीक्वेंसी को कम करें.
- देखें कि स्क्रिप्ट को लागू होने में लगने वाला कुल समय, आपकी उम्मीद के मुताबिक है या नहीं. साथ ही, यह भी देखें कि इसमें बहुत ज़्यादा समय न लग रहा हो.
सिस्टम ट्रेस को भी रिकॉर्ड किया जा सकता है, ताकि टाइमलाइन पर आपके ऐप्लिकेशन की गतिविधि के साथ, जॉब के लागू होने की जानकारी को कोरिलेट किया जा सके. इसके लिए, इन्हें आज़माएं:
- आपके ऐप्लिकेशन के लिए, टास्क को पूरा करने में लगने वाला समय सही होना चाहिए.
- देखें कि क्या जॉब आपके ऐप्लिकेशन के चलने के दौरान होते हैं या क्या जॉब, बैकग्राउंड में समय-समय पर होने वाले काम को दिखाते हैं.
सेंसर
Wear OS डिवाइसों में कई तरह के सेंसर होते हैं, जैसे कि जीपीएस. ज़्यादातर मामलों में, SensorManager के साथ सीधे इंटरैक्ट करने के बजाय, Wear OS पर स्वास्थ्य सेवाएं का इस्तेमाल करें. कई मामलों में, स्वास्थ्य सेवाएं बैटरी की परफ़ॉर्मेंस को बेहतर बनाने के लिए, डेटा को स्मार्ट तरीके से बैच करती है.
अपने ऐप्लिकेशन में सेंसर के इस्तेमाल का विश्लेषण करने के लिए, अपनी डेवलपमेंट मशीन पर टर्मिनल विंडो में यह कमांड चलाएं:
adb shell dumpsys sensorservice
इस कमांड के नतीजों में यह जानकारी दिखती है:
- मौजूदा और पिछले सेंसर रजिस्ट्रेशन.
- सेंसर का कॉन्फ़िगरेशन. इसमें बैचिंग की सुविधा भी शामिल है, अगर इसे सेट किया गया है.
- हाल ही में सैंपल किया गया डेटा.
सेंसर से रजिस्ट्रेशन रद्द करने की जांच करना
यह देखने के लिए कि आपका ऐप्लिकेशन उम्मीद के मुताबिक सेंसर डेटा फ़ेच करना बंद कर देता है या नहीं, इन स्थितियों को टेस्ट करें:
- ऐप्लिकेशन को बंद करने के लिए स्वाइप करें.
- अपनी हथेली से स्क्रीन पर टैप करें. इससे स्क्रीन बंद हो जाती है या स्क्रीन को ऐंबियंट मोड में डाल दिया जाता है.
पिछले सेक्शन में दिए गए एडीबी कमांड का इस्तेमाल करके देखें कि सेंसर, 'रजिस्टर नहीं किया गया' के तौर पर सही तरीके से दिख रहा है या नहीं.
डेटा लेयर
डेटा लेयर एपीआई का इस्तेमाल करने पर, हर ट्रांसमिशन में कुछ बैटरी खर्च होती है. खास तौर पर, अगर इस एपीआई का इस्तेमाल करके डेटा भेजा जाता है, तो डेटा पाने के लिए आपके ऐप्लिकेशन को चालू होना चाहिए. इन वजहों से, इस एपीआई का इस्तेमाल सोच-समझकर करें.
Data Layer API का इस्तेमाल करने के कुछ और सबसे सही तरीके यहां दिए गए हैं:
WearableListenerServiceका इस्तेमाल करके लिसनर सेट अप करने से पहले, ऐप्लिकेशन के चालू होने का इंतज़ार करें.- डेटा लेयर एपीआई का इस्तेमाल करके, स्मार्टवॉच को समय-समय पर पिंग न करें. इससे यह पता चलता है कि कोई कंपैनियन डिवाइस या ऐप्लिकेशन उपलब्ध है या नहीं. बार-बार मैसेज भेजने से, आपका ऐप्लिकेशन रेडियो और रिमोट ऐप्लिकेशन प्रोसेस को चालू कर देता है. इससे डिवाइस की बैटरी ज़रूरत से ज़्यादा खर्च होती है.
इसके बजाय,
CapabilityClientका इस्तेमाल करके, डिवाइस की उपलब्धता और क्षमताओं का पता लगाएं या सिर्फ़ तब मैसेज भेजें, जब स्थिति में बदलाव हो. तेज़ी से अपडेट कॉन्फ़िगर करने के बजाय, स्थिति में हुए बदलावों को ट्रांसमिट करें. इन स्थितियों में बदलाव होने पर, Wear OS डिवाइस स्थानीय डेटा की गिनती कर पाता है. जैसे, वर्कआउट सेशन कब शुरू हुआ.
सिर्फ़ उन स्टेटस में हुए बदलावों को ट्रांसमिट करें जो आपके यूज़र इंटरफ़ेस (यूआई) को अपडेट करते हैं. उदाहरण के लिए, अगर आपकी गतिविधि की स्क्रीन पर "दौड़े गए किलोमीटर" को सिर्फ़ एक दशमलव स्थान तक दिखाया जाता है, तो उपयोगकर्ता के हर एक मीटर आगे बढ़ने पर, Wear OS को स्थिति में बदलाव की जानकारी न भेजें.
अपने ऐप्लिकेशन में डेटा लेयर एपीआई के इस्तेमाल का विश्लेषण करने के लिए, अपनी डेवलपमेंट मशीन पर टर्मिनल विंडो में यह कमांड चलाएं:
adb shell dumpsys activity service WearableService
इस निर्देश के नतीजों में ये शामिल हैं:
- RpcService: इसकी मदद से यह देखा जा सकता है कि
MessageClientका इस्तेमाल करके, कितनी बार और किन पाथ को कॉल किया जा रहा है. - DataService: इससे आपको यह देखने में मदद मिलती है कि
DataClientका इस्तेमाल करके, डेटा आइटम कितनी बार सेट किए जा रहे हैं.
सेहत और फ़िटनेस से जुड़े ऐप्लिकेशन
अगर आपके पास सेहत और फ़िटनेस से जुड़ा कोई ऐप्लिकेशन है, तो स्वास्थ्य सेवाएं का इस्तेमाल करें. इससे आपके ऐप्लिकेशन में सेंसर का इस्तेमाल बेहतर तरीके से किया जा सकेगा.
ExerciseClientके लिए, सिस्टम ट्रेस करने की प्रक्रिया, Perfetto याadb shell dumpsys batterystatsका इस्तेमाल करें. इससे यह पुष्टि की जा सकेगी कि ऐप्लिकेशन, हमेशा चालू स्क्रीन मोड में सही तरीके से काम कर रहा है या नहीं. देखें किExerciseUpdateडेटा पाने के लिए, आपका ऐप्लिकेशन हर एक या दो मिनट से ज़्यादा बार न चालू होता हो.- पूरे दिन सेहत की सामान्य निगरानी के लिए,
PassiveMonitoringClientका इस्तेमाल करें. इसके बारे में, बैकग्राउंड में सेहत और फ़िटनेस से जुड़े डेटा की निगरानी करने के तरीके की गाइड में बताया गया है.
टाइल और Android घड़ी के विजेट
अगर आपका ऐप्लिकेशन टाइल या विजेट के साथ काम करता है, तो यहां दिए गए सबसे सही तरीके अपनाएं:
- अपने-आप रीफ़्रेश होने की सुविधा बंद करें या रीफ़्रेश रेट को दो घंटे या उससे ज़्यादा पर सेट करें.
- डेटा अपडेट भेजने के लिए, Firebase क्लाउड से मैसेज (FCM) या सही तरीके से शेड्यूल किए गए जॉब का इस्तेमाल करें. अपडेट की संख्या को कम रखें, ताकि सिस्टम को बार-बार काम शेड्यूल न करना पड़े. ऐसा इसलिए, क्योंकि उपयोगकर्ता या प्लैटफ़ॉर्म को उस काम को पूरा करने के लिए ज़रूरी डेटा को ऐक्सेस करने में समय लग सकता है.
- जब उपयोगकर्ता आपकी टाइल या Android घड़ी के विजेट के साथ इंटरैक्ट न कर रहा हो, तब उसके लिए कोई काम शेड्यूल न करें.
- ऑफ़लाइन-फ़र्स्ट अप्रोच का इस्तेमाल करें.
- अपने मुख्य ऐप्लिकेशन, टाइल, और विजेट के साथ एक ही डेटाबेस शेयर करें. इससे यूज़र इंटरफ़ेस (यूआई) के सभी प्लैटफ़ॉर्म पर डेटा एक जैसा रहता है.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक का टेक्स्ट दिखता है
- बैकग्राउंड में जगह की जानकारी ऐक्सेस करना
- अलार्म शेड्यूल करना
- ऐडवांस विजेट बनाना {:#advanced-widget}