اندازه گیری مقادیر قدرت

سازندگان دستگاه باید یک نمایه قدرت جزء در /frameworks/base/core/res/res/xml/power_profile.xml ارائه کنند.

برای تعیین مقادیر پروفیل‌های قدرت، از سخت‌افزاری استفاده کنید که توان مصرفی دستگاه را اندازه‌گیری می‌کند و عملیات مختلفی را انجام می‌دهد که برای آن اطلاعات مورد نیاز است. مصرف توان را در طول آن عملیات اندازه گیری کنید و مقادیر را محاسبه کنید (در صورت لزوم، تفاوت ها را از سایر مصارف توان پایه استخراج کنید).

از آنجایی که هدف پروفیل قدرت تخمین تخلیه مناسب باتری است، مقادیر پروفیل توان بر حسب جریان (آمپر) داده می شود. فریم ورک اندروید جریان را در زمانی که زیرسیستم فعال بوده ضرب می کند و مقدار میلی آمپر ساعت را محاسبه می کند، که سپس برای تخمین میزان خالی شدن باتری توسط برنامه/زیر سیستم استفاده می شود.

دستگاه‌های دارای بلوتوث، مودم، و کنترل‌کننده‌های Wi-Fi دارای Android نسخه ۷.۰ و بالاتر می‌توانند مقادیر انرژی اضافی را که از داده‌های چیپست به دست می‌آیند ارائه دهند.

دستگاه هایی با CPU های ناهمگن

مشخصات قدرت برای دستگاه‌هایی با هسته‌های CPU با معماری ناهمگن باید شامل فیلدهای اضافی زیر باشد:

  • تعداد کل CPUها برای هر خوشه (بیان شده در cpu.clusters.cores).
  • سرعت های CPU که توسط هر خوشه پشتیبانی می شود.
  • مصرف انرژی CPU فعال برای هر خوشه.

برای تمایز بین مصرف انرژی فعال CPU و سرعت پشتیبانی شده CPU برای خوشه ها، شماره خوشه را به نام آرایه اضافه کنید. اعداد خوشه به ترتیب هسته های CPU در درخت دستگاه هسته اختصاص داده می شوند. به عنوان مثال، در یک معماری ناهمگن که دارای دو (2) خوشه با چهار (4) هسته است:

  • cluster0 از cpu0-3 تشکیل شده است
  • cluster1 از cpu4-7 تشکیل شده است

فریم ورک اندروید از این اعداد هسته 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 مراجعه کنید.

