Aygıt üreticileri, /frameworks/base/core/res/res/xml/power_profile.xml
içinde bir bileşen güç profili sağlamalıdır.
Güç profillerinin değerlerini belirlemek için, cihaz tarafından kullanılan gücü ölçen donanımı kullanın ve bilgi gerektiren çeşitli işlemleri gerçekleştirin. Bu işlemler sırasında güç kullanımını ölçün ve değerleri hesaplayın (uygun şekilde diğer temel güç kullanımlarından farklılıklar türeterek).
Bir güç profilinin amacı, pil tüketimini uygun şekilde tahmin etmek olduğundan, güç profili değerleri akım (amper) olarak verilir. Android çerçevesi, akımı alt sistemin aktif olduğu zamanla çarpar ve daha sonra uygulama/alt sistem tarafından tüketilen pil miktarını tahmin etmek için kullanılan mAh değerini hesaplar.
Android 7.0 ve sonraki sürümleri çalıştıran Bluetooth, modem ve Wi-Fi denetleyicileri olan cihazlar, yonga seti verilerinden elde edilen ek güç değerleri sağlayabilir.
Heterojen CPU'lara sahip cihazlar
Heterojen mimariye sahip CPU çekirdeklerine sahip cihazlar için güç profili aşağıdaki ek alanları içermelidir:
- Her küme için toplam CPU sayısı (cpu.clusters.cores cinsinden ifade edilir).
- Her küme tarafından desteklenen CPU hızları.
- Her küme için aktif CPU güç tüketimi.
Aktif CPU güç tüketimi ile kümeler için desteklenen CPU hızları arasında ayrım yapmak için, dizinin adına küme numarasını ekleyin. Küme numaraları, çekirdek aygıt ağacında CPU çekirdeklerinin sırasına göre atanır. Örneğin, dört (4) çekirdeğe sahip iki (2) kümeye sahip heterojen bir mimaride:
- küme0, cpu0-3'ten oluşur
- küme1, cpu4-7'den oluşur
Android çerçevesi, sysfs
dosyalarından istatistikleri okuduğunda bu CPU çekirdek numaralarını kullanır: /sys/devices/system/cpu/cpu<number>/cpufreq/stats
.
Küme CPU'ları ve hızları örneği:
<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>
Güç değerleri
Aşağıdaki tablo, mevcut güç değeri ayarlarını açıklar. AOSP'deki örnek dosyayı görüntülemek için bkz. power_profile.xml .
İsim | Açıklama | Örnek Değer | notlar |
---|---|---|---|
ortam.on | Ekran kapalı yerine uyku/ortam/her zaman açık modundayken kullanılan ek güç. | yaklaşık 100 mA | - |
ekran.on | Ekran minimum parlaklıkta açıldığında kullanılan ek güç. | 200 mA | Dokunmatik kontrolör ve ekran arka ışığı içerir. 0 parlaklıkta, %10 veya %20 olma eğiliminde olan Android minimum seviyesi değil. |
ekran.dolu | Minimum parlaklıktaki ekrana kıyasla ekran maksimum parlaklıktayken kullanılan ek güç. | 100 mA-300 mA | Ekranın güç kullanımını hesaplamak için bu değerin bir kısmı (ekran parlaklığına dayalı olarak) screen.on değerine eklenir. |
wifi.on | Wi-Fi açıldığında, ancak alınmadığında, iletilmediğinde veya taranmadığında kullanılan ek güç. | 2mA | - |
wifi.aktif | Wi-Fi üzerinden iletirken veya alırken kullanılan ek güç. | 31 mA | - |
wifi.scan | Wi-Fi, erişim noktalarını tararken kullanılan ek güç. | 100 mA | - |
ses | DSP aracılığıyla ses kod çözme/kodlama sırasında kullanılan ek güç. | yaklaşık 10 mA | DSP ses için kullanılır. |
video | DSP aracılığıyla video kod çözme sırasında kullanılan ek güç. | yaklaşık 50 mA | DSP videosu için kullanılır. |
kamera.avg | Tipik bir kamera uygulaması için kamera alt sistemi tarafından ortalama güç kullanımı. | 600 mA | Önizleme çalıştıran ve dakikada yaklaşık 10 tam çözünürlüklü resim yakalayan bir uygulama için kaba bir tahmin olarak tasarlanmıştır. |
kamera. el feneri | Açıkken kamera flaş modülü tarafından kullanılan ortalama güç. | 200 mA | - |
gps.sinyal kalitesine dayalı | Sinyal gücüne dayalı olarak GPS tarafından kullanılan ek güç. Bu, sinyal gücü başına bir tane olmak üzere, en zayıftan en güçlüye doğru çok değerli bir giriştir. | 30 mA, 10 mA | - |
gps.on | GPS bir sinyal alırken kullanılan ek güç. | 50 mA | - |
radyoaktif | Hücresel radyo iletirken/alırken kullanılan ek güç. | 100 mA-300 mA | - |
radyo.tarama | Hücresel radyo kuleye çağrı yaparken kullanılan ek güç. | 1.2 mA | - |
radyo.on | Hücresel radyo açıkken kullanılan ek güç. Bu, sinyal gücü başına bir tane olmak üzere çok değerli bir giriştir (sinyal yok, zayıf, orta, güçlü). | 1.2 mA | Bazı radyolar, baz istasyonu aradıklarında gücü artırır ve bir sinyal algılamazlar. Değerler aynı olabilir veya artan sinyal gücü ile azalabilir. Yalnızca bir değer sağlarsanız, tüm kuvvetler için aynı değer kullanılır. İki değer sağlarsanız, ilk değer sinyal olmaması için, ikinci değer diğer tüm güçler için kullanılır ve bu böyle devam eder. |
bluetooth.controller.idle | Boştayken Bluetooth denetleyicisinin ortalama akım çekişi (mA). | - | Bu değerler tahmin edilmez, ancak kontrolörün veri sayfasından alınır. Birden fazla alma veya gönderme durumu varsa, bu durumların ortalaması alınır. Ayrıca sistem artık Düşük Enerji (LE) ve Bluetooth taramaları için veri topluyor. Android 7.0 ve sonraki sürümleri artık bluetooth.active (Bluetooth A2DP üzerinden ses çalınırken kullanılır) ve bluetooth.on (Bluetooth açıkken ancak boştayken kullanılır) için Bluetooth güç değerlerini kullanmaz. |
bluetooth.controller.rx | Alırken Bluetooth denetleyicisinin ortalama akım çekişi (mA). | - | |
bluetooth.controller.tx | İletim sırasında Bluetooth denetleyicisinin ortalama akım çekişi (mA). | - | |
bluetooth.kontrolör.voltaj | Bluetooth denetleyicisinin ortalama çalışma voltajı (mV). | - | |
modem.denetleyici.uyku | Uyurken modem denetleyicisinin ortalama akım çekişi (mA). | 0 mA | Bu değerler tahmin edilmez, ancak kontrolörün veri sayfasından alınır. Birden fazla alma durumu varsa, bu durumların ortalaması alınır. Birden çok iletim durumu varsa, Android 9'dan başlayarak her iletim durumu için bir değer belirtilmesi desteklenir. |
modem.controller.idle | Boştayken modem denetleyicisinin ortalama akım çekişi (mA). | - | |
modem.denetleyici.rx | Alırken modem denetleyicisinin ortalama akım çekişi (mA). | - | |
modem.denetleyici.tx | Farklı RF güç seviyelerinde iletim yaparken modem denetleyicisinin ortalama akım çekişi (mA). Bu, iletim gücü seviyesi başına bir değere sahip çok değerli bir giriştir. | 100 mA, 200 mA, 300 mA, 400 mA, 500 mA | |
modem.kontrolör.voltaj | Modem denetleyicisinin ortalama çalışma voltajı (mV). | - | |
wifi.controller.idle | Boştayken Wi-Fi denetleyicisinin ortalama akım çekişi (mA). | - | Bu değerler tahmin edilmez, ancak kontrolörün veri sayfasından alınır. Birden fazla alma veya gönderme durumu varsa, bu durumların ortalaması alınır. |
wifi.controller.rx | Alırken Wi-Fi denetleyicisinin ortalama akım çekişi (mA). | - | |
wifi.controller.tx | İletim sırasında Wi-Fi denetleyicisinin ortalama akım çekişi (mA). | - | |
wifi.kontrolör.voltaj | Wi-Fi denetleyicisinin ortalama çalışma voltajı (mV). | - | |
işlemci hızları | Bu, olası her CPU hızını KHz cinsinden listeleyen çok değerli bir giriştir. | 125000 KHz, 250000 KHz, 500000 KHz, 1000000 KHz, 1500000 KHz | Girişlerin sayısı ve sırası, cpu.active içindeki mA girişlerine karşılık gelmelidir. |
cpu.idle | CPU'lar (ve SoC) sistem askıya alma durumundayken sistem tarafından çekilen toplam güç. | 3mA | - |
cpu.uyanık | CPU'lar zamanlama boş durumundayken (çekirdek boşta döngüsü) kullanılan ek güç; sistem, sistem askıya alma durumunda değil. | 50 mA | Platformunuz, farklı güç tüketimi seviyelerinde kullanımda olan birden fazla boş duruma sahip olabilir; daha uzun zamanlayıcı boşta kalma süreleri (birkaç milisaniye) için temsili bir boşta kalma durumu seçin. Ölçüm ekipmanınızdaki güç grafiğini inceleyin ve CPU'nun boşta kaldığı yüksek örnekleri atarak CPU'nun en düşük tüketiminde olduğu örnekleri seçin. |
işlemci.aktif | Farklı hızlarda çalışırken CPU'lar tarafından kullanılan ek güç. | 100 mA, 120 mA, 140 mA, 160 mA, 200 mA | Değer, farklı hızlarda çalışırken CPU rayları tarafından kullanılan gücü temsil eder. Çekirdekteki maksimum hızı izin verilen hızların her birine ayarlayın ve CPU'yu bu hızda sabitleyin. Girişlerin sayısı ve sırası, cpu.speeds'deki girişlerin sayısı ve sırasına karşılık gelir. |
cpu.clusters.cores | Her CPU kümesinin içerdiği çekirdek sayısı. | 4, 2 | Yalnızca heterojen CPU mimarilerine sahip cihazlar için gereklidir. Giriş sayısı ve sıra, cpu.active ve cpu.speeds için küme girişlerinin sayısıyla eşleşmelidir. İlk giriş, küme0'daki CPU çekirdeklerinin sayısını temsil eder, ikinci giriş, küme1'deki CPU çekirdeklerinin sayısını temsil eder ve bu şekilde devam eder. |
pil.kapasite | mAh cinsinden toplam pil kapasitesi. | 3000 mAh | - |
Düşük Enerji (LE) ve Bluetooth taramaları
Android 7.0 çalıştıran cihazlar için sistem, Düşük Enerji (LE) taramaları ve Bluetooth ağ trafiği (RFCOMM ve L2CAP gibi) için veri toplar ve bu etkinlikleri başlatan uygulama ile ilişkilendirir. Bluetooth taramaları, taramayı başlatan uygulamayla ilişkilendirilir, ancak toplu taramalar ilişkilendirilmez (ve bunun yerine Bluetooth uygulamasıyla ilişkilendirilir). N milisaniyelik bir uygulama taraması için, taramanın maliyeti N milisaniye rx zamanı ve N milisaniye tx zamanıdır; kalan tüm denetleyici süresi ağ trafiğine veya Bluetooth uygulamasına atanır.