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

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

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

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

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

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

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

सबसे ज़्यादा बिजली की खपत किसमें होती है?

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

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

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

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

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

स्थान अपडेट

स्क्रीन रेंडरिंग के अलावा, नेविगेशन से जुड़ी दो अन्य गतिविधियां भी डिवाइस की बैटरी खर्च करती हैं:

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

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

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

अपने ऐप्लिकेशन की बैटरी खर्च को ऑप्टिमाइज़ करना

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

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

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

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

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

फ़्रेम रेट अपने-आप अडजस्ट होने की सुविधा

Navigation SDK के 7.8.0 और इसके बाद के वर्शन में, नेविगेशन के दौरान मैप का फ़्रेम रेट अपने-आप अडजस्ट हो जाता है. इससे परफ़ॉर्मेंस बेहतर होती है और बैटरी की खपत कम होती है. जब डिवाइस बैटरी सेव करने वाले मोड में जाता है, तो मैप का फ़्रेम रेट 10 FPS तक कम हो जाता है. साथ ही, नेविगेशन खत्म होने या बैटरी सेव करने वाला मोड बंद होने पर, यह 60 FPS पर रीसेट हो जाता है.

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

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

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

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

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

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

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

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

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

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

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

जीपीएस की मदद से डिवाइस की जगह की जानकारी अपडेट होने की फ़्रीक्वेंसी बदलना

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

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

अपने उपयोगकर्ताओं को, Google Workspace से जुड़ी जानकारी दें

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

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

बिजली की खपत का आकलन करना

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

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