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

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

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

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

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

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

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

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

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

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

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

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

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

स्थान अपडेट

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

  • रेडियो सेल टावर और GPS उपयोग
  • जगह की जानकारी से जुड़े अपडेट और उसे शेयर करना, जैसे कि ETA देना या वाहन की स्थिति की जानकारी देना.

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

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

अपने ऐप के पावर उपयोग को ऑप्टिमाइज़ करें

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

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

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

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

iOS डिवाइसों पर, फ़्रेम रेट को कंट्रोल करने के लिए, iOS के लिए Maps SDK टूल preferredFrameRate की प्रॉपर्टी दिखाता है. इस टेबल में, GMSFrameRate एन्युमरेटर की वे वैल्यू दी गई हैं जिनमें बदलाव किया जा सकता है:

kGMSFrameRatePowerSave

बैटरी खर्च बचाने के लिए कम से कम फ़्रेम रेट का इस्तेमाल करें.

kGMSFrameRateConservative

बेहतर रेंडरिंग देने और प्रोसेसिंग साइकल बचाने के लिए, मीडियन फ़्रेम रेट का इस्तेमाल करें.

kGMSFrameRateMaximum

किसी डिवाइस के लिए ज़्यादा से ज़्यादा फ़्रेम रेट का इस्तेमाल करें.

कम सुविधाओं वाले डिवाइसों के लिए, यह फ़्रेम रेट 30 FPS (फ़्रेम प्रति सेकंड) या हाई-एंड डिवाइस के लिए 60 FPS (फ़्रेम प्रति सेकंड) होता है.

रेफ़रंस के लिए, iOS दस्तावेज़ के लिए Google नेविगेशन SDK में GMSFrameRate देखें.

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

GMSMapView को छिपाने के लिए, एक लाइन का कोड जोड़ें:

mapView.isHidden = true

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

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

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

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

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

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

गहरे रंग वाले मैप स्टाइल वाले iPhone 15 Pro पर चल रहे नेविगेशन SDK टूल का स्क्रीनशॉट.
तीसरी इमेज.गहरे रंग वाले मैप की स्टाइल के साथ कॉन्फ़िगर किया गया नेविगेशन SDK टूल
अपने GMSMapView को ऐसे मैप आईडी की मदद से कॉन्फ़िगर करें जो आपके प्रोजेक्ट में तय की गई क्लाउड-आधारित मैप स्टाइल को दिखाता हो.

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

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

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

इसे नेविगेशन SDK टूल में सीधे तौर पर कंट्रोल नहीं किया जा सकता. गैर-जीपीएस लोकेशन सोर्स (सेल और वाई-फ़ाई) का इस्तेमाल करने पर भी यही सलाह लागू होती है.

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

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

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

ऊर्जा की खपत मापें

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

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