डेटा ट्रांसफ़र करने के लिए वायरलेस रेडियो का इस्तेमाल करना, आपके ऐप्लिकेशन के सबसे लोकप्रिय तरीकों में से एक है बैटरी के तेज़ी से खर्च होने के अच्छे सोर्स. डिवाइस की बैटरी के तेज़ी से खर्च होने को कम करने के लिए है, तो यह ज़रूरी है कि आप अपनी कनेक्टिविटी को समझते हों मॉडल पहले से मौजूद रेडियो हार्डवेयर पर असर डालेगा.
इस सेक्शन में वायरलेस रेडियो स्टेट मशीन के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि ऐप्लिकेशन का कनेक्टिविटी मॉडल उससे इंटरैक्ट करता है. इसके बाद, यह आपको विज्ञापन दिखाने के लिए साथ ही, इससे आपके ऐप्लिकेशन के डेटा का असर कम हो जाएगा. बैटरी पर खपत होती है.
रेडियो स्टेट मशीन
आपके उपयोगकर्ता के डिवाइस पर मौजूद वायरलेस रेडियो में, बैटरी सेव करने वाली सुविधाएं पहले से मौजूद होती हैं. इसकी मदद से, बैटरी के इस्तेमाल को कम किया जा सकता है. पूरी तरह से सक्रिय होने पर, वायरलेस रेडियो के लिए बहुत ज़्यादा पावर की खपत होती है. हालांकि, इनऐक्टिव होने या स्टैंडबाय मोड में रहने पर, रेडियो बहुत कम ऊर्जा खर्च करता है.
याद रखने वाली एक ज़रूरी बात यह है कि रेडियो को स्टैंडबाय से लेकर पूरी तरह से तुरंत ऐक्टिव हो जाए. इस प्रोसेस के दौरान, "बेहतर तरीके से तैयार करना" ट्रैक करने का एक बेहतर तरीका है. इसलिए, बैटरी ज़्यादा ऊर्जा वाली स्थिति से बदलकर, कम ऊर्जा का इस्तेमाल होने पर, ऊर्जा की खपत कम होती है. इससे बिजली की बचत होती है. "पावर अप" से जुड़ी इंतज़ार के समय को कम करने की कोशिश की जा रही है ट्रैक करने का एक बेहतर तरीका है.
किसी सामान्य 3G नेटवर्क रेडियो के लिए स्टेट मशीन में, ऊर्जा की तीन स्थितियां होती हैं:
- पूरी पावर: इसका इस्तेमाल तब किया जाता है, जब कोई कनेक्शन चालू होता है और डिवाइस को ये काम करने की अनुमति मिलती है सबसे ज़्यादा संभावित दर पर डेटा ट्रांसफ़र करते हैं.
- कम पावर: एक इंटरमीडिएट स्थिति, जो बैटरी पावर की खपत को इतनी कम करती है करीब 50% की बढ़ोतरी हुई.
- स्टैंडबाय: बैटरी की सबसे कम खपत वाली ऐसी स्थिति जिसके दौरान कोई नेटवर्क मौजूद नहीं होता कनेक्शन चालू है.
जब बैटरी कम और स्टैंडबाय मोड में रहती है, तब बैटरी काफ़ी कम खर्च होती है. नेटवर्क अनुरोधों में काफ़ी समय लग सकता है. इससे पूरी क्षमता के साथ वापस आया जा रहा है बैटरी कम होने में करीब 1.5 सेकंड लगते हैं और स्टैंडबाय मोड से बैटरी पूरी चार्ज होती है इसमें दो सेकंड लग सकते हैं.
इंतज़ार के समय को कम करने के लिए, स्टेट मशीन ट्रांज़िशन को आगे बढ़ाने में देरी का इस्तेमाल करती है इससे ऊर्जा की स्थिति कम हो सकती है. पहली इमेज में, किसी सामान्य 3G रेडियो के लिए AT&T के समय का इस्तेमाल किया गया है.
हर डिवाइस पर रेडियो स्टेट मशीन, खास तौर पर उससे जुड़ा ट्रांज़िशन देरी ("टेल टाइम") और स्टार्टअप में लगने वाला समय, वायरलेस रेडियो के आधार पर अलग-अलग होगा टेक्नोलॉजी (3G, LTE, 5G वगैरह) का इस्तेमाल किया जाता हो और यह कंपनी तय और कॉन्फ़िगर करती है मोबाइल और इंटरनेट सेवा देने वाली कंपनी का नेटवर्क, जिस पर डिवाइस काम कर रहा है.
यह पेज किसी सामान्य 3G वायरलेस के लिए प्रतिनिधि स्टेट मशीन के बारे में बताता है AT&T से मिले डेटा के आधार पर रेडियो स्टेशन. हालांकि, सामान्य सिद्धांत और नतीजे देने के लिए सबसे सही तरीके सभी वायरलेस रेडियो इंप्लिमेंटेशन पर लागू होते हैं.
यह तरीका खास तौर पर मोबाइल वेब ब्राउज़िंग के लिए असरदार है, क्योंकि यह उपयोगकर्ताओं के वेब ब्राउज़ करने के दौरान, इंतज़ार का समय बेवजह नहीं होने देता. तुलनात्मक रूप से कम टेल-टाइम यह भी पक्का करता है कि एक बार ब्राउज़िंग सेशन खत्म होने के बाद, रेडियो ऊर्जा की कम स्थिति पर जाएं.
दुर्भाग्य से, इस तरीके की वजह से मॉडर्न स्मार्टफ़ोन पर गलत ऐप्लिकेशन बन सकते हैं ऑपरेटिंग सिस्टम, जैसे कि Android, जिसमें ऐप्लिकेशन फ़ोरग्राउंड में (जहां) इंतज़ार का समय ज़रूरी है) और बैकग्राउंड में (जहां बैटरी लाइफ़ होनी चाहिए) प्राथमिकता दी जाती है).
रेडियो स्टेट मशीन पर ऐप्लिकेशन कैसे असर डालते हैं
हर बार नया नेटवर्क कनेक्शन बनाने पर, रेडियो इस पूरी तरह से चार्ज हो गया है. सामान्य 3G रेडियो स्टेट मशीन के मामले में इससे पहले, ट्रांसफ़र करने की अवधि के दौरान यह पूरी तरह से काम करता रहेगा—साथ ही कम ऊर्जा का इस्तेमाल करने पर, टेल टाइम और 5 सेकंड आगे बढ़ जाएंगे. इसके बाद, कम ऊर्जा का इस्तेमाल करने पर 12 सेकंड लगेंगे राज्य. इसलिए किसी सामान्य 3G डिवाइस के लिए, हर डेटा ट्रांसफ़र सेशन में रेडियो स्टेशन का इस्तेमाल करें.
इसका मतलब यह है कि कोई ऐप्लिकेशन जो एक सेकंड में डेटा ट्रांसफ़र करता है, एक मिनट में तीन बार, वायरलेस रेडियो को स्थायी रूप से सक्रिय रखते हुए उसे आगे ले जाएगा जैसे कि यह स्टैंडबाय मोड में चल रहा है.
तुलना के हिसाब से, अगर समान ऐप्लिकेशन ने डेटा ट्रांसफ़र को एक साथ बंडल किया है, तो सिर्फ़ एक वर्शन चलाया जा रहा है जिससे हर मिनट तीन सेकंड का डेटा ट्रांसफ़र किया जाता है. इससे रेडियो की बहुत ज़्यादा क्षमता रहती है यह अवधि हर मिनट सिर्फ़ 20 सेकंड होती है. इससे रेडियो ये काम कर पाएगा हर मिनट के 40 सेकंड तक स्टैंडबाय मोड में रहती है. इसकी वजह से, बैटरी की खपत कम हो गई है.
ऑप्टिमाइज़ेशन तकनीकें
अब आपको पता चल गया है कि नेटवर्क का ऐक्सेस, बैटरी लाइफ़ पर कैसे असर डालता है. आइए, अब बात करते हैं बैटरी को खर्च होने से बचाने के साथ ही, कुछ ऐसी चीज़ों के बारे में भी बताया गया है एक तेज़ और तरल उपयोगकर्ता अनुभव उपलब्ध कराकर.
बंडल डेटा ट्रांसफ़र
जैसा कि पिछले सेक्शन में बताया गया है, अपने डेटा ट्रांसफ़र का बंडल बनाना, ताकि आप कम बार ज़्यादा डेटा ट्रांसफ़र करना, बैटरी को बेहतर बनाने के सबसे अच्छे तरीकों में से एक है क्षमता.
बेशक, अगर आपके ऐप्लिकेशन को चाहिए कि वह उपयोगकर्ता की कार्रवाई के जवाब में तुरंत डेटा भेजें. इसे कम किया जा सकता है डेटा का अनुमान लगाने और डेटा को प्रीफ़ेच करने के बारे में जानकारी शामिल होती है. अन्य स्थितियां, जैसे कि ऐप्लिकेशन की मदद से शुरू किया गया, सर्वर और अन्य गैर-ज़रूरी डेटा को लॉग या आंकड़े भेजना ट्रांसफ़र करता है, बैच बनाने और बंडल करने में काफ़ी मदद करता है. ऑप्टिमाइज़ करना देखें ऐप्लिकेशन की मदद से शुरू किया गया Tasks बैकग्राउंड नेटवर्क ट्रांसफ़र शेड्यूल करने से जुड़ी सलाह.
डेटा प्रीफ़ेच करें
डेटा को प्रीफ़ेच करने की सुविधा, इंडिपेंडेंट वैल्यू की संख्या को कम करने का एक और असरदार तरीका है डेटा ट्रांसफ़र के इन सेशन को जारी रखता है जिन्हें आपका ऐप्लिकेशन चलाता है. प्रीफ़ेच करने के दौरान, जब उपयोगकर्ता आपके ऐप्लिकेशन में कोई कार्रवाई करता है, तो ऐप्लिकेशन अनुमान लगाता है कि किस डेटा के उपयोगकर्ता की कार्रवाइयों की अगली सीरीज़ के लिए ज़रूरी हो और उस डेटा को एक ही बार में फ़ेच किया जा सके एक कनेक्शन पर, पूरी क्षमता से बर्स्ट.
डेटा ट्रांसफ़र को फ़्रंट-लोड करके, रेडियो स्टेशन के ऐक्टिवेशन को कम किया जा सकता है डेटा डाउनलोड करने के लिए ज़रूरी है. इस तरह, आपके डिवाइस की बैटरी लाइफ़ भी बढ़ती है, साथ ही, इंतज़ार का समय भी बेहतर होता है, ज़रूरी बैंडविड्थ कम होता है, और डाउनलोड कम होता है बार.
प्रीफ़ेच करने की सुविधा से, ऐप्लिकेशन में मौजूद उपयोगकर्ताओं की संख्या को कम करके, बेहतर उपयोगकर्ता अनुभव मिलता है कोई कार्रवाई करने से पहले, डाउनलोड पूरा होने का इंतज़ार करने की वजह से इंतज़ार का समय देखने के लिए बढ़ावा दिया जाता है.
यहां एक व्यावहारिक उदाहरण दिया गया है.
न्यूज़ रीडर
कई समाचार ऐप्लिकेशन, इंटरनेट की रफ़्तार कम करने की कोशिश करते हैं. इसके लिए, लेख की कैटगरी चुनी गई हो. पूरे लेख सिर्फ़ तब दिखते हैं, जब उपयोगकर्ता उन्हें पढ़ना चाहता हो, और थंबनेल, जैसे कि वे स्क्रोल करके व्यू में दिखते हैं.
इस तरीके का इस्तेमाल करते हुए, रेडियो ज़्यादातर लोगों के लिए चालू रहता है उपयोगकर्ताओं का समाचार पढ़ने के सत्र के दौरान, जब वे हेडलाइन स्क्रोल करते हैं, कैटगरी बदलते हैं, और लेख पढ़ना. इतना ही नहीं, ऊर्जा की स्थितियों के बीच लगातार स्विच करने पर भी इससे कैटगरी बदलते समय या कॉन्टेंट पढ़ने में काफ़ी समय लगता है लेख.
बेहतर तरीका यह है कि स्टार्टअप के समय ज़रूरत के हिसाब से डेटा प्रीफ़ेच किया जाए. जिसमें खबरों की हेडलाइन और थंबनेल के पहले सेट से शुरुआत है—यह पक्का करने के लिए कि ऐप्लिकेशन के खुलने में कम समय लगता है. साथ ही, बाकी बचे हेडलाइन के साथ-साथ, थंबनेल और लेख का टेक्स्ट कम से कम मुख्य हेडलाइन सूची.
दूसरा विकल्प यह है कि हर हेडलाइन, थंबनेल, लेख के टेक्स्ट, और शायद पूरे लेखों की तस्वीरें भी—आम तौर पर, बैकग्राउंड में पहले से तय शेड्यूल. यह तरीका बहुत ज़्यादा बैंडविड्थ खर्च करने और ऐसी सामग्री डाउनलोड करने की बैटरी लाइफ़ जो कभी उपयोग न हो, इसलिए इसे लागू किया जाना चाहिए सावधानी से इस्तेमाल करना चाहिए.
ज़्यादा जानकारी
डेटा को प्रीफ़ेच करने के कई फ़ायदे होते हैं, लेकिन इसका इस्तेमाल बहुत ज़्यादा करता है प्रीफ़ेच करने से बैटरी के तेज़ी से खर्च होने और बैंडविथ बढ़ने का जोखिम भी होता है इस्तेमाल न किए जाने वाले डेटा को डाउनलोड करके—साथ ही डाउनलोड कोटा चुनें. यह भी यह सुनिश्चित करना ज़रूरी है कि प्रीफ़ेच करने से ऐप्लिकेशन शुरू होने में देरी न हो जबकि ऐप्लिकेशन प्रीफ़ेच के पूरा होने का इंतज़ार करता है. व्यावहारिक तौर पर इसका मतलब है कि डेटा को धीरे-धीरे प्रोसेस किया जा रहा हो या प्राथमिकता के आधार पर लगातार ट्रांसफ़र किया जा रहा हो ताकि ऐप्लिकेशन शुरू होने के लिए ज़रूरी डेटा डाउनलोड और प्रोसेस हो जाए चुनें.
आपने डेटा को कितनी तेज़ी से प्रीफ़ेच किया है, यह डेटा के साइज़ पर निर्भर करता है डाउनलोड किए जाने की संभावना के बारे में बताया गया है. एक मौज़ूद गाइड के तौर पर, स्टेट मशीन के बारे में बताया गया है. यह ऐसा डेटा होता है जिसे इस्तेमाल किए जाने की संभावना 50% होती है मौजूदा उपयोगकर्ता सेशन में, आम तौर पर करीब 6 सेकंड के लिए प्रीफ़ेच किया जा सकता है (करीब 1-2 मेगाबाइट) और इस्तेमाल न की गई किसी फ़ाइल को डाउनलोड करने में आने वाली संभावित लागत से पहले डेटा, उस डेटा को डाउनलोड न करने से होने वाली संभावित बचत से मेल खाता है.
आम तौर पर, डेटा को प्रीफ़ेच करना बेहतर होता है. ऐसा इसलिए, ताकि आप सिर्फ़ हर दो से पांच मिनट में एक और डाउनलोड शुरू करना होगा और 5 मेगाबाइट.
इस सिद्धांत के मुताबिक, वीडियो फ़ाइलों जैसी बड़ी डाउनलोड के लिए यह ज़रूरी है कि नियमित अंतराल पर (हर 2 से 5 मिनट में) अलग-अलग हिस्सों में डाउनलोड किया जाता है. सिर्फ़ उस वीडियो डेटा को प्रीफ़ेच करना जो अगले कुछ मिनट में देखे जा सकते हैं.
इसका एक हल यह है कि पूरा डाउनलोड शेड्यूल किया जाए, ताकि वह इंटरनेट से कनेक्ट होने पर ही डाउनलोड हो वाई-फ़ाई उपलब्ध कराएं और सिर्फ़ तब, जब डिवाइस चार्ज हो रहा हो. कॉन्टेंट बनाने WorkManager एपीआई इस्तेमाल के इस उदाहरण के साथ काम करता है, जिससे आपको बैकग्राउंड में होने वाले काम को सीमित करने की सुविधा मिलती है जब तक कि डिवाइस डेवलपर की तय की गई शर्तों को पूरा न कर ले, जैसे कि चार्जिंग और वाई-फ़ाई से कनेक्ट किया जा रहा है.
अनुरोध करने से पहले, कनेक्टिविटी की जांच कर लें
सेल सिग्नल की खोज करना, सेल सिग्नल को सबसे ज़्यादा बैटरी खर्च करने वाली कार्रवाइयों में से एक है
मोबाइल डिवाइस. उपयोगकर्ता की ओर से किए गए अनुरोधों के लिए सबसे सही तरीका यह है कि
इसका इस्तेमाल करके
ConnectivityManager
, जैसा कि यहां दिखाया गया है
कनेक्टिविटी की स्थिति और कनेक्शन की निगरानी करें
मीटरिंग.
नेटवर्क न होने पर, ऐप्लिकेशन मोबाइल रेडियो को ज़बरदस्ती रोके बिना बैटरी बचा सकता है
टैप करें. इसके बाद, अनुरोध को शेड्यूल करके उस बैच में भेजा जा सकता है
कनेक्शन बनाने पर अनुरोध करता है.
पूल कनेक्शन
बैच बनाने और प्रीफ़ेच करने के अलावा, यह एक और रणनीति है जो मदद कर सकती है आपके ऐप्लिकेशन के नेटवर्क कनेक्शन को पूल करने के लिए.
आम तौर पर, मौजूदा इंटरनेट कनेक्शन का फिर से इस्तेमाल करना ज़्यादा कारगर साबित होता है नए प्रोजेक्ट बनाने के लिए भी किया जा सकता है. कनेक्शन का दोबारा इस्तेमाल करने पर, नेटवर्क ये काम भी कर पाता है कंजेशन और नेटवर्क डेटा से जुड़ी समस्याओं पर ज़्यादा आसानी से प्रतिक्रिया देने के लिए.
HttpURLConnection
और ज़्यादातर एचटीटीपी
क्लाइंट, जैसे कि OkHttp, चालू करने पर
डिफ़ॉल्ट रूप से कनेक्शन-पूलिंग और कई
अनुरोध.
रीकैप और आगे की तैयारी
इस सेक्शन में आपने वायरलेस रेडियो और उससे जुड़ी कुछ रणनीतियों के बारे में बहुत कुछ सीखा को तेज़ी से और रिस्पॉन्सिव उपयोगकर्ता अनुभव देने के लिए बड़े पैमाने पर आवेदन कर सकते हैं. साथ ही, बैटरी को तेज़ी से खर्च होने से बचाने के लिए किया जा सकता है.
अगले सेक्शन में, हम तीन अलग-अलग तरह की ज़्यादातर ऐप्लिकेशन के साथ आम तौर पर होने वाले नेटवर्क इंटरैक्शन. आप हर एक के लिए ड्राइवर के बारे में जानेंगे साथ ही, इन संसाधनों को मैनेज करने के लिए आधुनिक तकनीकों और एपीआई का इस्तेमाल करें इंटरैक्शन बेहतर ढंग से करते हैं.