শক্তি মান পরিমাপ

ডিভাইস নির্মাতাদের অবশ্যই /frameworks/base/core/res/res/xml/power_profile.xml এ একটি কম্পোনেন্ট পাওয়ার প্রোফাইল প্রদান করতে হবে।

পাওয়ার প্রোফাইলের মান নির্ধারণ করতে, হার্ডওয়্যার ব্যবহার করুন যা ডিভাইস দ্বারা ব্যবহৃত শক্তি পরিমাপ করে এবং বিভিন্ন ক্রিয়াকলাপ সম্পাদন করে যার জন্য তথ্য প্রয়োজন। সেই ক্রিয়াকলাপগুলির সময় শক্তির ব্যবহার পরিমাপ করুন এবং মানগুলি গণনা করুন (যথাযথ হিসাবে অন্যান্য বেসলাইন পাওয়ার ব্যবহার থেকে পার্থক্য অর্জন করুন)।

যেহেতু একটি পাওয়ার প্রোফাইলের লক্ষ্য হল ব্যাটারি ড্রেনকে যথাযথভাবে অনুমান করা, পাওয়ার প্রোফাইলের মানগুলি বর্তমান (amps) এ দেওয়া হয়। অ্যান্ড্রয়েড ফ্রেমওয়ার্ক যে সময়ের জন্য সাবসিস্টেমটি সক্রিয় ছিল তার দ্বারা বর্তমানকে গুণ করে এবং mAh মান গণনা করে, যা অ্যাপ বা সাবসিস্টেম দ্বারা নিষ্কাশন করা ব্যাটারির পরিমাণ অনুমান করতে ব্যবহৃত হয়।

ব্লুটুথ, মডেম এবং ওয়াই-ফাই কন্ট্রোলার সহ Android 7.0 এবং উচ্চতর ডিভাইসগুলি চিপসেট ডেটা থেকে প্রাপ্ত অতিরিক্ত পাওয়ার মান প্রদান করতে পারে।

ভিন্নধর্মী CPU সহ ডিভাইস

ভিন্নধর্মী আর্কিটেকচারের CPU কোর সহ ডিভাইসগুলির পাওয়ার প্রোফাইলে নিম্নলিখিত অতিরিক্ত ক্ষেত্রগুলিকে অন্তর্ভুক্ত করতে হবে:

  • প্রতিটি ক্লাস্টারের জন্য মোট CPU-র সংখ্যা (cpu.clusters.cores-এ প্রকাশ করা হয়েছে)।
  • CPU গতি প্রতিটি ক্লাস্টার দ্বারা সমর্থিত।
  • প্রতিটি ক্লাস্টারের জন্য সক্রিয় CPU পাওয়ার খরচ।

সক্রিয় CPU পাওয়ার খরচ এবং ক্লাস্টারগুলির জন্য সমর্থিত CPU গতির মধ্যে পার্থক্য করতে, অ্যারের নামের সাথে ক্লাস্টার নম্বর যোগ করুন। কার্নেল ডিভাইস ট্রিতে CPU কোরের ক্রম অনুসারে ক্লাস্টার নম্বর বরাদ্দ করা হয়। উদাহরণস্বরূপ, একটি ভিন্নধর্মী আর্কিটেকচারে যেখানে চারটি (4) কোর সহ দুটি (2) ক্লাস্টার রয়েছে:

  • cluster0 cpu0-3 নিয়ে গঠিত
  • ক্লাস্টার 1 cpu4-7 নিয়ে গঠিত

Android ফ্রেমওয়ার্ক এই CPU কোর নম্বরগুলি ব্যবহার করে যখন এটি sysfs ফাইলগুলি থেকে পরিসংখ্যান পড়ে: /sys/devices/system/cpu/cpu<number>/cpufreq/stats

ক্লাস্টার CPU এবং গতির উদাহরণ:

<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 দেখুন।

