डिवाइस बनाने वाली कंपनियों को /frameworks/base/core/res/res/xml/power_profile.xml
में कॉम्पोनेंट की पावर प्रोफ़ाइल देनी होगी.
पावर प्रोफ़ाइल की वैल्यू तय करने के लिए, ऐसे हार्डवेयर का इस्तेमाल करें जो पावर को मापता है जिसे डिवाइस में इस्तेमाल किया जा रहा हो. साथ ही, इससे वे अलग-अलग काम किए जा सकें जिनके लिए जानकारी चाहिए. उन संक्रियाओं के दौरान ऊर्जा के उपयोग का आकलन करें और गणना करें वैल्यू (अन्य बेसलाइन पावर के इस्तेमाल से अंतर के हिसाब से)
पावर प्रोफ़ाइल का मकसद, बैटरी खर्च होने का सही अनुमान लगाना है. इसलिए, पावर प्रोफ़ाइल की वैल्यू, ऐंपियर में दी जाती हैं. Android फ़्रेमवर्क वर्तमान को उस समय से गुणा करता है जब सबसिस्टम सक्रिय था और mAh मान की गणना करता है, जिसका इस्तेमाल बैटरी की मात्रा का अनुमान लगाने के लिए किया जाता है को ऐप या सबसिस्टम से निकाल दिया जाता है.
Android 7.0 और इसके बाद के वर्शन पर चलने वाले, ब्लूटूथ, मॉडेम, और वाई-फ़ाई कंट्रोलर वाले डिवाइसों में, चिपसेट डेटा से मिली अतिरिक्त पावर वैल्यू मिल सकती हैं.
ऐसे डिवाइस जिनमें अलग-अलग तरह का सीपीयू होता है
विषम आर्किटेक्चर वाले सीपीयू कोर वाले डिवाइसों के लिए पावर प्रोफ़ाइल इसमें नीचे दिए गए अतिरिक्त फ़ील्ड भी शामिल होने चाहिए:
- हर क्लस्टर के लिए कुल सीपीयू की संख्या (cpu.clusters.cores में दी गई).
- हर क्लस्टर में इस्तेमाल होने वाली सीपीयू की स्पीड.
- हर क्लस्टर के लिए, सीपीयू की खपत.
क्लस्टर के लिए, सीपीयू की चालू बिजली की खपत और काम करने वाली सीपीयू की स्पीड के बीच अंतर करने के लिए, कलेक्शन के नाम में क्लस्टर नंबर जोड़ें. क्लस्टर के नंबर, कर्नेल डिवाइस ट्री में सीपीयू कोर के क्रम में असाइन किए जाते हैं. इसके लिए उदाहरण के लिए, एक विषम आर्किटेक्चर में, जिसमें दो (2) क्लस्टर हैं. साथ ही, चार (4) कोर:
- cluster0 में cpu0-3 शामिल हैं
- क्लस्टर 1 में cpu4-7 शामिल है
Android फ़्रेमवर्क, इन सीपीयू कोर नंबर का इस्तेमाल तब करता है, जब वह sysfs
फ़ाइलों से आंकड़े पढ़ता है:
/sys/devices/system/cpu/cpu<number>/cpufreq/stats
.
क्लस्टर सीपीयू और स्पीड का उदाहरण:
<array name="cpu.active.cluster0"> <value>200</value> <value>300</value> <value>400</value> </array> <array name="cpu.speeds.cluster0"> <value>600000</value> <value>800000</value> <value>1200000</value> </array> <array name="cpu.active.cluster1"> <value>400</value> <value>500</value> <value>600</value> </array> <array name="cpu.speeds.cluster1"> <value>800000</value> <value>1200000</value> <value>1400000</value> </array>
पावर वैल्यू
नीचे दी गई टेबल में, पावर वैल्यू की उपलब्ध सेटिंग के बारे में बताया गया है. देखने के लिए AOSP में सैंपल फ़ाइल, देखें power_profile.xml को शामिल करें.
नाम | ब्यौरा | वैल्यू का उदाहरण | नोट |
---|---|---|---|
ऐंबियंट.ऑन | स्क्रीन के बंद होने के बजाय, ऐसी स्थिति में इस्तेमाल होने वाला अतिरिक्त पावर जो डोज़/ऐंबियंट/हमेशा चालू मोड में होता है. | करीब 100 mA | - |
screen.on | स्क्रीन की रोशनी कम से कम पर सेट होने पर, ज़्यादा बैटरी खर्च होती है. | 200 mA | इसमें टच कंट्रोलर और डिसप्ले बैकलाइट शामिल है. स्क्रीन की रोशनी 0 होने पर, Android के लिए, इसकी रेटिंग 10 या 20% होनी चाहिए. |
स्क्रीन.पूरी स्क्रीन | स्क्रीन की रोशनी कम से कम होने की तुलना में, ज़्यादा रोशनी होने पर ज़्यादा बिजली खर्च होती है. | 100 mA-300 mA | इस मान का एक अंश (स्क्रीन की चमक के आधार पर) screen.on वैल्यू का इस्तेमाल करें. |
wifi.on | वाई-फ़ाई चालू होने पर, डेटा पाने, भेजने या स्कैन करने के अलावा, अन्य कामों के लिए इस्तेमाल होने वाली अतिरिक्त पावर. | 2 mA | - |
wifi.active | वाई-फ़ाई के ज़रिए ट्रांसमिट या पाने के दौरान इस्तेमाल की जाने वाली अतिरिक्त पावर. | 31 mA | - |
wifi.scan | ऐक्सेस पॉइंट के लिए वाई-फ़ाई स्कैन करते समय अतिरिक्त पावर इस्तेमाल किया जाता है. | 100 mA | - |
ऑडियो | डीएसपी के ज़रिए ऑडियो डीकोडिंग/एन्कोडिंग के लिए इस्तेमाल होने वाली अतिरिक्त पावर. | करीब 10 mA | DSP ऑडियो के लिए उपयोग किया जाता है. |
वीडियो | डीएसपी की मदद से वीडियो डिकोड करते समय, इस्तेमाल होने वाली अतिरिक्त पावर. | करीब 50 mA | इसका इस्तेमाल डीएसपी वीडियो के लिए किया जाता है. |
कैमरा औसत | किसी सामान्य कैमरा ऐप्लिकेशन के लिए, कैमरा सबसिस्टम का औसत बिजली इस्तेमाल. | 600 एमए | यह एक अनुमानित डेटा है. यह ऐसे ऐप्लिकेशन के लिए है जो झलक दिखा रहा है और हर मिनट में करीब 10 फ़ुल रिज़ॉल्यूशन वाली फ़ोटो कैप्चर कर रहा है. |
कैमरा.फ़्लैशलाइट | चालू होने पर, कैमरा फ़्लैश मॉड्यूल के ज़रिए औसत पावर का इस्तेमाल किया जाता है. | 200 mA | - |
gps.signalqualitybased | सिग्नल की क्वालिटी के आधार पर, जीपीएस के इस्तेमाल की अतिरिक्त पावर. यह एक बहु-मान वाली प्रविष्टि है, सबसे मज़बूत से सबसे मज़बूत सिग्नल की क्षमता के लिए एक. | 30 mA, 10 mA | - |
gps.on | जीपीएस सिग्नल पाने के दौरान, ज़्यादा बैटरी खर्च होती है. | 50 mA | - |
रेडियो.ऐक्टिव | सेल्युलर रेडियो के संचरण/पाने के दौरान इस्तेमाल की जाने वाली अतिरिक्त पावर. | 100 mA-300 mA | - |
रेडियो स्कैन करने की सुविधा | सेल रेडियो के टावर को पेज करने के दौरान, अतिरिक्त पावर का इस्तेमाल किया जाता है. | 1.2 mA | - |
रेडियो.ऑन | मोबाइल रेडियो चालू होने पर, ज़्यादा बैटरी खर्च होती है. यह एक बहु-मान वाली प्रविष्टि है, एक सिग्नल की स्ट्रेंथ (कोई सिग्नल नहीं, कमज़ोर, सामान्य, मज़बूत). | 1.2 mA | कुछ रेडियो सेल टावर खोजने पर पावर बढ़ाते हैं, लेकिन किसी सिग्नल का पता लगाएं. बढ़ते हुए सिग्नल पर वैल्यू एक जैसी हो सकती हैं या कम हो सकती हैं ताकत. अगर आपने सिर्फ़ एक वैल्यू दी है, तो सभी ज़रूरी शर्तों के लिए एक ही वैल्यू का इस्तेमाल किया जाता है. अगर आप दो वैल्यू देते हैं, तो पहला इस्तेमाल नो-सिग्नल के लिए किया जाता है, दूसरी वैल्यू का इस्तेमाल अन्य सभी स्ट्रेंथ के लिए किया जाता है. इसी तरह अन्य सभी स्ट्रेंथ के लिए भी दूसरी वैल्यू का इस्तेमाल किया जाता है. |
bluetooth.controller.idle | कुछ समय तक इस्तेमाल में न होने पर, ब्लूटूथ कंट्रोलर का औसत करंट ड्रॉ (mA). | - | इन वैल्यू का अनुमान नहीं लगाया जाता, बल्कि इन्हें कंट्रोलर की डेटा शीट से लिया जाता है. अगर डेटा पाने या भेजने की एक से ज़्यादा स्थितियां हैं, तो उन स्थितियों का औसत लिया जाता है. इसके अलावा, सिस्टम अब स्मार्ट ऑडियो (LE) और ब्लूटूथ स्कैन के लिए डेटा इकट्ठा करता है. Android 7.0 और उसके बाद के वर्शन में, अब bluetooth.active (ब्लूटूथ A2DP के ज़रिए ऑडियो चलाते समय इस्तेमाल किया जाता है) और bluetooth.on (ब्लूटूथ चालू होने पर, लेकिन इस्तेमाल न होने पर इस्तेमाल किया जाता है) के लिए ब्लूटूथ पावर वैल्यू का इस्तेमाल नहीं किया जाता. |
bluetooth.controller.rx | ब्लूटूथ कंट्रोलर को डेटा भेजने पर, उसका औसत करंट ड्रॉ (एमए). | - | |
bluetooth.controller.tx | डेटा ट्रांसमिट करते समय, ब्लूटूथ कंट्रोलर का औसत करंट ड्रॉ (एमए). | - | |
bluetooth.controller.voltage | ब्लूटूथ कंट्रोलर का औसत ऑपरेटिंग वोल्टेज (mV). | - | |
modem.controller.sleep | स्लीप मोड में, मॉडेम कंट्रोलर का औसत करंट ड्रॉ (एमए). | 0 एमए | ये वैल्यू अनुमानित नहीं हैं, लेकिन इन्हें कंट्रोलर की डेटा शीट से लिया गया है. अगर ईमेल पाने की स्थिति एक से ज़्यादा है, तो उन स्थितियों का औसत लिया जाता है. अगर कोई एक से ज़्यादा ट्रांसमिशन स्टेट के लिए, हर ट्रांसमिट की स्थिति के लिए वैल्यू तय करने की सुविधा होती है Android 9 और इसके बाद के वर्शन वाले डिवाइसों पर चलेगा. |
modem.controller.idle | इस्तेमाल में न होने पर, मॉडेम कंट्रोलर का औसत करंट ड्रॉ (एमए). | - | |
modem.controller.rx | प्राप्त करते समय मॉडम कंट्रोलर का औसत मौजूदा ड्रॉ (mA). | - | |
modem.controller.tx | अलग-अलग आरएफ़ पावर लेवल पर ट्रांसमिट करते समय, मॉडेम कंट्रोलर का औसत करंट ड्रॉ (एमए). यह कई वैल्यू वाली एंट्री है, जिसमें हर ट्रांसमिट पावर लेवल के लिए एक वैल्यू दी गई है. | 100 mA, 200 mA, 300 mA, 400 mA, 500 mA | |
modem.controller.voltage | मॉडेम कंट्रोलर का औसत ऑपरेटिंग वोल्टेज (mV). | - | |
wifi.controller.idle | डिवाइस कुछ समय इस्तेमाल न होने पर, वाई-फ़ाई कंट्रोलर का औसत मौजूदा ड्रॉ (mA). | - | ये मान अनुमानित नहीं हैं, लेकिन इनकी डेटा शीट से लिया गया है कंट्रोलर को कॉपी किया जा सकता है. अगर डेटा पाने या भेजने की एक से ज़्यादा स्थितियां हैं, तो उन स्थितियों का औसत लिया जाता है. |
wifi.controller.rx | मिलने वाले वाई-फ़ाई कंट्रोलर का औसत मौजूदा ड्रॉ (mA). | - | |
wifi.controller.tx | ट्रांसमिशन के समय वाई-फ़ाई कंट्रोलर का औसत करंट ड्रॉ (mA). | - | |
wifi.controller.voltage | वाई-फ़ाई कंट्रोलर का औसत ऑपरेटिंग वोल्टेज (mV). | - | |
cpu.speeds | यह कई वैल्यू वाली एक एंट्री है. इसमें, हर संभावित सीपीयू की स्पीड को किलोहर्ट्ज़ (KHz) में शामिल किया जाता है. | 1,25,000 किलोहर्ट्ज़, 250000 किलोहर्ट्ज़, 500000 किलोहर्ट्ज़, 1,000,000 किलोहर्ट्ज़, 15,00,000 किलोहर्ट्ज़ (किलोहर्ट्ज़) | एंट्री की संख्या और ऑर्डर, mA एंट्री के हिसाब से होने चाहिए cpu.active. |
cpu.idle | सिस्टम में सीपीयू (और SoC) होने पर, सिस्टम से ली गई कुल पावर निलंबन की स्थिति. | 3 mA | - |
cpu.awake | जब सीपीयू का इस्तेमाल शेड्यूल न किया जा रहा हो, तब इस्तेमाल होने वाली अतिरिक्त पावर (कर्नेल आइडल लूप); सिस्टम, सिस्टम निलंबित स्थिति में नहीं है. | 50 mA | आपके प्लैटफ़ॉर्म पर इस्तेमाल में न होने की एक से ज़्यादा स्थितियां हो सकती हैं. साथ ही, इनमें अलग-अलग ऊर्जा की खपत का लेवल; लंबे समय के लिए कोई काम न करने की स्थिति चुनें शेड्यूलर के इस्तेमाल में न होने की अवधि (कई मिलीसेकंड). इस पर पावर ग्राफ़ की जांच करें और ऐसे सैंपल चुनें जिनमें सीपीयू की क्षमता सबसे कम है इस्तेमाल किया जाता है, तो उन ज़्यादा सैंपल को खारिज किया जाता है जिनमें सीपीयू के कुछ समय से इस्तेमाल में न होने पर भी उसे इस्तेमाल नहीं किया जा सकता. |
सीपीयू चालू | अलग-अलग स्पीड पर काम करते समय, सीपीयू की खपत होने वाली अतिरिक्त ऊर्जा. | 100 mA, 120 mA, 140 mA, 160 mA, 200 mA | वैल्यू अलग-अलग ऑपरेटिंग सिस्टम पर चलने के दौरान, सीपीयू रेल की मदद से इस्तेमाल हुई पावर का पता चलता है गति. अनुमति वाली हर स्पीड के लिए, कर्नेल में सबसे ज़्यादा स्पीड सेट करें और सीपीयू को उस स्पीड पर सेट करें. एंट्री की संख्या और क्रम cpu.speeds में एंट्री की संख्या और उनका क्रम. |
cpu.clusters.cores | हर सीपीयू क्लस्टर में मौजूद कोर की संख्या. | 4, 2 | यह सिर्फ़ उन डिवाइसों के लिए ज़रूरी है जिनमें अलग-अलग तरह के सीपीयू आर्किटेक्चर हैं. प्रविष्टियों और क्रम की संख्या की संख्या cpu.active और cpu.speeds के लिए क्लस्टर एंट्री. पहली एंट्री, क्लस्टर0 में सीपीयू कोर की संख्या दिखाती है, दूसरी एंट्री, क्लस्टर1 में सीपीयू कोर की संख्या दिखाती है, और इसी तरह आगे भी. |
battery.capacity | mAh में कुल बैटरी क्षमता. | 3000 mAh | - |
ब्लूटूथ स्मार्ट (बीएलई) और ब्लूटूथ स्कैन
Android 7.0 वाले डिवाइसों के लिए, सिस्टम लो एनर्जी (LE) स्कैन और ब्लूटूथ नेटवर्क ट्रैफ़िक (जैसे, RFCOMM और L2CAP) का डेटा इकट्ठा करता है. साथ ही, इन गतिविधियों को शुरू करने वाले ऐप्लिकेशन से जोड़ता है. ब्लूटूथ स्कैन, स्कैन शुरू करने वाले ऐप्लिकेशन से जुड़े होते हैं, लेकिन एक साथ कई डिवाइसों को स्कैन करने की सुविधा, ब्लूटूथ ऐप्लिकेशन से जुड़ी होती है. अगर कोई ऐप्लिकेशन N मिलीसेकंड के लिए स्कैन करता है, तो स्कैन की लागत N मिलीसेकंड का रिसीव टाइम और N मिलीसेकंड का ट्रांसफ़र टाइम होता है. बाकी बचे कंट्रोलर टाइम को नेटवर्क ट्रैफ़िक या ब्लूटूथ ऐप्लिकेशन को असाइन किया जाता है.