نام شرح مقدار نمونه یادداشت
محیط.روشن وقتی صفحه نمایش به جای خاموش بودن در حالت Doze/Ambient/Always-On باشد، برق اضافی استفاده می شود. حدود 100 میلی آمپر -
صفحه نمایش.روشن وقتی صفحه نمایش با حداقل روشنایی روشن است، برق اضافی استفاده می شود. 200 میلی آمپر شامل کنترلر لمسی و نور پس زمینه صفحه نمایش. در روشنایی 0، نه حداقل اندروید که 10 یا 20 درصد است.
صفحه نمایش.کامل وقتی صفحه نمایش در حداکثر روشنایی است، در مقایسه با صفحه نمایش با روشنایی حداقل، انرژی اضافی استفاده می شود. 100 mA-300 mA کسری از این مقدار (بر اساس روشنایی صفحه نمایش) به مقدار screen.on اضافه می شود تا میزان مصرف برق صفحه را محاسبه کند.
wifi.on وقتی Wi-Fi روشن است اما دریافت، ارسال یا اسکن نمی شود، برق اضافی استفاده می شود. 2 میلی آمپر -
wifi.active برق اضافی که هنگام ارسال یا دریافت از طریق Wi-Fi استفاده می شود. 31 میلی آمپر -
wifi.scan وقتی Wi-Fi در حال اسکن نقاط دسترسی است، برق اضافی استفاده می‌شود. 100 میلی آمپر -
سمعی برق اضافی برای رمزگشایی/رمزگذاری صدا از طریق DSP استفاده می‌شود. حدود 10 میلی آمپر برای صدای DSP استفاده می شود.
ویدئو انرژی اضافی برای رمزگشایی ویدیو از طریق DSP استفاده می شود. حدود 50 میلی آمپر برای ویدئوهای DSP استفاده می شود.
دوربین.میانگین میانگین مصرف برق توسط زیرسیستم دوربین برای یک برنامه معمولی دوربین. 600 میلی آمپر به عنوان یک تخمین تقریبی برای برنامه‌ای در نظر گرفته شده است که پیش‌نمایش را اجرا می‌کند و تقریباً 10 عکس با وضوح کامل در دقیقه می‌گیرد.
دوربین.چراغ قوه میانگین توان مصرفی ماژول فلاش دوربین در هنگام روشن بودن. 200 میلی آمپر -
gps.signalqualitybased قدرت اضافی مورد استفاده توسط GPS بر اساس قدرت سیگنال. این یک ورودی چند مقدار است، یک در هر قدرت سیگنال، از ضعیف ترین به قوی ترین. 30 میلی آمپر، 10 میلی آمپر -
gps.on وقتی GPS در حال دریافت سیگنال است، انرژی اضافی استفاده می شود. 50 میلی آمپر -
رادیو.فعال انرژی اضافی که در هنگام ارسال/دریافت رادیو سلولی استفاده می شود. 100 mA-300 mA -
رادیو.اسکن وقتی رادیو سلولی در حال صفحه‌بندی برج است، برق اضافی استفاده می‌شود. 1.2 میلی آمپر -
رادیو.روشن وقتی رادیو سلولی روشن است، برق اضافی استفاده می‌شود. این یک ورودی چند مقدار است، یک در هر قدرت سیگنال (بدون سیگنال، ضعیف، متوسط، قوی). 1.2 میلی آمپر برخی از رادیوها وقتی به دنبال برج سلولی می گردند و سیگنالی را تشخیص نمی دهند، برق را افزایش می دهند. مقادیر می توانند یکسان باشند یا با افزایش قدرت سیگنال کاهش پیدا کنند. اگر فقط یک مقدار ارائه کنید، برای همه نقاط قوت از یک مقدار استفاده می شود. اگر دو مقدار ارائه کنید، مقدار اول برای بدون سیگنال، مقدار دوم برای تمام نقاط قوت دیگر و غیره استفاده می شود.
bluetooth.controller.idle میانگین مصرف جریان (mA) کنترلر بلوتوث در حالت بیکار. - این مقادیر تخمین زده نمی شوند، بلکه از برگه داده کنترل کننده گرفته شده اند. اگر چندین حالت دریافت یا ارسال وجود داشته باشد، میانگین آن حالت ها گرفته می شود. علاوه بر این، این سیستم اکنون داده ها را برای اسکن های کم انرژی (LE) و بلوتوث جمع آوری می کند.

