अपने ऐप्लिकेशन के लिए बिजली की खपत ऑप्टिमाइज़ करें

इस दस्तावेज़ में, नेविगेशन SDK टूल का इस्तेमाल करके बनाए गए मोबाइल नेविगेशन ऐप्लिकेशन में, बिजली की खपत को ऑप्टिमाइज़ करने के सबसे सही तरीके बताए गए हैं. साथ ही, इसमें यह भी बताया गया है कि किन बातों का ध्यान रखना चाहिए. खास तौर पर, इस दस्तावेज़ में ये चीज़ें शामिल हैं:

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

नेविगेशन ऐप्लिकेशन को ऑप्टिमाइज़ क्यों करना चाहिए?

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

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

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

सबसे ज़्यादा ऊर्जा की खपत कहां होती है?

इस सेक्शन में, ऊर्जा की ज़्यादा खपत से जुड़ी इन-ऐप्लिकेशन गतिविधियों को दो कैटगरी में बांटा गया है:

  • स्क्रीन रेंडरिंग
  • स्थान अपडेट

स्क्रीन रेंडरिंग

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

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

स्थान अपडेट

स्क्रीन रेंडरिंग के अलावा, दो अन्य नेविगेशन गतिविधियां डिवाइस की पावर की खपत करती हैं:

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

जीपीएस और सेल रेडियो कम्यूनिकेशन, दोनों में पावर की ज़रूरत स्टार्ट-अप की ज़रूरत होती है: जीपीएस को चाहिए कि सैटलाइट ढूंढने और सेल रेडियो को टावर से मोल-भाव करके कनेक्शन बनाने का ज़रूरी है. यही वजह है कि ये नेविगेशन के दौरान लगातार चलते रहते हैं भले ही, सेल रेडियो 20-30 सेकंड तक चालू रहते हों, ताकि शुरू होने की लागत कम से कम की जा सके. इन सेटिंग को ऑपरेटिंग सिस्टम कंट्रोल करता है, जिन्हें आप अपने ऐप्लिकेशन में आसानी से कॉन्फ़िगर नहीं कर सकते.

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

अपने ऐप्लिकेशन में बैटरी के इस्तेमाल को बेहतर बनाएं

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

फ़्रेम रेट बदलना

स्क्रीन, एक फ़्रीक्वेंसी पर अपडेट होती है. इस फ़्रीक्वेंसी को फ़्रेम रेट कहा जाता है. आम तौर पर, फ़्रेम रेट को फ़्रेम प्रति सेकंड (एफ़पीएस) के हिसाब से मापा जाता है. स्क्रीन रेंडरिंग में बहुत ज़्यादा सीपीयू या जीपीयू का इस्तेमाल होता है. इसलिए, बैटरी की खपत कम करने के लिए, फ़्रेम रेट को कम किया जा सकता है.

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

फ़्रेम रेट में बदलाव करने के बारे में ज़्यादा जानने के लिए, Android Media Dev Center डेवलपर दस्तावेज़ में फ़्रेम रेट सेक्शन देखें.

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

नेविगेशन यूज़र इंटरफ़ेस (यूआई) छिपाने के लिए, NavigationView या SupportNavigationFragment न जोड़ें. इसके अलावा, अगर आपने पहले ही यह कर लिया है, तो इन्हें जोड़ने वाला कोड हटाएं. नीचे दिए गए कोड को नेविगेशन SDK टूल के Android डेमो ऐप्लिकेशन से बदला गया है. यह नेविगेशन यूज़र इंटरफ़ेस (यूआई) जोड़ने वाले कोड को हटाने के लिए, टिप्पणियों का इस्तेमाल दिखाता है:

//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment)   getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);

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

मैप व्यू के साथ चल रहा डेमो ऐप्लिकेशन.
पहली इमेज.नेविगेशन SDK टूल iOS का डेमो ऐप्लिकेशन, डेटा बैक डेमो
दिखा रहा है
बिना मैप व्यू के चल रहा डेमो ऐप्लिकेशन.
दूसरी इमेज.ऐसा डेमो ऐप्लिकेशन जिसमें कोई मैप व्यू नहीं दिख रहा हो. बचे हुए समय और दूरी को नोट करें. साथ ही, सड़क पर खींची गई फ़ोटो की जगह की जानकारी अब भी अपडेट हो रही है.

गहरे रंग वाली मैप स्टाइल का इस्तेमाल करें

स्क्रीन पर मैप को रेंडर करने के लिए ज़रूरी एनर्जी को कम करने के लिए, मैप को गहरे रंग वाली थीम का इस्तेमाल करने के लिए स्टाइल दें.