নাম বর্ণনা উদাহরণ মান নোট
ambient.on অতিরিক্ত শক্তি ব্যবহৃত হয় যখন স্ক্রীন বন্ধের পরিবর্তে ডোজ/অ্যাম্বিয়েন্ট/সর্বদা-অন মোডে থাকে। প্রায় 100 mA -
screen.on ন্যূনতম উজ্জ্বলতায় স্ক্রীন চালু হলে অতিরিক্ত শক্তি ব্যবহৃত হয়। 200 mA স্পর্শ নিয়ামক এবং প্রদর্শন ব্যাকলাইট অন্তর্ভুক্ত. 0 উজ্জ্বলতায়, Android ন্যূনতম নয় যা 10 বা 20% হতে থাকে।
পর্দা.পূর্ণ ন্যূনতম উজ্জ্বলতার স্ক্রীনের তুলনায় স্ক্রীন সর্বাধিক উজ্জ্বলতায় থাকাকালীন অতিরিক্ত শক্তি ব্যবহৃত হয়। 100 mA-300 mA এই মানের একটি ভগ্নাংশ (স্ক্রীনের উজ্জ্বলতার উপর ভিত্তি করে) স্ক্রিনের পাওয়ার ব্যবহার গণনা করার জন্য screen.on মানটিতে যোগ করা হয়।
wifi.on Wi-Fi চালু থাকলে অতিরিক্ত শক্তি ব্যবহৃত হয় কিন্তু রিসিভ, ট্রান্সমিটিং বা স্ক্যান করা হয় না। 2 mA -
wifi.active Wi-Fi এর মাধ্যমে প্রেরণ বা গ্রহণ করার সময় অতিরিক্ত শক্তি ব্যবহৃত হয়। 31 mA -
wifi.scan অ্যাক্সেস পয়েন্টের জন্য Wi-Fi স্ক্যান করার সময় অতিরিক্ত শক্তি ব্যবহৃত হয়। 100 mA -
অডিও DSP এর মাধ্যমে অডিও ডিকোডিং/এনকোডিং করার সময় অতিরিক্ত শক্তি ব্যবহৃত হয়। প্রায় 10 mA ডিএসপি অডিওর জন্য ব্যবহৃত।
ভিডিও DSP এর মাধ্যমে ভিডিও ডিকোড করার সময় অতিরিক্ত শক্তি ব্যবহৃত হয়। প্রায় 50 mA ডিএসপি ভিডিওর জন্য ব্যবহৃত।
camera.avg একটি সাধারণ ক্যামেরা অ্যাপের জন্য ক্যামেরা সাবসিস্টেম দ্বারা গড় শক্তি ব্যবহার। 600 mA একটি প্রিভিউ চালানো এবং প্রতি মিনিটে প্রায় 10টি পূর্ণ-রেজোলিউশন ছবি ক্যাপচার করা একটি অ্যাপের জন্য মোটামুটি অনুমান হিসাবে অভিপ্রেত৷
ক্যামেরা ফ্ল্যাশলাইট চালু থাকাকালীন ক্যামেরা ফ্ল্যাশ মডিউল দ্বারা ব্যবহৃত গড় শক্তি৷ 200 mA -
gps.signalquality ভিত্তিক সংকেত শক্তির উপর ভিত্তি করে GPS দ্বারা ব্যবহৃত অতিরিক্ত শক্তি। এটি একটি মাল্টি-ভ্যালু এন্ট্রি, প্রতি সিগন্যাল শক্তিতে একটি, দুর্বল থেকে শক্তিশালী। 30 mA, 10 mA -
gps.on GPS একটি সংকেত অর্জন করার সময় অতিরিক্ত শক্তি ব্যবহৃত হয়। 50 mA -
radio.active সেলুলার রেডিও প্রেরণ/গ্রহণ করার সময় অতিরিক্ত শক্তি ব্যবহৃত হয়। 100 mA-300 mA -
radio.scanning সেলুলার রেডিও টাওয়ারের পেজিং করার সময় অতিরিক্ত শক্তি ব্যবহৃত হয়। 1.2 mA -
radio.on সেলুলার রেডিও চালু থাকলে অতিরিক্ত শক্তি ব্যবহৃত হয়। এটি একটি মাল্টি-ভ্যালু এন্ট্রি, প্রতি সিগন্যাল শক্তি একটি (কোন সংকেত নেই, দুর্বল, মাঝারি, শক্তিশালী)। 1.2 mA কিছু রেডিও শক্তি বৃদ্ধি করে যখন তারা একটি সেল টাওয়ার অনুসন্ধান করে এবং একটি সংকেত সনাক্ত করে না। ক্রমবর্ধমান সংকেত শক্তির সাথে মান একই হতে পারে বা হ্রাস পেতে পারে। আপনি শুধুমাত্র একটি মান প্রদান করলে, একই মান সমস্ত শক্তির জন্য ব্যবহার করা হয়। যদি আপনি দুটি মান প্রদান করেন, প্রথমটি নো-সিগন্যালের জন্য ব্যবহার করা হয়, দ্বিতীয় মানটি অন্যান্য সমস্ত শক্তির জন্য ব্যবহার করা হয়, ইত্যাদি।
bluetooth.controller.idle নিষ্ক্রিয় থাকা অবস্থায় ব্লুটুথ কন্ট্রোলারের গড় বর্তমান ড্র (mA)৷ - এই মানগুলি অনুমান করা হয় না, তবে নিয়ামকের ডেটা শীট থেকে নেওয়া হয়। একাধিক রিসিভ বা ট্রান্সমিট স্টেট থাকলে সেই স্টেটের গড় নেওয়া হয়। এছাড়াও, সিস্টেমটি এখন লো এনার্জি (LE) এবং ব্লুটুথ স্ক্যানের জন্য ডেটা সংগ্রহ করে৷

