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