नेविगेशन SDK टूल, Android के लिए Google Maps SDK टूल का इस्तेमाल करके अपने मैप रेंडर करता है. इसमें आपके ऐप्लिकेशन में बिना नेविगेशन वाले किसी भी मैप के व्यू को स्टाइल करने के विकल्प होते हैं. नेविगेशन व्यू में, गहरे रंग वाला मोड भी लागू किया जा सकता है. अलग-अलग स्क्रीन टाइप की वजह से, हो सकता है कि हर डिवाइस पर अलग-अलग असर न पड़े. हालांकि, कुछ मामलों में इससे बिजली की बचत भी हो सकती है. हाल ही में हुए एक अध्ययन से पता चला है कि कुछ स्क्रीन पर गहरे रंग वाले मोड का इस्तेमाल करने से सेव होने वाली बैटरी की मात्रा, शुरुआत में स्क्रीन की चमक पर निर्भर करती है. उदाहरण के लिए, गहरे रंग वाला मोड, पूरी चमक पर सेट होने वाली स्क्रीन की तुलना में ज़्यादा पावर की बचत करता है. अपने ऐप्लिकेशन के लिए गहरे रंग वाले मोड का इस्तेमाल करते समय इस बात पर ध्यान देना ज़रूरी है, क्योंकि बिजली की बचत इस बात पर निर्भर करेगी कि असली उपयोगकर्ता स्क्रीन की चमक किस तरह सेट करते हैं.

नेविगेशन यूज़र इंटरफ़ेस (यूआई) में बदलाव करने के बारे में ज़्यादा जानने के लिए, नेविगेशन यूज़र इंटरफ़ेस (यूआई) में बदलाव करें देखें.

iPhone 15 Pro पर गहरे रंग वाले मैप स्टाइल के साथ चल रहे नेविगेशन SDK टूल का स्क्रीनशॉट.
तीसरी इमेज.नेविगेशन SDK टूल को गहरे रंग वाले मैप स्टाइल के साथ कॉन्फ़िगर किया गया

अपने मैप के लिए डार्क स्टाइल बनाने के लिए, JSON स्टाइल वाले MapStyleOptions ऑब्जेक्ट का इस्तेमाल करें जो आपके डार्क मैप स्टाइल की आपकी पसंद को दिखाता है. https://mapstyle.withgoogle.com/ पर लेगसी स्टाइल एडिटर का इस्तेमाल करके, JSON के लेगसी स्टाइल बनाए जा सकते हैं.

GPS स्थान अपडेट की आवृत्ति बदलें

डिवाइस से भेजी गई जगह की जानकारी से जुड़े अपडेट के ज़रिए बिजली का इस्तेमाल करते समय, ट्रांसमिशन के दौरान भेजे गए डेटा की संख्या के बजाय जगह की जानकारी अपडेट करने की फ़्रीक्वेंसी पर ज़्यादा ध्यान दें.

नेविगेशन SDK में सीधे तौर पर, इसे कंट्रोल किया जा सकता है. हालांकि, अगर आपका Android ऐप्लिकेशन अलग से जगह की जानकारी का अनुरोध करता है, तो आपको Android डेवलपर दस्तावेज़ में, बैटरी के लिए जगह को ऑप्टिमाइज़ करें लेख में दी गई सलाह पर विचार करना चाहिए. गैर-जीपीएस लोकेशन सोर्स (सेल और वाई-फ़ाई) का इस्तेमाल करने पर भी यही सलाह लागू होती है.

अपने उपयोगकर्ताओं को जानकारी दें

ऐसा हो सकता है कि आपके ऐप्लिकेशन को इस्तेमाल करने वाले लोग यह जानना चाहें कि ऊर्जा की खपत को बेहतर कैसे बनाया जाए. अपने ऐप्लिकेशन पर बिजली की खपत को कम करने में उनकी मदद करने के लिए, अपने उपयोगकर्ताओं को ये काम करने की सलाह दें:

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

ऊर्जा की खपत का आकलन करें

ऊर्जा की खपत का आकलन करने के लिए, प्रोफ़ेशनल टूल का इस्तेमाल किया जा सकता है. हालांकि, इन्हें हासिल करना अक्सर मुश्किल या महंगा होता है. ऐप्लिकेशन और IDE प्रोफ़ाइलिंग टूल, जैसे कि Android Studio में पावर प्रोफ़ाइलर और XCode ऑर्गनाइज़र में बैटरी के इस्तेमाल वाला पैनल, बैटरी की खपत को मापता है. हालांकि, इन प्रोसेस के असर को मापना या परफ़ॉर्मेंस बेसलाइन को मेज़र करने के लिए सेट करना मुश्किल हो सकता है. कुछ मामलों में डिवाइस पाबंदियां, ज़रूरी डेटा को ऐक्सेस करने से रोक सकती हैं.

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