Android 7.0 এবং পরবর্তীতে Bluetooth.active (Bluetooth A2DP-এর মাধ্যমে অডিও চালানোর সময় ব্যবহৃত হয়) এবং bluetooth.on (ব্লুটুথ চালু থাকলেও নিষ্ক্রিয় থাকাকালীন ব্যবহৃত) এর জন্য ব্লুটুথ পাওয়ার মানগুলি আর ব্যবহার করে না।
bluetooth.controller.rx প্রাপ্ত করার সময় ব্লুটুথ কন্ট্রোলারের গড় বর্তমান ড্র (mA)। -
bluetooth.controller.tx ট্রান্সমিট করার সময় ব্লুটুথ কন্ট্রোলারের গড় বর্তমান ড্র (mA)। -
bluetooth.controller.voltage ব্লুটুথ কন্ট্রোলারের গড় অপারেটিং ভোল্টেজ (mV)। -
modem.controller.sleep ঘুমন্ত অবস্থায় মডেম কন্ট্রোলারের গড় বর্তমান ড্র (mA)। 0 mA এই মানগুলি অনুমান করা হয় না, তবে নিয়ামকের ডেটা শীট থেকে নেওয়া হয়। একাধিক রিসিভ স্টেট থাকলে সেই স্টেটের গড় নেওয়া হয়। যদি একাধিক ট্রান্সমিট স্টেট থাকে, তাহলে প্রতিটি ট্রান্সমিট স্টেটের জন্য একটি মান উল্লেখ করা Android 9 থেকে সমর্থিত।
modem.controller.idle নিষ্ক্রিয় থাকা অবস্থায় মডেম কন্ট্রোলারের গড় বর্তমান ড্র (mA)। -
modem.controller.rx প্রাপ্তির সময় মডেম কন্ট্রোলারের গড় বর্তমান ড্র (mA)। -
modem.controller.tx বিভিন্ন RF পাওয়ার লেভেলে ট্রান্সমিট করার সময় মডেম কন্ট্রোলারের গড় বর্তমান ড্র (mA)। এটি একটি মাল্টি-ভ্যালু এন্ট্রি যার প্রতি ট্রান্সমিট পাওয়ার লেভেলে একটি মান রয়েছে। 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
modem.controller.voltage মডেম কন্ট্রোলারের গড় অপারেটিং ভোল্টেজ (mV)। -
wifi.controller.idle নিষ্ক্রিয় থাকা অবস্থায় Wi-Fi কন্ট্রোলারের গড় বর্তমান ড্র (mA)৷ - এই মানগুলি অনুমান করা হয় না, তবে নিয়ামকের ডেটা শীট থেকে নেওয়া হয়। একাধিক রিসিভ বা ট্রান্সমিট স্টেট থাকলে সেই স্টেটের গড় নেওয়া হয়।
wifi.controller.rx প্রাপ্তির সময় Wi-Fi কন্ট্রোলারের গড় বর্তমান ড্র (mA)৷ -
wifi.controller.tx ট্রান্সমিট করার সময় Wi-Fi কন্ট্রোলারের গড় বর্তমান ড্র (mA)। -
wifi.controller.voltage ওয়াই-ফাই কন্ট্রোলারের গড় অপারেটিং ভোল্টেজ (mV)। -
cpu.speeds এটি একটি মাল্টি-ভ্যালু এন্ট্রি যা KHz এ প্রতিটি সম্ভাব্য CPU গতির তালিকা করে। 125000 KHz, 250000 KHz, 500000 KHz, 1000000 KHz, 1500000 KHz এন্ট্রির সংখ্যা এবং ক্রম অবশ্যই cpu.active-এ mA এন্ট্রির সাথে মিল থাকতে হবে।
cpu.idle CPUs (এবং SoC) যখন সিস্টেম সাসপেন্ড অবস্থায় থাকে তখন সিস্টেম দ্বারা মোট শক্তি টানা হয়। 3 mA -
cpu.awake অতিরিক্ত শক্তি ব্যবহৃত হয় যখন সিপিইউগুলি নিষ্ক্রিয় অবস্থায় থাকে (কার্নেল নিষ্ক্রিয় লুপ); সিস্টেম সিস্টেম সাসপেন্ড অবস্থায় নেই। 50 mA আপনার প্ল্যাটফর্মের বিভিন্ন স্তরের পাওয়ার খরচের সাথে ব্যবহারে একাধিক নিষ্ক্রিয় অবস্থা থাকতে পারে; সময়সূচী নিষ্ক্রিয় (কয়েক মিলিসেকেন্ড) দীর্ঘ সময়ের জন্য একটি প্রতিনিধি নিষ্ক্রিয় অবস্থা চয়ন করুন। আপনার পরিমাপের সরঞ্জামগুলিতে পাওয়ার গ্রাফটি পরীক্ষা করুন এবং যেখানে CPU এর সর্বনিম্ন ব্যবহার হয় সেখানে নমুনাগুলি বেছে নিন, যেখানে CPU নিষ্ক্রিয় হয়ে গেছে সেখানে উচ্চতর নমুনাগুলি বাদ দিয়ে৷
cpu.active বিভিন্ন গতিতে চলার সময় CPUs দ্বারা ব্যবহৃত অতিরিক্ত শক্তি। 100 mA, 120 mA, 140 mA, 160 mA, 200 mA মান বিভিন্ন গতিতে চলাকালীন CPU রেল দ্বারা ব্যবহৃত শক্তির প্রতিনিধিত্ব করে। কার্নেলের সর্বোচ্চ গতি প্রতিটি অনুমোদিত গতিতে সেট করুন এবং সেই গতিতে CPU-কে পেগ করুন। এন্ট্রির সংখ্যা এবং ক্রম cpu.speeds-এ এন্ট্রির সংখ্যা এবং ক্রম অনুসারে।
cpu.clusters.cores প্রতিটি CPU ক্লাস্টারে থাকা কোরের সংখ্যা। 4, 2 শুধুমাত্র ভিন্ন ভিন্ন CPU আর্কিটেকচার সহ ডিভাইসগুলির জন্য প্রয়োজনীয়৷ এন্ট্রি এবং অর্ডারের সংখ্যা cpu.active এবং cpu.speeds-এর জন্য ক্লাস্টার এন্ট্রির সংখ্যার সাথে মেলে। প্রথম এন্ট্রিটি ক্লাস্টার0-এ CPU কোরের সংখ্যাকে প্রতিনিধিত্ব করে, দ্বিতীয় এন্ট্রিটি ক্লাস্টার1-এ CPU কোরের সংখ্যা উপস্থাপন করে এবং আরও অনেক কিছু।
battery.capacity মোট ব্যাটারির ক্ষমতা mAh। 3000 mAh -

