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

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

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

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

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

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

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

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

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

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

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

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

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

जगह की जानकारी के अपडेट

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

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

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

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

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

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

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

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

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

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

kGMSFrameRatePowerSave

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

kGMSFrameRateConservative

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

kGMSFrameRateMaximum

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

कम सुविधाओं वाले डिवाइसों के लिए, यह 30 एफ़पीएस है. ज़्यादा सुविधाओं वाले डिवाइसों के लिए, यह 60 एफ़पीएस है.

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

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

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

mapView.isHidden = true

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

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

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

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

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

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

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

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

जीपीएस डिवाइस की जगह की जानकारी के अपडेट का अंतराल बदलना

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

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

अपने उपयोगकर्ताओं को सूचनाएं भेजें

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

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

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

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

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