अलग-अलग कॉम्पोनेंट में ऊर्जा की खपत का पता लगाने के लिए, डिवाइस, जब कॉम्पोनेंट अपनी पसंद की स्थिति में हो (जैसे, चालू हो, स्कैन किया जा रहा हो) और जब कॉम्पोनेंट बंद है. किसी डिवाइस पर निकाले गए औसत करंट को एक्सटर्नल पावर मॉनिटर का इस्तेमाल करके नॉमिनल वोल्टेज, जैसे कि बेंच पावर सप्लाई या खास तरह के पावर मॉनिटर बैटरी मॉनिटर करने वाले टूल, जैसे कि Monsoon Solution Inc. Power Monitor और Power Tool सॉफ़्टवेयर).
मैन्युफ़ैक्चरर अक्सर इस बात की जानकारी देते हैं कि मौजूदा कॉम्पोनेंट में किसी कॉम्पोनेंट का इस्तेमाल किया गया है या नहीं. इस जानकारी का इस्तेमाल तब करें, जब यह डिवाइस की बैटरी से लिए गए मौजूदा डेटा को सटीक तरीके से दिखाती हो करते हैं. हालांकि, अपने डिवाइस में इन वैल्यू का इस्तेमाल करने से पहले, मैन्युफ़ैक्चरर की दी गई वैल्यू की पुष्टि करें पावर प्रोफ़ाइल.
ऊर्जा की खपत को कंट्रोल करें
मापते समय, पक्का करें कि डिवाइस का चार्जिंग सोर्स, जैसे कि किसी बाहरी सोर्स से जुड़ा न हो का इस्तेमाल, किसी डेवलपमेंट होस्ट से यूएसबी कनेक्शन के तौर पर करता है. इसका इस्तेमाल Android डीबग ब्रिज (adb) को चलाने में होता है. डिवाइस टेस्ट में, होस्ट से करंट मिल सकता है. इससे बैटरी की माप कम हो जाएगी. यूएसबी का इस्तेमाल न करें ऑन-द-गो (ओटीजी) कनेक्शन, क्योंकि ओटीजी डिवाइस, टेस्ट किए जा रहे डिवाइस से मौजूदा जानकारी का इस्तेमाल कर सकते हैं.
मेज़र किए जा रहे कॉम्पोनेंट को छोड़कर, सिस्टम को लगातार पावर सप्लाई पर काम करना चाहिए इस्तेमाल करना, ताकि दूसरे कॉम्पोनेंट में बदलाव की वजह से गलत मेज़रमेंट से बचा जा सके. प्रणाली पावर मेज़रमेंट में अनचाहे बदलाव करने वाली गतिविधियों में ये शामिल हैं:
- मोबाइल, वाई-फ़ाई, और ब्लूटूथ के ज़रिए डेटा पाने, ट्रांसमिट करने या स्कैन करने की गतिविधि. टास्क कब शुरू होगा सेल रेडियो पावर को माप नहीं रहा है, डिवाइस को हवाई जहाज़ मोड पर सेट करें और वाई-फ़ाई या ब्लूटूथ को उचित.
- स्क्रीन चालू/बंद करें. स्क्रीन चालू होने पर दिखने वाले रंग, पावर ड्रॉ पर असर डाल सकते हैं इस्तेमाल किया जा सकता है. नॉन-स्क्रीन कॉम्पोनेंट की वैल्यू मेज़र करते समय, स्क्रीन बंद करें.
- सिस्टम को निलंबित करना/फिर से शुरू करना. स्क्रीन बंद होने की स्थिति में, सिस्टम निलंबित हो सकता है. डिवाइस के हिस्सों को कम पावर या बंद स्थिति में रखना. इससे बिजली की खपत पर असर पड़ सकता है कॉम्पोनेंट को मापा जा रहा है. साथ ही, समय-समय पर सिस्टम के रूप में, पावर रीडिंग में बड़े बदलाव किए गए हैं अलार्म वगैरह भेजने के लिए फिर से शुरू कर देता है. ज़्यादा जानकारी के लिए, कंट्रोलिंग सिस्टम देखें निलंबित करें.
- सीपीयू की मदद से स्पीड को बदला जा रहा है और कम पावर वाले शेड्यूलर के इस्तेमाल में न होने की स्थिति से बाहर निकला जा सकता है.
सामान्य ऑपरेशन के दौरान, सिस्टम सीपीयू की स्पीड में बार-बार बदलाव करता है.
सीपीयू कोर और अन्य सिस्टम कोर स्टेट, जैसे कि मेमोरी बस की स्पीड और पावर रेल के वोल्टेज
सीपीयू और मेमोरी से जुड़ा होता है. जांच के दौरान, इन बदलावों से पावर मेज़रमेंट पर असर पड़ता है:
- सीपीयू की स्पीड स्केलिंग से, मेमोरी बसों में क्लॉक और वोल्टेज स्केलिंग की मात्रा कम हो सकती है और सिस्टम के अन्य मुख्य कॉम्पोनेंट शामिल हैं.
- शेड्यूल की गई गतिविधि, कम पावर वाले डिवाइस पर इस्तेमाल में न होने पर, सीपीयू के खर्च के प्रतिशत पर असर डाल सकती है. टेस्टिंग के दौरान इन अडजस्टमेंट को रोकने के बारे में जानने के लिए, यह देखें सीपीयू की स्पीड कंट्रोल करना.
उदाहरण के लिए, Joe Droid किसी डिवाइस के लिए screen.on
वैल्यू का पता लगाना चाहता है. वह
डिवाइस पर हवाई जहाज़ मोड चालू करता है, डिवाइस को मौजूदा स्थिति में स्थिर रखता है, सीपीयू को रोकता है
स्पीड कॉन्स्टेंट है और सिस्टम को निलंबित होने से रोकने के लिए, पार्शियल वेकलॉक का इस्तेमाल करता है. जो इसके बाद डिवाइस को पलट देता है
स्क्रीन बंद होती है और माप (200 mA) लेता है. इसके बाद, जो कम से कम डिवाइस की स्क्रीन चालू कर देता है
चमकता है और दूसरा माप (300 mA) लेता है. screen.on
की वैल्यू यह है
100 mA (300 - 200).
ध्यान दें: ऐसे कॉम्पोनेंट के लिए जिनमें मौजूदा खपत का फ़्लैट वेवफ़ॉर्म नहीं होता. ऐसा तब होता है, जब (जैसे कि सेल्युलर रेडियो या वाई-फ़ाई), किसी पावर का उपयोग करके समय के साथ औसत करंट को मापें मॉनिटरिंग टूल.
डिवाइस की बैटरी के बजाय, किसी बाहरी पावर सोर्स का इस्तेमाल करने पर, सिस्टम को इन समस्याओं का सामना करना पड़ सकता है बैटरी थर्मिस्टर से कनेक्ट न होने या इंटिग्रेट किए गए ईंधन गेज के पिन की वजह से होने वाली समस्याएं (यानी बैटरी के तापमान या बची हुई बैटरी की क्षमता की रीडिंग लेने से कर्नेल या Android बंद हो सकता है सिस्टम). नकली बैटरी से, थर्मिस्टर या फ़्यूल गेज के ऐसे पिन पर सिग्नल मिल सकते हैं जो तापमान की तरह दिखते हैं और सामान्य सिस्टम के लिए शुल्क की स्थिति का पता लगाने के साथ-साथ बाहरी पावर सप्लाई से कनेक्ट करना. इसके अलावा, सिस्टम में बदलाव करके उसे अनदेखा किया जा सकता है अनुपलब्ध बैटरी से अमान्य डेटा.
सिस्टम के निलंबन को कंट्रोल करें
इस सेक्शन में बताया गया है कि जब आपको किसी रुकावट का असर न पड़े, तो सिस्टम को निलंबित होने से कैसे बचाएं और इस तरीके से, सिस्टम सस्पेंड स्टेट की पावर ड्रॉ को मेज़र करने का तरीका जानें. उसे मापना है.
सिस्टम को निलंबित होने से बचाएं
सिस्टम निलंबित होने की वजह से, पावर मेज़रमेंट और जगह के सिस्टम के कॉम्पोनेंट में अनचाहा बदलाव हो सकता है कम पावर वाली स्थितियों में पावर के इस्तेमाल को मेज़र करना सही नहीं है. सिस्टम को स्क्रीन के बंद होने पर, स्क्रीन के कुछ हिस्से पर वेकलॉक का इस्तेमाल करें. यूएसबी केबल का इस्तेमाल करके, कनेक्ट करें डिवाइस को किसी डेवलपमेंट होस्ट से कनेक्ट करें, फिर निम्न आदेश जारी करें:
adb shell "echo temporary > /sys/power/wake_lock"
wake_lock
में, डिवाइस की स्क्रीन बंद होने की स्थिति में, सिस्टम निलंबित नहीं होता.
(ऊर्जा की खपत मापने से पहले डिवाइस से यूएसबी केबल डिसकनेक्ट करना न भूलें.)
वेकलॉक हटाने के लिए:
adb shell "echo temporary > /sys/power/wake_unlock"
सिस्टम के निलंबन को मापने की सुविधा
सिस्टम की निलंबन स्थिति के दौरान पावर ड्रॉ को मापने के लिए,
पावर प्रोफ़ाइल में cpu.idle
. आकलन करने से पहले:
- मौजूदा वेकलॉक हटाएं (जैसा कि ऊपर बताया गया है).
- डिवाइस को हवाई जहाज़ मोड में रखें, ताकि उस सेल्युलर रेडियो से एक ही समय पर होने वाली गतिविधि से बचा जा सके. ऐसे प्रोसेसर पर चल सकता है जो सिस्टम सस्पेंड से कंट्रोल किए जाने वाले SoC हिस्सों से अलग हो.
- यह तरीका अपनाकर पक्का करें कि सिस्टम निलंबित स्थिति में है:
- मौजूदा रीडिंग की पुष्टि करने पर, वैल्यू स्थिर रहती है. रीडिंग उम्मीद के मुताबिक होनी चाहिए SoC की निलंबित स्थिति के साथ-साथ सिस्टम की ऊर्जा की खपत की सीमा चलने वाले कॉम्पोनेंट (जैसे कि यूएसबी पीएचवाई).
- सिस्टम कंसोल आउटपुट की जांच की जा रही है.
- सिस्टम की स्थिति के बारे में बाहरी संकेत देखना (जैसे, आस-पास न होने पर एलईडी लाइट बंद होना) निलंबित करें).
सीपीयू की स्पीड कंट्रोल करना
चालू सीपीयू को ऑनलाइन लाया जा सकता है या ऑफ़लाइन रखा जा सकता है. साथ ही, इनकी क्लॉक स्पीड और दूसरे कनेक्शन के साथ वोल्टेज में बदलाव हुआ है. इस वजह से, मेमोरी बस की स्पीड और सिस्टम की कोर पावर की अन्य स्थितियों पर असर पड़ सकता है, और कर्नेल निष्क्रिय लूप में, कम पावर निष्क्रिय स्थिति डाल सकता है. अलग-अलग सीपीयू मेज़र करते समय पावर प्रोफ़ाइल के लिए पावर स्टेट, अन्य पैरामीटर को मापते समय पावर ड्रॉ वैरियंस से बचें. पावर प्रोफ़ाइल के हिसाब से, सभी सीपीयू की स्पीड और पावर की विशेषताएं एक जैसी होती हैं.
CPU पावर को मापते समय, या अन्य मापन करने के लिए CPU पावर को स्थिर रखते हुए,
ऐसे सीपीयू की संख्या जिनकी वजह से ऑनलाइन कॉन्सटेंट एक जैसा हो जाता है. जैसे, एक सीपीयू का ऑनलाइन होना और बाकी
ऑफ़लाइन/हॉटप् लग आउट). शेड्यूल किए गए किसी एक सीपीयू को छोड़कर, बाकी सभी सीपीयू को इस्तेमाल करने की अनुमति हो सकती है
नतीजे. Android फ़्रेमवर्क को adb shell stop
के साथ रोकने से, सिस्टम पर असर पड़ सकता है
गतिविधि शेड्यूल की जा रही है.
आपको पावर प्रोफ़ाइल में अपने डिवाइस के लिए, सीपीयू की उपलब्ध स्पीड की जानकारी देनी होगी
cpu.speeds
एंट्री. उपलब्ध सीपीयू स्पीड की सूची पाने के लिए, इसे चलाएं:
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
ये स्पीड, वैल्यू cpu.active
में दिए गए पावर मेज़रमेंट से मेल खाती हैं.
ऐसे प्लैटफ़ॉर्म के लिए जहां ऑनलाइन खरीदे जाने वाले कोर, ऊर्जा की खपत को काफ़ी हद तक प्रभावित करते हैं, तो आपके पास प्लैटफ़ॉर्म के लिए, cpufreq ड्राइवर या गवर्नर में बदलाव करने की ज़रूरत पड़ सकती है. ज़्यादातर प्लैटफ़ॉर्म, एक से ज़्यादा प्लैटफ़ॉर्म पर काम करते हैं सीपीयू की स्पीड को कंट्रोल करने के लिए, यूज़रस्पेस cpufreq गवर्नर का इस्तेमाल करें और sysfs इंटरफ़ेस का इस्तेमाल करके स्पीड. उदाहरण के लिए, सिर्फ़ एक सीपीयू या सभी सीपीयू वाले सिस्टम पर 200 मेगाहर्ट्ज़ की स्पीड सेट करने के लिए सामान्य cpufreq नीति के तहत, नीचे दिए गए कमांड चलाने के लिए सिस्टम कंसोल या adb शेल का इस्तेमाल करें:
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
ध्यान दें: प्लैटफ़ॉर्म cpufreq को लागू करने के आधार पर, सटीक निर्देश अलग-अलग होते हैं.
इन निर्देशों से यह पक्का होता है कि नई रफ़्तार तय सीमा से बाहर न हो. इसके बाद, नई रफ़्तार सेट करें. पुष्टि करने के लिए, उस स्पीड को प्रिंट करें जिस पर सीपीयू असल में चल रहा है. अगर मौजूदा एक्ज़िक्यूशन से पहले की कम से कम स्पीड 2,00,000 से ज़्यादा है, तो आपको क्रम उलटना पड़ सकता है रिकॉर्ड करना है या ज़्यादा से ज़्यादा स्पीड सेट कर रही हूँ.
अलग-अलग स्पीड से चलने वाले सीपीयू के, मौजूदा इस्तेमाल को मापने के लिए, सिस्टम कंसोल का इस्तेमाल करें इस कमांड का इस्तेमाल करके:
# while true; do true; done
लूप के चलने के दौरान माप लें.
कुछ डिवाइस, सीपीयू की ज़्यादा स्पीड की वजह से थर्मल थ्रॉटलिंग करते समय, सीपीयू की ज़्यादा से ज़्यादा स्पीड को कम कर सकते हैं तापमान को मापना. इसका मतलब है कि लंबे समय तक सीपीयू को तेज़ स्पीड पर चलाने के बाद. इसे देखें इन सीमाओं को सीमित किया जा सकता है. इसके लिए, मेज़रमेंट के दौरान सिस्टम कंसोल आउटपुट का इस्तेमाल किया जाता है या कर्नेल लॉग डालें.
cpu.awake
वैल्यू के लिए, देखें कि सिस्टम, पावर सप्लाई में कितनी ऊर्जा का इस्तेमाल कर रहा है
निलंबित किया जा सकता है, लेकिन टास्क को एक्ज़ीक्यूट नहीं किया जा रहा है. सीपीयू, कम पावर वाले शेड्यूलर लूप लूप में होना चाहिए
ऐसा हो सकता है कि एआरएम 'इवेंट के लिए इंतज़ार करें' निर्देश का इस्तेमाल किया जा रहा हो या किसी खास SoC के लिए कम पावर वाली स्थिति में
निष्क्रिय उपयोग के लिए उपयुक्त तेज़ी से निकलने की प्रतीक्षा अवधि के साथ.
cpu.active
वैल्यू के लिए, पावर को तब मेज़र करें, जब सिस्टम सस्पेंड मोड में न हो और
कोई टास्क नहीं हो रहा है. एक सीपीयू (आम तौर पर मुख्य सीपीयू) को टास्क चलाना चाहिए, जबकि बाकी सभी सीपीयू को चलाना चाहिए
प्रयोग में नहीं होना चाहिए.
स्क्रीन की पावर मापें
स्क्रीन पावर पर मापते समय, यह पक्का करें कि जब दूसरे डिवाइस आम तौर पर चालू हों, तब ऐसा होता है: चालू हैं, तो वे भी चालू होते हैं. उदाहरण के लिए, अगर टचस्क्रीन और डिस्प्ले बैकलाइट सामान्य रूप से चालू रहती जब स्क्रीन चालू हो, तो पक्का करें कि ये डिवाइस तब भी चालू हों, जब आप पावर इस्तेमाल करने की स्क्रीन.
कुछ डिसप्ले टेक्नोलॉजी, दिखाए गए रंगों के हिसाब से बिजली की खपत में अलग-अलग होती हैं. इसकी वजह से पावर माप के लिए, स्क्रीन पर दिखाए जा रहे कॉन्टेंट के आधार पर, पावर की माप में काफ़ी अंतर हो सकता है और उन्हें मापा जा सकता है. मापते समय, पक्का करें कि स्क्रीन पर कोई ऐसी चीज़ दिख रही हो जो चार्ज हो रही है दिखने वाली स्क्रीन की विशेषताएं. पूरी तरह काली स्क्रीन के चरमों पर निशाना लगाएं कुछ टेक्नोलॉजी के लिए सबसे कम पावर का इस्तेमाल करती है) और पूरी तरह से सफ़ेद स्क्रीन होती है. व्यू का एक सामान्य विकल्प है कैलेंडर ऐप्लिकेशन में एक शेड्यूल का इस्तेमाल करें, जिसमें सफ़ेद बैकग्राउंड और गैर-सफ़ेद एलिमेंट, दोनों शामिल हैं.
स्क्रीन को चालू होने पर उसकी डिसप्ले/बैकलाइट की चमक, कम से कम और ज़्यादा से ज़्यादा पर मापें. स्क्रीन की रोशनी के सबसे कम लेवल को सेट करने के लिए:
- Android यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करें (हम इसका सुझाव नहीं देते). सेटिंग सेट करें > डिसप्ले की रोशनी स्लाइडर की मदद से, डिसप्ले की कम से कम चमक पर सेट करें. हालांकि, Android यूज़र इंटरफ़ेस (यूआई), फ़ोटो की चमक को सिर्फ़ इस तरह सेट करने की अनुमति देता है: पैनल या बैकलाइट की चमक का कम से कम 10-20% होना चाहिए. साथ ही, इस सेटिंग की अनुमति नहीं है चमक इतनी कम है कि हो सकता है कि बहुत कोशिश किए बिना स्क्रीन न दिखे.
- sysfs फ़ाइल का इस्तेमाल करें (सुझाया गया). उपलब्ध होने पर, कंट्रोल करने के लिए sysfs फ़ाइल का इस्तेमाल करें पैनल की चमक पूरी तरह से कम करके हार्डवेयर के साथ काम करने वाली कम से कम चमक तक हो.
इसके अलावा, अगर प्लैटफ़ॉर्म sysfs फ़ाइल एलसीडी पैनल, बैकलाइट, और टचस्क्रीन को चालू या बंद करने के लिए, स्क्रीन के चालू और बंद होने पर फ़ाइल का इस्तेमाल करके माप लें. या फिर, पार्शियल वेकलॉक सेट करें, ताकि सिस्टम निलंबित न हो. इसके बाद, अपने फ़ोन को चालू या बंद करें.
वाई-फ़ाई की पावर मापें
कम सुविधाओं वाले नेटवर्क पर वाई-फ़ाई मापें. अतिरिक्त वीडियो बनाने से बचें ब्रॉडकास्ट ट्रैफ़िक के ज़्यादा वॉल्यूम को प्रोसेस करना, जो मेज़र की जा रही गतिविधि से नहीं जुड़ा हो.
wifi.on
वैल्यू से पता चलता है कि वाई-फ़ाई चालू होने पर कितनी बिजली खर्च हुई. हालांकि, यह वैल्यू सिर्फ़ वाई-फ़ाई चालू होने पर खर्च होती है
जो ऐक्टिव तौर पर ट्रांसमिट या मिल रही हो. इसे अक्सर मौजूदा ड्रॉ के बीच के डेल्टा के रूप में मापा जाता है
चालू वाई-फ़ाई बनाम बंद के साथ सिस्टम निलंबन (स्लीप) स्थिति.
wifi.scan
वैल्यू, ऐक्सेस के लिए वाई-फ़ाई स्कैन के दौरान बिजली की खपत को मापती है
अंक. ऐप्लिकेशन, WifiManager क्लास का इस्तेमाल करके वाई-फ़ाई स्कैन को ट्रिगर कर सकते हैं
startScan()
एपीआई. सेटिंग > वाई-फ़ाई, जो ऐक्सेस पॉइंट का इस्तेमाल करता है
बैटरी की खपत बढ़ने के साथ-साथ हर कुछ सेकंड पर तेज़ी से स्कैन करता है, लेकिन स्क्रीन को घटाना होगा
इन मापों से पावर सप्लाई मिलती है.
ध्यान दें: कंट्रोल किए गए सेटअप का इस्तेमाल करें, जैसे कि iperf) की मदद से, नेटवर्क पाने और ट्रांसमिट करने की सुविधा जनरेट की जा सकती है किया जा सकता है.