Android نسخه 7.0 و بالاتر دیگر از مقادیر قدرت بلوتوث برای bluetooth.active (که هنگام پخش صدا از طریق بلوتوث A2DP استفاده می شود) و bluetooth.on (مورد استفاده در زمانی که بلوتوث روشن است اما غیرفعال است) استفاده نمی کند.
bluetooth.controller.rx میانگین مصرف جریان (mA) کنترلر بلوتوث هنگام دریافت. -
bluetooth.controller.tx میانگین جریان مصرفی (mA) کنترلر بلوتوث هنگام ارسال. -
بلوتوث.کنترلر.ولتاژ میانگین ولتاژ کاری (mV) کنترلر بلوتوث. -
مودم.کنترلر.خواب میانگین مصرف جریان (mA) کنترلر مودم در حالت خواب. 0 میلی آمپر این مقادیر تخمین زده نمی شوند، بلکه از برگه داده کنترل کننده گرفته شده اند. اگر چندین حالت دریافت وجود داشته باشد، میانگین آن حالت ها گرفته می شود. اگر چندین حالت انتقال وجود داشته باشد، از Android 9، تعیین یک مقدار برای هر وضعیت ارسال پشتیبانی می‌شود.
modem.controller.idle میانگین مصرف جریان (mA) کنترلر مودم در حالت بیکار. -
modem.controller.rx میانگین کشش جریان (mA) کنترلر مودم هنگام دریافت. -
modem.controller.tx میانگین کشش جریان (mA) کنترلر مودم هنگام انتقال در سطوح مختلف توان RF. این یک ورودی چند مقدار با یک مقدار در هر سطح توان انتقال است. 100 میلی آمپر، 200 میلی آمپر، 300 میلی آمپر، 400 میلی آمپر، 500 میلی آمپر
مودم.کنترلر.ولتاژ میانگین ولتاژ کاری (mV) کنترلر مودم. -
wifi.controller.idle میانگین مصرف جریان (mA) کنترلر Wi-Fi در حالت بیکار. - این مقادیر تخمین زده نمی شوند، بلکه از برگه داده کنترل کننده گرفته شده اند. اگر چندین حالت دریافت یا ارسال وجود داشته باشد، میانگین آن حالت ها گرفته می شود.
wifi.controller.rx میانگین مصرف جریان (mA) کنترلر Wi-Fi هنگام دریافت. -
wifi.controller.tx میانگین مصرف جریان (mA) کنترلر Wi-Fi هنگام ارسال. -
wifi.controller.ولتاژ میانگین ولتاژ کاری (mV) کنترلر Wi-Fi. -
cpu.speeds این یک ورودی چند ارزشی است که هر سرعت ممکن CPU را بر حسب کیلوهرتز فهرست می کند. 125000 کیلوهرتز، 250000 کیلوهرتز، 500000 کیلوهرتز، 1000000 کیلوهرتز، 1500000 کیلوهرتز تعداد و ترتیب ورودی ها باید با ورودی های mA در cpu.active مطابقت داشته باشد.
cpu.idle کل توانی که سیستم گرفته می شود زمانی که CPU ها (و SoC) در حالت تعلیق سیستم هستند. 3 میلی آمپر -
cpu.wake توان اضافی مورد استفاده زمانی که CPU ها در حالت زمان بندی بیکار هستند (حلقه بیکار هسته)؛ سیستم در حالت تعلیق سیستم نیست. 50 میلی آمپر پلت فرم شما ممکن است بیش از یک حالت بیکار در حال استفاده با سطوح مختلف مصرف انرژی داشته باشد. یک حالت بیکار نماینده را برای دوره های طولانی تری از زمانبندی بیکار (چند میلی ثانیه) انتخاب کنید. نمودار قدرت روی تجهیزات اندازه گیری خود را بررسی کنید و نمونه هایی را انتخاب کنید که CPU کمترین مصرف خود را دارد، نمونه های بالاتر را در جایی که CPU از حالت آماده به کار خارج شده است دور بیندازید.
cpu.active توان اضافی مورد استفاده CPU ها هنگام کار با سرعت های مختلف. 100 میلی آمپر، 120 میلی آمپر، 140 میلی آمپر، 160 میلی آمپر، 200 میلی آمپر مقدار قدرتی را نشان می‌دهد که ریل‌های CPU هنگام کار با سرعت‌های مختلف استفاده می‌کنند. حداکثر سرعت هسته را روی هر یک از سرعت های مجاز تنظیم کنید و CPU را با آن سرعت ثابت کنید. تعداد و ترتیب ورودی ها با تعداد و ترتیب ورودی ها در cpu.speeds مطابقت دارد.
cpu.clusters.cores تعداد هسته هایی که هر خوشه CPU شامل می شود. 4، 2 فقط برای دستگاه هایی با معماری CPU ناهمگن مورد نیاز است. تعداد ورودی‌ها و ترتیب باید با تعداد ورودی‌های کلاستر برای cpu.active و cpu.speed مطابقت داشته باشد. ورودی اول نشان دهنده تعداد هسته های CPU در cluster0، ورودی دوم نشان دهنده تعداد هسته های CPU در cluster1 و غیره است.
ظرفیت باتری ظرفیت کل باتری به میلی آمپر ساعت 3000 میلی آمپر ساعت -

اسکن کم انرژی (LE) و بلوتوث

برای دستگاه‌هایی که Android 7.0 دارند، سیستم داده‌ها را برای اسکن‌های کم انرژی (LE) و ترافیک شبکه بلوتوث (مانند RFCOMM و L2CAP) جمع‌آوری می‌کند و این فعالیت‌ها را با برنامه شروع‌کننده مرتبط می‌کند. اسکن‌های بلوتوث با برنامه‌ای که اسکن را آغاز کرده است مرتبط است، اما اسکن‌های دسته‌ای نیستند (و در عوض با برنامه بلوتوث مرتبط هستند). برای اسکن برنامه برای N میلی ثانیه، هزینه اسکن N میلی ثانیه زمان rx و N میلی ثانیه زمان tx است. تمام زمان باقیمانده کنترلر به ترافیک شبکه یا برنامه بلوتوث اختصاص داده می شود.