নিম্ন শক্তি (LE) এবং ব্লুটুথ স্ক্যান

Android 7.0 চালিত ডিভাইসগুলির জন্য, সিস্টেমটি নিম্ন শক্তি (LE) স্ক্যান এবং ব্লুটুথ নেটওয়ার্ক ট্রাফিকের (যেমন RFCOMM এবং L2CAP) ডেটা সংগ্রহ করে এবং এই ক্রিয়াকলাপগুলিকে সূচনাকারী অ্যাপের সাথে সংযুক্ত করে৷ ব্লুটুথ স্ক্যানগুলি সেই অ্যাপের সাথে যুক্ত যা স্ক্যানটি শুরু করেছে, কিন্তু ব্যাচ স্ক্যানগুলি নয় (এবং পরিবর্তে ব্লুটুথ অ্যাপের সাথে যুক্ত)। N মিলিসেকেন্ডের জন্য একটি অ্যাপ স্ক্যান করার জন্য, স্ক্যানের খরচ হল rx সময়ের N মিলিসেকেন্ড এবং tx সময়ের N মিলিসেকেন্ড; সমস্ত অবশিষ্ট নিয়ামক সময় নেটওয়ার্ক ট্র্যাফিক বা ব্লুটুথ অ্যাপে বরাদ্দ করা হয়।