ব্যাটারি ব্যবহার সংক্রান্ত তথ্য, ব্যাটারি ব্যবহার সংক্রান্ত পরিসংখ্যান ও পাওয়ার প্রোফাইল ভ্যালু থেকে পাওয়া যায়।
ব্যাটারি ব্যবহারের পরিসংখ্যান
ফ্রেমওয়ার্ক অটোমেটিক ব্যাটারি ব্যবহারের পরিসংখ্যান নির্ধারণ করে, এর জন্য ডিভাইস কম্পোনেন্ট কতক্ষণ ধরে বিভিন্ন স্টেটে থাকে তা ট্র্যাক করা হয়। কম্পোনেন্ট (ওয়াই-ফাই চিপসেট, সেলুলার রেডিও, ব্লুটুথ, জিপিএস, ডিসপ্লে, সিপিইউ) স্টেট পরিবর্তন (বন্ধ/চালু, অলস/সম্পূর্ণ পাওয়ার, কম/বেশি উজ্জ্বলতা ইত্যাদি) করলে, কন্ট্রোলিং পরিষেবা ফ্রেমওয়ার্ক BatteryStats পরিষেবাকে রিপোর্ট করে। BatteryStats সময়ের সাথে সাথে তথ্য সংগ্রহ করে এবং রিবুট করার পরে ব্যবহারের জন্য তা স্টোর করে। পরিষেবাটি ব্যাটারি থেকে বর্তমান ড্র সরাসরি ট্র্যাক করে না, তবে পরিবর্তে, বিভিন্ন কম্পোনেন্ট দ্বারা ব্যাটারি খরচ আনুমানিক হিসাব করার জন্য ব্যবহার করা যেতে পারে এমন টাইমিং সংক্রান্ত তথ্য সংগ্রহ করে।
ফ্রেমওয়ার্ক নিম্নলিখিত পদ্ধতি ব্যবহার করে পরিসংখ্যান সংগ্রহ করে:
- পুশ করুন। কম্পোনেন্ট পরিবর্তন সম্পর্কে সচেতন পরিষেবাগুলি BatteryStats পরিষেবায় স্টেট পরিবর্তন পুশ করে।
- টানুন। অ্যাপের মাধ্যমে CPU ব্যবহারের মতো কম্পোনেন্টের জন্য, ফ্রেমওয়ার্ক অটোমেটিক ট্রানজিশন পয়েন্টে (যেমন, অ্যাক্টিভিটি শুরু বা বন্ধ করা) ডেটা পুল করে স্ন্যাপশট নেয়।
যে অ্যাপ্লিকেশন রিসোর্স ব্যবহার করছে তার সাথে রিসোর্স কনজাম্পশন যুক্ত থাকে। একাধিক অ্যাপ্লিকেশন একই সাথে কোনও রিসোর্স ব্যবহার করলে (যেমন, ওয়্যাকলক যা সিস্টেমকে সাসপেন্ড হওয়া থেকে আটকায়), ফ্রেমওয়ার্ক সেইসব অ্যাপ্লিকেশন জুড়ে রিসোর্স ব্যবহার ছড়িয়ে দেয়, যদিও তা সবসময় সমানভাবে হয় না।
শাটডাউন ইভেন্টের জন্য ব্যবহারের পরিসংখ্যান যাতে হারিয়ে না যায়, যা ব্যাটারির পাওয়ার খরচ সংক্রান্ত সমস্যা (যেমন, ব্যাটারির চার্জ শেষ হয়ে যাওয়ার কারণে শাটডাউন হওয়া) নির্দেশ করতে পারে, ফ্রেমওয়ার্ক প্রায় প্রতি ৩০ মিনিটে পরিসংখ্যান ফ্ল্যাশ করে।
ব্যাটারি ব্যবহারের পরিসংখ্যান সম্পূর্ণভাবে ফ্রেমওয়ার্ক ম্যানেজ করে এবং এর জন্য OEM পরিবর্তনের প্রয়োজন হয় না।
পাওয়ার প্রোফাইলের ভ্যালু
সতর্কতা: ডিভাইস প্রস্তুতকারকদের অবশ্যই একটি কম্পোনেন্ট পাওয়ার প্রোফাইল প্রদান করতে হবে যা কম্পোনেন্টের জন্য বর্তমান কনজাম্পশন ভ্যালু এবং সময়ের সাথে সাথে কম্পোনেন্টের কারণে ব্যাটারি ক্ষয় হওয়ার আনুমানিক হারকে সংজ্ঞায়িত করে। এই প্রোফাইল platform/frameworks/base/core/res/res/xml/power_profile.xml-এ সংজ্ঞায়িত করা আছে। এইসব সেটিংস সম্পর্কে নির্দেশিকা পেতে, পাওয়ার ভ্যালু দেখুন।
পাওয়ার প্রোফাইলের মধ্যে, পাওয়ার কনজাম্পশনকে নমিনাল ভোল্টেজে কারেন্ট ড্রয়ের মিলিঅ্যাম্প (mA) হিসেবে নির্দিষ্ট করা হয় এবং এটি মাইক্রোঅ্যাম্প (uA)-এ নির্দিষ্ট করা একটি ফ্র্যাকশনাল ভ্যালু হতে পারে। ভ্যালুটি ব্যাটারিতে ব্যবহৃত mA হতে হবে এবং পাওয়ার রেলের ক্ষেত্রে প্রযোজ্য ভ্যালু হলে চলবে না, কারণ সেটি ব্যাটারি থেকে ব্যবহৃত কারেন্টের সাথে মেলে না।
যেমন, ডিসপ্লে পাওয়ার প্রোফাইল, ডিসপ্লে ন্যূনতম ও সর্বাধিক উজ্জ্বলতায় চালু রাখতে কত mA কারেন্ট প্রয়োজন তা নির্দিষ্ট করে। ডিসপ্লে চালু রাখার জন্য বিদ্যুতের খরচ (অর্থাৎ ডিসপ্লে কম্পোনেন্ট দ্বারা ব্যাটারি ক্ষয়) নির্ধারণ করতে, ফ্রেমওয়ার্ক প্রতিটি উজ্জ্বলতার লেভেলে ব্যয় করা সময় ট্র্যাক করে, তারপর সেইসব সময়ের ব্যবধানকে ইন্টারপোলেটেড ডিসপ্লে উজ্জ্বলতার খরচের সাথে গুণ করে।
এছাড়াও, ফ্রেমওয়ার্ক প্রতিটি অ্যাপ্লিকেশনের জন্য CPU সময়কে mA দিয়ে গুণ করে। নির্দিষ্ট স্পিডে CPU চালানোর জন্য mA প্রয়োজন হয়। এই গণনা থেকে বোঝা যায় যে CPU কোড (ফোরগ্রাউন্ড অ্যাপ হিসেবে সময় এবং ব্যাকগ্রাউন্ড অ্যাক্টিভিটি সহ মোট সময় আলাদা আলাদাভাবে রিপোর্ট করা হয়) এক্সিকিউট করে কোনও অ্যাপ্লিকেশন কতটা ব্যাটারি খরচ করে, এর ফলে একটি তুলনামূলক র্যাঙ্কিং তৈরি হয়।