تولیدکنندگان دستگاه باید مشخصات توان قطعه را در /frameworks/base/core/res/res/xml/power_profile.xml ارائه دهند.
برای تعیین مقادیر مربوط به پروفایلهای توان، از سختافزاری استفاده کنید که توان مصرفی دستگاه را اندازهگیری میکند و عملیات مختلفی را که برای آنها اطلاعات مورد نیاز است، انجام دهید. میزان مصرف توان را در طول آن عملیات اندازهگیری کنید و مقادیر را محاسبه کنید (در صورت لزوم، تفاوتها را از سایر مصرفهای توان پایه استخراج کنید).
از آنجایی که هدف از یک پروفایل توان، تخمین مناسب میزان تخلیه باتری است، مقادیر پروفایل توان بر حسب جریان (آمپر) ارائه میشوند. چارچوب اندروید، جریان را در زمانی که زیرسیستم فعال بوده ضرب میکند و مقدار میلیآمپر ساعت (mAh) را محاسبه میکند که سپس برای تخمین میزان تخلیه باتری توسط برنامه یا زیرسیستم استفاده میشود.
دستگاههایی که دارای بلوتوث، مودم و کنترلرهای وایفای هستند و اندروید ۷.۰ و بالاتر را اجرا میکنند، میتوانند مقادیر توان اضافی بهدستآمده از دادههای چیپست را ارائه دهند.
دستگاههایی با پردازندههای ناهمگن
مشخصات توان برای دستگاههایی با هستههای CPU با معماری ناهمگن باید شامل فیلدهای اضافی زیر باشد:
- تعداد کل پردازندهها برای هر خوشه (که در cpu.clusters.cores بیان میشود).
- سرعت پردازنده پشتیبانی شده توسط هر خوشه.
- مصرف فعال توان پردازنده برای هر خوشه.
برای تمایز بین مصرف برق فعال CPU و سرعت CPU پشتیبانی شده برای خوشهها، شماره خوشه را به نام آرایه اضافه کنید. شماره خوشهها به ترتیب هستههای CPU در درخت دستگاه هسته اختصاص داده میشوند. به عنوان مثال، در یک معماری ناهمگن که دارای دو (2) خوشه با چهار (4) هسته است:
- کلاستر ۰ شامل cpu0-3 است.
- کلاستر ۱ شامل پردازندههای ۴ تا ۷ است.
چارچوب اندروید از این شمارههای هسته پردازنده هنگام خواندن آمار از فایلهای 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 مراجعه کنید.
| نام | توضیحات | مقدار مثال | یادداشتها |
|---|---|---|---|
| محیط.روشن | وقتی صفحه نمایش به جای خاموش بودن، در حالت چرت زدن/محیط/همیشه روشن قرار دارد، انرژی بیشتری مصرف میشود. | حدود ۱۰۰ میلیآمپر | - |
| صفحه نمایش.روشن | وقتی صفحه نمایش با حداقل روشنایی روشن میشود، برق بیشتری مصرف میشود. | ۲۰۰ میلیآمپر | شامل کنترل لمسی و نور پس زمینه صفحه نمایش. در روشنایی ۰، نه حداقل روشنایی اندروید که معمولاً ۱۰ یا ۲۰٪ است. |
| تمام صفحه | وقتی صفحه نمایش در حداکثر روشنایی است، در مقایسه با صفحه نمایش در حداقل روشنایی، انرژی بیشتری مصرف میشود. | ۱۰۰ میلیآمپر تا ۳۰۰ میلیآمپر | کسری از این مقدار (بر اساس روشنایی صفحه نمایش) به مقدار screen.on اضافه میشود تا میزان مصرف برق صفحه نمایش محاسبه شود. |
| وای فای.روشن | وقتی وایفای روشن است اما دریافت، ارسال یا اسکن نمیکند، برق بیشتری مصرف میشود. | ۲ میلیآمپر | - |
| وای فای فعال | مصرف برق اضافی هنگام ارسال یا دریافت از طریق وایفای. | ۳۱ میلیآمپر | - |
| اسکن وای فای | وقتی وایفای در حال اسکن نقاط دسترسی است، برق بیشتری مصرف میشود. | ۱۰۰ میلیآمپر | - |
| صوتی | هنگام رمزگشایی/رمزگذاری صدا از طریق DSP، توان اضافی مصرف میشود. | حدود 10 میلی آمپر | برای صدای DSP استفاده میشود. |
| ویدئو | هنگام رمزگشایی ویدیو از طریق DSP، توان اضافی مصرف میشود. | حدود ۵۰ میلیآمپر | برای ویدئو DSP استفاده میشود. |
| دوربین.میانگین | میانگین مصرف برق توسط زیرسیستم دوربین برای یک برنامه دوربین معمولی. | ۶۰۰ میلیآمپر | به عنوان یک تخمین تقریبی برای برنامهای که پیشنمایش را اجرا میکند و تقریباً 10 عکس با وضوح کامل در دقیقه میگیرد، در نظر گرفته شده است. |
| دوربین.چراغ قوه | میانگین توان مصرفی ماژول فلاش دوربین هنگام روشن بودن. | ۲۰۰ میلیآمپر | - |
| کیفیت سیگنال مبتنی بر GPS | توان اضافی مورد استفاده توسط GPS بر اساس قدرت سیگنال. این یک ورودی چند مقداری است، یک مقدار برای هر قدرت سیگنال، از ضعیفترین تا قویترین. | 30 میلی آمپر، 10 میلی آمپر | - |
| جی پی اس روشن | هنگام دریافت سیگنال GPS، توان اضافی مصرف میشود. | ۵۰ میلیآمپر | - |
| رادیو.فعال | توان اضافی هنگام ارسال/دریافت امواج رادیویی تلفن همراه مصرف میشود. | ۱۰۰ میلیآمپر تا ۳۰۰ میلیآمپر | - |
| اسکن رادیویی | وقتی رادیوی سلولی در حال پیجینگ دکل است، برق اضافی مصرف میشود. | ۱.۲ میلیآمپر | - |
| رادیو.روشن | توان اضافی مصرف شده هنگام روشن بودن رادیوی تلفن همراه. این یک ورودی چند مقداری است، یک مقدار برای هر قدرت سیگنال (بدون سیگنال، ضعیف، متوسط، قوی). | ۱.۲ میلیآمپر | بعضی از رادیوها وقتی به دنبال یک دکل مخابراتی میگردند و سیگنالی تشخیص نمیدهند، قدرت را افزایش میدهند. مقادیر میتوانند با افزایش قدرت سیگنال یکسان یا کاهش یابند. اگر فقط یک مقدار ارائه دهید، برای همه قدرتها از همان مقدار استفاده میشود. اگر دو مقدار ارائه دهید، مقدار اول برای عدم وجود سیگنال، مقدار دوم برای همه قدرتهای دیگر و غیره استفاده میشود. |
| بلوتوث.کنترلر.بیکار | میانگین جریان مصرفی (میلیآمپر) کنترلر بلوتوث در حالت غیرفعال. | - | این مقادیر تخمینی نیستند، بلکه از برگه اطلاعات کنترلر گرفته شدهاند. اگر چندین حالت دریافت یا ارسال وجود داشته باشد، میانگین آن حالتها در نظر گرفته میشود. علاوه بر این، سیستم اکنون دادهها را برای اسکنهای کممصرف (LE) و بلوتوث جمعآوری میکند. اندروید ۷.۰ و نسخههای جدیدتر دیگر از مقادیر توان بلوتوث برای bluetooth.active (که هنگام پخش صدا از طریق بلوتوث A2DP استفاده میشود) و bluetooth.on (که هنگام روشن بودن بلوتوث اما غیرفعال بودن آن استفاده میشود) استفاده نمیکنند. |
| بلوتوث.کنترلر.rx | میانگین جریان مصرفی (میلیآمپر) کنترلر بلوتوث هنگام دریافت. | - | |
| بلوتوث.کنترلر.tx | میانگین جریان مصرفی (میلیآمپر) کنترلر بلوتوث هنگام انتقال داده. | - | |
| ولتاژ.کنترلر.بلوتوث | میانگین ولتاژ عملیاتی (میلیولت) کنترلر بلوتوث. | - | |
| مودم.کنترلر.حالت خواب | میانگین جریان مصرفی (میلیآمپر) کنترلر مودم در حالت خواب. | 0 میلی آمپر | این مقادیر تخمینی نیستند، بلکه از برگه اطلاعات کنترلر گرفته شدهاند. اگر چندین حالت دریافت وجود داشته باشد، میانگین آن حالتها در نظر گرفته میشود. اگر چندین حالت ارسال وجود داشته باشد، تعیین یک مقدار برای هر حالت ارسال از اندروید ۹ پشتیبانی میشود. |
| مودم.کنترلر.بیکار | میانگین جریان مصرفی (میلیآمپر) کنترلر مودم در حالت غیرفعال. | - | |
| مودم.کنترلر.rx | میانگین جریان مصرفی (میلیآمپر) کنترلر مودم هنگام دریافت. | - | |
| مودم.کنترلر.tx | میانگین جریان مصرفی (میلیآمپر) کنترلر مودم هنگام ارسال در سطوح مختلف توان RF. این یک ورودی چند مقداری است که برای هر سطح توان ارسال، یک مقدار در نظر گرفته میشود. | 100 میلی آمپر، 200 میلی آمپر، 300 میلی آمپر، 400 میلی آمپر، 500 میلی آمپر | |
| ولتاژ.کنترلر.مودم | میانگین ولتاژ عملیاتی (میلی ولت) کنترلر مودم. | - | |
| وایفای.کنترلر.بیکار | میانگین جریان مصرفی (میلیآمپر) کنترلر وایفای در حالت غیرفعال. | - | این مقادیر تخمینی نیستند، بلکه از برگه اطلاعات کنترلر گرفته شدهاند. اگر چندین حالت دریافت یا ارسال وجود داشته باشد، میانگین آن حالتها در نظر گرفته میشود. |
| وای فای.کنترلر.rx | میانگین جریان مصرفی (میلیآمپر) کنترلر وایفای هنگام دریافت. | - | |
| wifi.controller.tx | میانگین جریان مصرفی (میلیآمپر) کنترلر وایفای هنگام انتقال داده. | - | |
| ولتاژ.کنترلر.وایفای | میانگین ولتاژ عملیاتی (میلی ولت) کنترلر Wi-Fi. | - | |
| سرعت پردازنده | این یک ورودی چند مقداری است که هر سرعت CPU ممکن را بر حسب کیلوهرتز فهرست میکند. | ۱۲۵۰۰۰ کیلوهرتز، ۲۵۰۰۰۰ کیلوهرتز، ۵۰۰۰۰۰ کیلوهرتز، ۱۰۰۰۰۰۰ کیلوهرتز، ۱۵۰۰۰۰۰ کیلوهرتز | تعداد و ترتیب ورودیها باید با ورودیهای mA در cpu.active مطابقت داشته باشد. |
| پردازنده در حالت بیکار | کل توان مصرفی سیستم هنگامی که پردازندهها (و SoC) در حالت تعلیق سیستم هستند. | ۳ میلیآمپر | - |
| پردازنده بیدار | وقتی پردازندهها در حالت بیکاری زمانبندیشده (حلقه بیکاری هسته) هستند، توان اضافی مصرف میشود؛ سیستم در حالت تعلیق سیستم نیست. | ۵۰ میلیآمپر | ممکن است پلتفرم شما بیش از یک حالت بیکاری با سطوح مختلف مصرف برق داشته باشد؛ یک حالت بیکاری نمونه برای دورههای طولانیتر بیکاری زمانبندی (چند میلیثانیه) انتخاب کنید. نمودار توان روی تجهیزات اندازهگیری خود را بررسی کنید و نمونههایی را انتخاب کنید که در آنها CPU در کمترین مصرف خود قرار دارد و نمونههای بالاتر که در آنها CPU از حالت بیکاری خارج شده است را کنار بگذارید. |
| پردازنده فعال | توان اضافی مورد استفاده توسط پردازندهها هنگام کار با سرعتهای مختلف. | 100 میلی آمپر، 120 میلی آمپر، 140 میلی آمپر، 160 میلی آمپر، 200 میلی آمپر | مقدار، توان مورد استفاده توسط ریلهای CPU هنگام کار با سرعتهای مختلف را نشان میدهد. حداکثر سرعت را در هسته روی هر یک از سرعتهای مجاز تنظیم کنید و CPU را در آن سرعت ثابت نگه دارید. تعداد و ترتیب ورودیها مطابق با تعداد و ترتیب ورودیها در cpu.speeds است. |
| خوشههای پردازنده.هستهها | تعداد هستههای هر کلاستر CPU. | ۴، ۲ | فقط برای دستگاههایی با معماریهای CPU ناهمگن مورد نیاز است. تعداد ورودیها و ترتیب آنها باید با تعداد ورودیهای کلاستر برای cpu.active و cpu.speeds مطابقت داشته باشد. ورودی اول نشان دهنده تعداد هستههای CPU در cluster0، ورودی دوم نشان دهنده تعداد هستههای CPU در cluster1 و غیره است. |
| ظرفیت باتری | ظرفیت کل باتری بر حسب میلیآمپر ساعت. | ۳۰۰۰ میلیآمپر ساعت | - |
اسکنهای کممصرف (LE) و بلوتوث
برای دستگاههایی که اندروید ۷.۰ را اجرا میکنند، سیستم دادههای مربوط به اسکنهای کممصرف (LE) و ترافیک شبکه بلوتوث (مانند RFCOMM و L2CAP) را جمعآوری میکند و این فعالیتها را با برنامه آغازگر مرتبط میسازد. اسکنهای بلوتوث با برنامهای که اسکن را آغاز کرده مرتبط هستند، اما اسکنهای دستهای اینطور نیستند (و در عوض با برنامه بلوتوث مرتبط هستند). برای اسکن یک برنامه به مدت N میلیثانیه، هزینه اسکن N میلیثانیه زمان rx و N میلیثانیه زمان tx است. تمام زمان کنترلر باقیمانده به ترافیک شبکه یا برنامه بلوتوث اختصاص داده میشود.