ব্যাটারি ব্যবহারের তথ্য ব্যাটারি ব্যবহারের পরিসংখ্যান এবং পাওয়ার প্রোফাইল মান থেকে নেওয়া হয়।
ব্যাটারি ব্যবহারের পরিসংখ্যান
ফ্রেমওয়ার্কটি ডিভাইসের বিভিন্ন কম্পোনেন্ট কতক্ষণ বিভিন্ন অবস্থায় থাকে তা ট্র্যাক করার মাধ্যমে স্বয়ংক্রিয়ভাবে ব্যাটারি ব্যবহারের পরিসংখ্যান নির্ধারণ করে। যখন কম্পোনেন্টগুলো (ওয়াই-ফাই চিপসেট, সেলুলার রেডিও, ব্লুটুথ, জিপিএস, ডিসপ্লে, সিপিইউ) তাদের অবস্থা পরিবর্তন করে (বন্ধ/চালু, নিষ্ক্রিয়/পূর্ণ শক্তি, কম/বেশি উজ্জ্বলতা, ইত্যাদি), তখন নিয়ন্ত্রণকারী সার্ভিসটি ফ্রেমওয়ার্কের BatteryStats সার্ভিসকে রিপোর্ট করে। BatteryStats সময়ের সাথে সাথে তথ্য সংগ্রহ করে এবং রিবুটের পরেও ব্যবহারের জন্য তা সংরক্ষণ করে। সার্ভিসটি সরাসরি ব্যাটারির কারেন্ট ড্র ট্র্যাক করে না, বরং এটি টাইমিং তথ্য সংগ্রহ করে যা বিভিন্ন কম্পোনেন্টের ব্যাটারি খরচ আনুমানিক করতে ব্যবহার করা যেতে পারে।
এই ফ্রেমওয়ার্কটি নিম্নলিখিত পদ্ধতিগুলো ব্যবহার করে পরিসংখ্যান সংগ্রহ করে:
- পুশ । কম্পোনেন্টের পরিবর্তন সম্পর্কে অবগত সার্ভিসগুলো BatteryStats সার্ভিসে অবস্থার পরিবর্তনগুলো পুশ করে।
- পুল । অ্যাপের সিপিইউ ব্যবহারের মতো কম্পোনেন্টগুলোর জন্য, ফ্রেমওয়ার্কটি ট্রানজিশন পয়েন্টে (যেমন কোনো অ্যাক্টিভিটি শুরু বা বন্ধ করার সময়) স্বয়ংক্রিয়ভাবে ডেটা সংগ্রহ করে একটি স্ন্যাপশট নেয়।
রিসোর্স ব্যবহার নির্ভর করে কোন অ্যাপ্লিকেশনটি সেই রিসোর্স ব্যবহার করছে তার উপর। যখন একাধিক অ্যাপ্লিকেশন একই সাথে কোনো রিসোর্স ব্যবহার করে (যেমন ওয়েক-লক যা সিস্টেমকে সাসপেন্ড হতে বাধা দেয়), তখন ফ্রেমওয়ার্ক সেই অ্যাপ্লিকেশনগুলোর মধ্যে রিসোর্স ব্যবহার ভাগ করে দেয়, যদিও তা সবসময় সমানভাবে নাও হতে পারে।
শাটডাউন ইভেন্টের ব্যবহারের পরিসংখ্যান যাতে হারিয়ে না যায়, সেজন্য ফ্রেমওয়ার্কটি প্রায় প্রতি ৩০ মিনিট অন্তর পরিসংখ্যান প্রদর্শন করে। এই পরিসংখ্যান ব্যাটারির শক্তি খরচের সমস্যা নির্দেশ করতে পারে (যেমন, ব্যাটারির অবশিষ্ট ক্ষমতা শূন্য হয়ে যাওয়ার কারণে শাটডাউন ঘটে)।
ব্যাটারি ব্যবহারের পরিসংখ্যান সম্পূর্ণরূপে ফ্রেমওয়ার্ক দ্বারা পরিচালিত হয় এবং এর জন্য OEM পরিবর্তনের প্রয়োজন হয় না।
পাওয়ার প্রোফাইল মান
Caution: Device manufacturers must provide a component power profile that defines the current consumption value for the component and the approximate battery drain caused by the component over time. This profile is defined in platform/frameworks/base/core/res/res/xml/power_profile.xml . For guidance on these settings, see Power Values .
একটি পাওয়ার প্রোফাইলের মধ্যে, বিদ্যুৎ খরচ একটি নির্দিষ্ট ভোল্টেজে গৃহীত কারেন্টের মিলিঅ্যাম্পিয়ার (mA) এককে উল্লেখ করা হয় এবং এটি মাইক্রোঅ্যাম্পিয়ার (uA) এককে একটি ভগ্নাংশ মানও হতে পারে। এই মানটি ব্যাটারিতে ব্যবহৃত mA-এর সমান হওয়া উচিত, এমন কোনো পাওয়ার রেলের জন্য প্রযোজ্য মান নয় যা ব্যাটারি থেকে ব্যবহৃত কারেন্টের সাথে সঙ্গতিপূর্ণ নয়।
উদাহরণস্বরূপ, একটি ডিসপ্লে পাওয়ার প্রোফাইল সর্বনিম্ন এবং সর্বোচ্চ উজ্জ্বলতায় ডিসপ্লে চালু রাখার জন্য প্রয়োজনীয় কারেন্টের পরিমাণ (mA) নির্দিষ্ট করে দেয়। ডিসপ্লে চালু রাখার পাওয়ার খরচ (অর্থাৎ ডিসপ্লে কম্পোনেন্টের দ্বারা ব্যবহৃত ব্যাটারির পরিমাণ) নির্ধারণ করতে, ফ্রেমওয়ার্কটি প্রতিটি উজ্জ্বলতার স্তরে কাটানো সময় ট্র্যাক করে, এবং তারপর সেই সময় ব্যবধানগুলোকে একটি ইন্টারপোলেটেড ডিসপ্লে ব্রাইটনেস কস্ট দিয়ে গুণ করে।
এই ফ্রেমওয়ার্কটি প্রতিটি অ্যাপ্লিকেশনের সিপিইউ টাইমকে একটি নির্দিষ্ট গতিতে সিপিইউ চালানোর জন্য প্রয়োজনীয় মিলিঅ্যাম্পিয়ার (mA) দিয়ে গুণ করে। এই গণনার মাধ্যমে একটি অ্যাপ্লিকেশন সিপিইউ কোড চালানোর ফলে কী পরিমাণ ব্যাটারি খরচ করে, তার একটি তুলনামূলক র্যাঙ্কিং তৈরি হয় (ফোরগ্রাউন্ড অ্যাপ হিসেবে কাটানো সময় এবং ব্যাকগ্রাউন্ড অ্যাক্টিভিটি সহ মোট সময় আলাদাভাবে দেখানো হয়)।