इस दस्तावेज़ में, Navigation SDK का इस्तेमाल करके बनाए गए मोबाइल नेविगेशन ऐप्लिकेशन में बैटरी की खपत को ऑप्टिमाइज़ करने के सबसे सही तरीके बताए गए हैं. साथ ही, इसमें इन तरीकों का इस्तेमाल करते समय होने वाले फ़ायदों और नुकसानों के बारे में भी बताया गया है. खास तौर पर, इस दस्तावेज़ में इनके बारे में बताया गया है:
- ज़्यादा बैटरी खर्च करने वाले सोर्स. इन्हें सबसे ज़्यादा से सबसे कम के क्रम में रैंक किया जाता है.
- बैटरी की खपत को ऑप्टिमाइज़ करने के लिए, रणनीतियां. इन्हें अहमियत के क्रम में रखा गया है. सबसे पहले फ़्रेम रेट के बारे में बताया गया है.
- आखिरी उपयोगकर्ता के लिए रणनीतियां, ताकि आपके ऐप्लिकेशन के उपयोगकर्ताओं को यह बताया जा सके कि नेविगेट करते समय, डिवाइस के इस्तेमाल को कैसे मैनेज किया जाए.
नेविगेशन ऐप्लिकेशन को ऑप्टिमाइज़ क्यों करें?
उपयोगकर्ताओं की ज़रूरत के हिसाब से, आपके ऐप्लिकेशन के उपयोगकर्ता लंबे समय तक नेविगेशन की सुविधा का इस्तेमाल कर सकते हैं. उदाहरण के लिए, ड्राइवर और डिलीवरी कूरियर लंबे समय तक काम कर सकते हैं. साथ ही, वे अनजान इलाकों में असाइनमेंट पूरे कर सकते हैं. ऐसे मामलों में, वे ऐप्लिकेशन में दिए गए बारी-बारी से निर्देशों पर काफ़ी हद तक निर्भर होते हैं. इस वजह से, कुछ सामान्य समस्याएं होती हैं:
- बैटरी तेज़ी से खत्म होने और चार्जर की उपलब्धता. नेविगेशन का ज़्यादा इस्तेमाल करने से, डिवाइस की बैटरी उम्मीद से ज़्यादा तेज़ी से खत्म हो सकती है. कई उपयोगकर्ता, गाड़ी में डिवाइस को चार्ज करके इस समस्या को ठीक कर सकते हैं. हालांकि, दोपहिया वाहन चलाने वाले लोग ऐसा नहीं कर सकते.
- गर्म होने की वजह से डिवाइस की परफ़ॉर्मेंस कम हो गई है. डिवाइस को लगातार चार्ज करने वाले उपयोगकर्ताओं को भी समस्याएं आ सकती हैं. लंबे समय तक ज़्यादा बैटरी खर्च होने से, डिवाइस गर्म हो सकता है. इससे डिवाइस की परफ़ॉर्मेंस कम हो सकती है और डिवाइस की स्पीड धीमी हो सकती है.
टर्न-बाय-टर्न नेविगेशन वाले ऐप्लिकेशन, स्क्रीन, जीपीएस, और सेल टावर के साथ रेडियो कम्यूनिकेशन जैसी ज़्यादा बैटरी खर्च करने वाली सुविधाओं पर निर्भर होते हैं. इसलिए, अपने मोबाइल ऐप्लिकेशन के लिए बैटरी के इस्तेमाल को ऑप्टिमाइज़ करना सबसे सही तरीका है. इसके अलावा, आपको अपने टारगेट ऑडियंस की बैटरी के इस्तेमाल की ज़रूरतों पर भी ध्यान देना चाहिए, ताकि परफ़ॉर्मेंस और बैटरी की खपत को ऑप्टिमाइज़ करने के बीच सही फ़ैसला लिया जा सके.
सबसे ज़्यादा बैटरी कौनसी सुविधा इस्तेमाल करती है?
इस सेक्शन में, ज़्यादा बैटरी इस्तेमाल करने वाली ऐप्लिकेशन में होने वाली गतिविधियों को दो कैटगरी में बांटा गया है:
- स्क्रीन रेंडरिंग
- स्थान अपडेट
स्क्रीन रेंडरिंग
आम तौर पर, स्क्रीन रेंडरिंग की वजह से मोबाइल नेविगेशन ऐप्लिकेशन में सबसे ज़्यादा बैटरी खर्च होती है. जब भी डिवाइस, स्क्रीन पर मैप और अन्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट दिखाता है, तब वह जीपीयू और सीपीयू प्रोसेसिंग पर निर्भर होता है. इसी तरह, जब उपयोगकर्ता उस स्क्रीन को लंबे समय तक चालू रखता है, तब भी ज़्यादा बैटरी खर्च होती है.
ड्राइवर या राइडर, नेविगेट करने के लिए मैप पर निर्भर होते हैं. इसलिए, कुछ हद तक यह उम्मीद की जा सकती है कि वे ज़्यादा बैटरी का इस्तेमाल करेंगे. ऐसा तब होता है, जब वे लगातार कई घंटों तक ऐप्लिकेशन का इस्तेमाल करते हैं. इस स्थिति में, ऐप्लिकेशन स्क्रीन पर ज़्यादा तेज़ी से रेंडर करता है, क्योंकि मैप रीयल टाइम में अपडेट होता है. कुछ मामलों में, स्क्रीन लगातार रीफ़्रेश हो सकती है. ऐसा खास तौर पर तब होता है, जब उपयोगकर्ता बिना रुके एक जगह से दूसरी जगह पर ड्राइव करता है.
स्थान अपडेट
स्क्रीन रेंडरिंग के अलावा, नेविगेशन की दो अन्य गतिविधियाँ भी डिवाइस की बैटरी खर्च करती हैं:
- रेडियो सेल टॉवर और जीपीएस का इस्तेमाल
- जगह की जानकारी को अपडेट और शेयर करना. जैसे, पहुंचने का अनुमानित समय बताना या फ्लीट में मौजूद किसी वाहन की जगह की जानकारी देना.
जीपीएस और सेल रेडियो कम्यूनिकेशन, दोनों के लिए बैटरी की खपत करने वाली स्टार्टअप प्रोसेस पर निर्भर रहना पड़ता है: जीपीएस को सैटलाइट ढूंढनी होती हैं और सेल रेडियो को टावर से बातचीत करनी होती है और कनेक्शन बनाना होता है. इन वजहों से, नेविगेशन के दौरान ये लगातार चलते रहते हैं. भले ही, सेल रेडियो को चालू होने में लगने वाले समय को कम करने के लिए, 20 से 30 सेकंड तक चालू रखा जाता हो. ऑपरेटिंग सिस्टम इन सेटिंग को कंट्रोल करता है. इसलिए, इन्हें अपने ऐप्लिकेशन में आसानी से कॉन्फ़िगर नहीं किया जा सकता.
जगह की जानकारी अपडेट करने के लिए, बैटरी की खपत का अनुमान लगाना मुश्किल होता है. ऐसा इसलिए, क्योंकि यह कई अनिश्चितताओं पर निर्भर करती है. उदाहरण के लिए, डिवाइस और सेल्युलर बेस स्टेशन के बीच की दूरी से बैटरी की खपत का पता चलता है. ऐसा इसलिए, क्योंकि डिवाइस नेविगेशन जारी रखने के लिए, ज़रूरी सिग्नल का इस्तेमाल करेगा, ताकि टावर स्विच न करना पड़े. इसलिए, खराब कनेक्टिविटी वाले इलाके में नेविगेट करने वाला डिवाइस, बेस स्टेशन के आस-पास मौजूद डिवाइस की तुलना में ज़्यादा बैटरी खर्च करेगा. इसके अलावा, कुछ ऐप्लिकेशन, फ्लीट मैनेजमेंट की किसी सेवा के साथ जगह की जानकारी अपडेट शेयर कर सकते हैं. इसलिए, उन्हें ऐसा करने के लिए किसी सर्वर से कम्यूनिकेट करना होगा.
अपने ऐप्लिकेशन में बैटरी की खपत को ऑप्टिमाइज़ करना
नेविगेशन ऐप्लिकेशन में बैटरी के इस्तेमाल को ऑप्टिमाइज़ करने में यह समस्या आती है कि ये ऐप्लिकेशन, बैटरी की खपत करने वाले संसाधनों पर बहुत ज़्यादा निर्भर होते हैं. इससे, बैटरी के इस्तेमाल को कम करने के लिए आपके पास सीमित विकल्प होते हैं. जैसे, स्क्रीन के इस्तेमाल को सीमित करना. इस सेक्शन में, ऐप्लिकेशन को ऑप्टिमाइज़ करने के लिए इस्तेमाल किए जा सकने वाले तरीकों की सूची दी गई है. यह सूची, सबसे ज़्यादा असर डालने वाले से लेकर सबसे कम असर डालने वाले तरीके के क्रम में दी गई है.
फ़्रेम रेट बदलना
स्क्रीन पर दिखने वाला कॉन्टेंट, एक तय फ़्रीक्वेंसी पर अपडेट होता है. इसे फ़्रेम रेट कहा जाता है. फ़्रेम रेट को आम तौर पर, फ़्रेम प्रति सेकंड (एफ़पीएस) में मापा जाता है. स्क्रीन रेंडरिंग में सीपीयू या जीपीयू का ज़्यादा इस्तेमाल होता है. इसलिए, बैटरी की खपत कम करने के लिए, फ़्रेम रेट को कम किया जा सकता है.
फ़्रेम रेट कम करने से, स्क्रीन रेंडरिंग कम स्मूद दिख सकती है. ऐसा खास तौर पर तब होता है, जब मैप को बार-बार अपडेट किया जाता है. यह बदलाव तब सबसे ज़्यादा दिखता है, जब मैप को ज़ूम इन किया जाता है, जब उपयोगकर्ता तेज़ गति से यात्रा कर रहा होता है या जब गति या दिशा में काफ़ी बदलाव होता है.
iOS डिवाइसों पर, Maps SDK for iOS, फ़्रेम रेट को कंट्रोल करने के लिए preferredFrameRate प्रॉपर्टी दिखाता है. नीचे दी गई टेबल में,GMSFrameRate एन्यूमरेटर की उन वैल्यू को दिखाया गया है जिनमें बदलाव किया जा सकता है:
|
बैटरी की खपत कम करने के लिए, कम से कम फ़्रेम रेट का इस्तेमाल करें. |
|
स्मूथ रेंडरिंग के लिए, मीडियन फ़्रेम रेट का इस्तेमाल करें. इससे प्रोसेसिंग साइकल को भी बचाया जा सकता है. |
|
किसी डिवाइस के लिए ज़्यादा से ज़्यादा फ़्रेम रेट का इस्तेमाल करें. कम कॉन्फ़िगरेशन वाले डिवाइसों के लिए यह 30 एफ़पीएस है. वहीं, ज़्यादा कॉन्फ़िगरेशन वाले डिवाइसों के लिए यह 60 एफ़पीएस है. |
रेफ़रंस के लिए, iOS के लिए Google Navigation SDK के दस्तावेज़ में GMSFrameRate देखें.
मैप के बिना नेविगेट करना
हालांकि, आपके पास यह कंट्रोल करने का विकल्प नहीं होता कि असली उपयोगकर्ता अपने डिवाइस की स्क्रीन की रोशनी को कैसे सेट करता है या वह अपनी स्क्रीन को कितनी देर तक चालू रखता है. हालांकि, आपके पास मैप के बिना नेविगेशन के निर्देशों का विकल्प देने का विकल्प होता है. इससे असली उपयोगकर्ता को बैटरी बचाने के लिए, उस विकल्प को चुनने की अनुमति मिलेगी. उदाहरण के लिए, अगर ड्राइवर एक ही इलाके में नियमित रूप से काम करते हैं, तो उन्हें मैप पर आधारित निर्देशों की ज़रूरत बार-बार नहीं पड़ती. मैप के बिना नेविगेशन की सुविधा चालू की जा सकती है. इसके लिए, Navigation SDK में मंज़िल सेट करें और निर्देश पाना शुरू करें. हालांकि, इसमें मैप नहीं दिखेगा.
GMSMapView को छिपाने के लिए, कोड की एक लाइन जोड़ें:
mapView.isHidden = true
Navigation SDK, सड़क के हिसाब से जगह की जानकारी, पहुंचने का अनुमानित समय, और यात्रा की बची हुई दूरी को अपडेट करता रहेगा. साथ ही, ड्राइवर के आगे बढ़ने पर आपका ऐप्लिकेशन, एसडीके से मिले सभी इवेंट की सदस्यता ले सकता है. यह हर स्थिति के लिए सही नहीं है. साथ ही, उन मामलों में यह सलाह सही नहीं है जहां ड्राइवर को मैप देखने और विज़ुअल गाइडेंस को फ़ॉलो करने की ज़रूरत होती है. यहां दिए गए स्क्रीनशॉट में, नेविगेशन के दौरान मैप व्यू को टॉगल करने की तुलना अगल-बगल में की गई है.
|
|
गहरे रंग वाली मैप स्टाइल का इस्तेमाल करना
मैप को स्टाइल करें, ताकि गहरे रंग वाली थीम का इस्तेमाल किया जा सके. इससे स्क्रीन पर मैप को रेंडर करने के लिए कम ऊर्जा की ज़रूरत होगी.
Navigation SDK, अपने मैप को रेंडर करने के लिए iOS के लिए Google Maps SDK का इस्तेमाल करता है. इसमें आपके ऐप्लिकेशन में नेविगेशन के अलावा किसी भी मैप व्यू को स्टाइल करने के विकल्प होते हैं. नेविगेशन व्यू में डार्क मोड को चालू करने की सुविधा भी होती है. स्क्रीन के टाइप में अंतर होने की वजह से, इसका असर हर डिवाइस पर एक जैसा नहीं हो सकता. हालांकि, कुछ मामलों में इससे बैटरी की बचत हो सकती है. हाल ही में हुई एक स्टडी में यह पता चला है कि कुछ स्क्रीन पर डार्क मोड से कितनी बैटरी बचती है. यह इस बात पर निर्भर करता है कि स्क्रीन की चमक कितनी है. उदाहरण के लिए, डार्क मोड में फ़ुल ब्राइटनेस पर सेट की गई स्क्रीन पर, ब्राइटनेस को 30 से 50% के बीच अडजस्ट करने वाली स्क्रीन की तुलना में ज़्यादा बैटरी बचती है. ऐप्लिकेशन के लिए डार्क मोड का इस्तेमाल करते समय, इस बात का ध्यान रखना ज़रूरी है. ऐसा इसलिए, क्योंकि बैटरी की बचत इस बात पर निर्भर करेगी कि उपयोगकर्ता ने स्क्रीन की रोशनी कितनी सेट की है.
नेविगेशन यूज़र इंटरफ़ेस (यूआई) में बदलाव करने के बारे में ज़्यादा जानने के लिए, यह लेख पढ़ें: नेविगेशन यूज़र इंटरफ़ेस (यूआई) में बदलाव करना.
क्लाउड पर मैप की स्टाइलिंग की सुविधा के लिए, एक मैप आईडी की ज़रूरत होती है. यह आईडी, सर्वर-साइड मैप कॉन्फ़िगरेशन को दिखाता है. इसे आपके Google Console प्रोजेक्ट में बनाया गया है. मैप आईडी बनाने के बारे में ज़्यादा जानने के लिए, मैप आईडी डेवलपर दस्तावेज़ देखें. क्लाउड पर आधारित मैप स्टाइल को डिज़ाइन और डिप्लॉय करने के बारे में ज़्यादा जानने के लिए, क्लाउड पर आधारित मैप स्टाइल बनाने और मैनेज करने से जुड़ा डेवलपर दस्तावेज़ देखें.
जीपीएस की जगह की जानकारी अपडेट करने की फ़्रीक्वेंसी बदलना
डिवाइस से भेजी गई जगह की जानकारी के अपडेट से बैटरी की खपत का आकलन करते समय, ट्रांसमिशन में भेजे गए डेटा की मात्रा के बजाय, जगह की जानकारी के अपडेट की फ़्रीक्वेंसी पर ज़्यादा ध्यान दें.
इसे सीधे तौर पर Navigation SDK में कंट्रोल नहीं किया जा सकता. जीपीएस के अलावा, जगह की जानकारी के अन्य सोर्स (सेल और वाई-फ़ाई) का इस्तेमाल करने पर भी यही सलाह लागू होती है.
अपने उपयोगकर्ताओं को सूचनाएं भेजें
आपके ऐप्लिकेशन के उपयोगकर्ता यह जानना चाहें कि वे बैटरी की खपत को कैसे ऑप्टिमाइज़ करें. अपने ऐप्लिकेशन पर बैटरी की खपत कम करने के लिए, अपने उपयोगकर्ताओं को यह सलाह दें:
- फ़ोन लॉक करो
- नेविगेशन ऐप्लिकेशन को बैकग्राउंड में रखें
- अगर हो सके, तो मैप के बिना नेविगेशन की सुविधा का इस्तेमाल करें
- ओएलईडी और एमोलेड स्क्रीन के लिए डार्क मोड का इस्तेमाल करके या अडैप्टिव ब्राइटनेस की सुविधा चालू करके, स्क्रीन की चमक कम करें
- डिवाइस को ठंडा रखें
- अगर कार में वाई-फ़ाई की सुविधा उपलब्ध है, तो उससे कनेक्ट करें
ऊर्जा की खपत का आकलन करना
बिजली की खपत को मेज़र करने के लिए, प्रोफ़ेशनल टूल का इस्तेमाल किया जा सकता है. हालांकि, इन्हें पाना अक्सर मुश्किल होता है या इनकी कीमत ज़्यादा होती है. ऐप्लिकेशन और आईडीई प्रोफ़ाइलिंग टूल, जैसे कि Android Studio में Power Profiler और XCode Organizer में बैटरी के इस्तेमाल का पैनल, बैटरी की खपत को मापते हैं. हालांकि, बैकग्राउंड प्रोसेस के असर को हटाना या परफ़ॉर्मेंस का बेसलाइन सेट करना मुश्किल हो सकता है, ताकि उसकी तुलना में परफ़ॉर्मेंस को मापा जा सके. कुछ मामलों में, डिवाइस पर लगी पाबंदियों की वजह से ज़रूरी डेटा का ऐक्सेस नहीं मिल पाता.
खास मकसद के लिए बनाए गए पावर मॉनिटरिंग हार्डवेयर का इस्तेमाल किया जा सकता है. साथ ही, बैटरी कनेक्शन के कॉन्फ़िगरेशन में बदलाव किया जा सकता है. इसके अलावा, इस काम में आपकी मदद करने के लिए, कमर्शियल प्रॉडक्ट और सेवाएं उपलब्ध हैं. ध्यान दें कि इस तरह से डिवाइसों में बदलाव करने पर, डिवाइस की वारंटी खत्म हो सकती है.