Cihaz üreticilerinin /frameworks/base/core/res/res/xml/power_profile.xml
dosyasında bir bileşen güç profili sağlaması gerekir.
Güç profillerinin değerlerini belirlemek için cihazın kullandığı gücü ölçen donanımı kullanın ve bilginin gerekli olduğu çeşitli işlemleri gerçekleştirin. Bu operasyonlar sırasındaki güç kullanımını ölçün ve değerleri hesaplayın (uygun şekilde diğer temel güç kullanımlarından farklılıklar çıkararak).
Güç profilinin amacı pil tüketimini uygun şekilde tahmin etmek olduğundan, güç profili değerleri akım (amper) cinsinden verilir. Android çerçevesi, akımı alt sistemin aktif olduğu süre ile çarpar ve mAh değerini hesaplar; bu daha sonra uygulama veya alt sistem tarafından tüketilen pil miktarını tahmin etmek için kullanılır.
Android 7.0 ve üzerini çalıştıran Bluetooth, modem ve Wi-Fi denetleyicili cihazlar, yonga seti verilerinden elde edilen ek güç değerlerini sağlayabilir.
Heterojen CPU'lara sahip cihazlar
Heterojen mimariye sahip CPU çekirdeklerine sahip cihazların 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 etkin CPU güç tüketimi.
Kümeler için etkin CPU güç tüketimi ile desteklenen CPU hızları arasında ayrım yapmak için küme numarasını dizinin adına ekleyin. Küme numaraları, çekirdek aygıt ağacındaki CPU çekirdeği sırasına göre atanır. Örneğin, dört (4) çekirdekli 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, şu konumdaki sysfs
dosyalarından istatistikleri okurken bu CPU çekirdek numaralarını kullanır: /sys/devices/system/cpu/cpu<number>/cpufreq/stats
.
Küme CPU'ları ve hızlarına örnek:
<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 tabloda mevcut güç değeri ayarları açıklanmaktadır. Örnek dosyayı AOSP'de görüntülemek için bkz. power_profile.xml .
İsim | Tanım | Örnek değer | Notlar |
---|---|---|---|
ortam.açık | Ekran kapalı yerine uyku/ortam/her zaman açık modundayken kullanılan ek güç. | yaklaşık 100 mA | - |
ekran.açık | Ekran minimum parlaklıkta açıldığında kullanılan ek güç. | 200mA | Dokunmatik denetleyici ve ekran arka ışığı içerir. 0 parlaklıkta, %10 veya %20 olma eğiliminde olan Android minimum değeri 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 bağlı olarak) screen.on değerine eklenir. |
wifi.açık | Wi-Fi açıldığında ancak alma, iletme veya tarama işlemi yapılmadığında ek güç kullanılır. | 2 mA | - |
wifi.aktif | Wi-Fi üzerinden iletim veya alım sırasında kullanılan ek güç. | 31 mA | - |
wifi.tarama | Wi-Fi, erişim noktalarını tararken kullanılan ek güç. | 100 mA | - |
ses | DSP yoluyla ses kodu çözme/kodlama sırasında kullanılan ek güç. | yaklaşık 10 mA | DSP ses için kullanılır. |
video | DSP yoluyla video kodu çözülürken kullanılan ek güç. | yaklaşık 50 mA | DSP videosu için kullanılır. |
kamera.ortalama | Tipik bir kamera uygulaması için kamera alt sisteminin ortalama güç kullanımı. | 600 mA | Önizleme çalıştıran ve dakikada yaklaşık 10 tam çözünürlüklü fotoğraf çeken 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üç. | 200mA | - |
gps.signalqualitytabanlı | Sinyal gücüne bağlı olarak GPS tarafından kullanılan ek güç. Bu, en zayıftan en güçlüye doğru sinyal gücü başına bir tane olmak üzere çok değerli bir giriştir. | 30 mA, 10 mA | - |
GPS.açık | GPS bir sinyal alırken kullanılan ek güç. | 50 mA | - |
radyoaktif | Hücresel radyo iletim/alım yaparken 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.açık | 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 ararken sinyal tespit edemediğinde gücü artırır. Değerler sinyal gücünün artmasıyla aynı olabilir veya azalabilir. Yalnızca bir değer sağlarsanız tüm güçlü yönler için aynı değer kullanılır. İki değer sağlarsanız ilki sinyal yokken, ikinci değer diğer tüm güçlü yönler için kullanılır ve bu şekilde devam eder. |
bluetooth.controller.idle | Boştayken Bluetooth denetleyicisinin ortalama akım çekişi (mA). | - | Bu değerler tahmini olmayıp kontrolörün veri sayfasından alınmıştı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 de veri topluyor. Android 7.0 ve sonraki sürümler artık bluetooth.active (Bluetooth A2DP aracılığıyla ses oynatılırken kullanılır) ve bluetooth.on (Bluetooth açık ancak boştayken kullanılır) için Bluetooth güç değerlerini kullanmaz. |
bluetooth.controller.rx | Bluetooth denetleyicisinin alım sırasındaki ortalama akım çekişi (mA). | - | |
bluetooth.controller.tx | Bluetooth denetleyicisinin iletim sırasında çektiği ortalama akım (mA). | - | |
bluetooth.kontrol cihazı.voltaj | Bluetooth denetleyicisinin ortalama çalışma voltajı (mV). | - | |
modem.denetleyici.uyku | Modem denetleyicisinin uykudayken çektiği ortalama akım (mA). | 0 mA | Bu değerler tahmini olmayıp kontrolörün veri sayfasından alınmıştır. Birden fazla alma durumu varsa bu durumların ortalaması alınır. Birden fazla iletim durumu varsa, her iletim durumu için bir değerin belirtilmesi Android 9'dan itibaren desteklenmektedir. |
modem.denetleyici.boşta | Boştayken modem denetleyicisinin ortalama akım çekişi (mA). | - | |
modem.denetleyici.rx | Modem denetleyicisinin alım sırasında çektiği ortalama akım (mA). | - | |
modem.controller.tx | Farklı RF güç seviyelerinde iletim yaparken modem denetleyicisinin ortalama akım çekişi (mA). Bu, iletim gücü seviyesi başına bir değer içeren çok değerli bir giriştir. | 100 mA, 200 mA, 300 mA, 400 mA, 500 mA | |
modem.denetleyici.voltajı | Modem denetleyicisinin ortalama çalışma voltajı (mV). | - | |
wifi.denetleyici.idle | Boştayken Wi-Fi denetleyicisinin ortalama akım çekişi (mA). | - | Bu değerler tahmini olmayıp kontrolörün veri sayfasından alınmıştır. Birden fazla alma veya gönderme durumu varsa bu durumların ortalaması alınır. |
wifi.controller.rx | Wi-Fi denetleyicisinin alım sırasında çektiği ortalama akım (mA). | - | |
wifi.controller.tx | İletim sırasında Wi-Fi denetleyicisinin ortalama akım çekişi (mA). | - | |
wifi.kontrol cihazı.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 dosyasındaki mA girişlerine karşılık gelmelidir. |
CPU.idle | CPU'lar (ve SoC) sistem askıya alma durumundayken sistem tarafından çekilen toplam güç. | 3 mA | - |
CPU.awake | CPU'lar planlama boşta durumundayken (çekirdek boşta döngüsü) kullanılan ek güç; sistem sistem askıya alma durumunda değil. | 50 mA | Platformunuzda farklı güç tüketimi seviyelerinde birden fazla boşta durumu kullanılıyor 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 en düşük tüketimde olduğu örnekleri seçin; CPU'nun boşta çıktığı yüksek örnekleri atın. |
CPU.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ıza sabitleyin. Girişlerin sayısı ve sırası, cpu.speeds'deki girişlerin sayısına ve sırasına karşılık gelir. |
cpu.clusters.core'lar | Her CPU kümesinin içerdiği çekirdek sayısı. | 4, 2 | Yalnızca heterojen CPU mimarisine sahip cihazlar için gereklidir. Giriş sayısı ve sırası, cpu.active ve cpu.speeds için küme girişi sayısıyla eşleşmelidir. İlk giriş, küme0'daki CPU çekirdeği sayısını temsil eder, ikinci giriş, küme1'deki CPU çekirdeği sayısını temsil eder ve bu şekilde devam eder. |
pil kapasitesi | mAh cinsinden toplam pil kapasitesi. | 3000 mAh | - |
Düşük Enerji (LE) ve Bluetooth taramaları
Android 7.0 çalıştıran cihazlarda sistem, Düşük Enerji (LE) taramaları ve Bluetooth ağ trafiği (RFCOMM ve L2CAP gibi) için veri toplar ve bu etkinlikleri başlatan uygulamayla ilişkilendirir. Bluetooth taramaları, taramayı başlatan uygulamayla ilişkilendirilir ancak toplu taramalar ilişkilendirilmez (ve bunun yerine Bluetooth uygulamasıyla ilişkilendirilir). N milisaniye süren bir uygulama taraması için, taramanın maliyeti N milisaniye rx süresi ve N milisaniye tx süresidir; kalan tüm denetleyici süresi ağ trafiğine veya Bluetooth uygulamasına atanır.