Güç değerlerini ölçme

Cihaz üreticileri, /frameworks/base/core/res/res/xml/power_profile.xml içinde bileşen güç profili sağlamalıdır.

Güç profillerinin değerlerini belirlemek için cihazın kullandığı gücü ölçen donanım kullanın ve bilgiye ihtiyaç duyulan çeşitli işlemleri gerçekleştirin. Bu işlemler sırasında güç kullanımını ölçün ve değerleri hesaplayın (diğer temel güç kullanımlarından uygun şekilde farklılıklar elde edin).

Güç profilinin amacı pil tüketimini uygun şekilde tahmin etmek olduğundan güç profili değerleri akım (amper) cinsinden verilir. Android çerçevesi, mevcut değeri alt sistemin etkin olduğu süreyle çarpar ve mAh değerini hesaplar. Bu değer daha sonra uygulama veya alt sistem tarafından boşaltılan pil miktarını tahmin etmek için kullanılır.

Android 7.0 ve sonraki sürümleri çalıştıran Bluetooth, modem ve kablosuz denetleyicilere sahip cihazlar, yonga seti verilerinden elde edilen ek güç değerleri sağlayabilir.

Heterojen CPU'lara sahip cihazlar

Heterojen mimaride CPU çekirdeklerine sahip cihazların güç profilinde aşağıdaki ek alanlar bulunmalıdır:

  • Her kümenin toplam CPU sayısı (cpu.clusters.cores olarak 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 üzere dizi adına küme numarasını ekleyin. Küme numaraları, çekirdek cihaz ağacındaki CPU çekirdeklerinin sırasına göre atanır. Örneğin, dört (4) çekirdekli iki (2) kümesi olan heterojen bir mimaride:

  • cluster0, cpu0-3'ten oluşuyor
  • cluster1, cpu4-7'den oluşuyor

Android çerçevesi, sysfs dosyalarındaki istatistikleri okurken 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 tabloda, kullanılabilen güç değeri ayarları açıklanmaktadır. AOSP'deki örnek dosyayı görüntülemek için power_profile.xml dosyasına bakın.

Ad Açıklama Örnek değer Notlar
ambient.on Ekran kapalı yerine uyku/ortam/her zaman açık modundayken daha fazla güç kullanılır. yaklaşık 100 mA -
screen.on Ekran minimum parlaklıkta açıkken kullanılan ek güç. 200 mA Dokunmatik kumanda ve ekran arka ışığı dahildir. Android'in minimum parlaklığı genellikle %10 veya %20 olsa da bu değer %0'dır.
screen.full Ekran maksimum parlaklıktayken kullanılan ek güç, ekran minimum parlaklıktayken kullanılan ek güçle karşılaştırılır. 100 mA-300 mA Ekranın güç kullanımını hesaplamak için bu değerin bir kısmı (ekran parlaklığına göre) screen.on değerine eklenir.
wifi.on Kablosuz bağlantı açıkken ancak veri almadığında, iletmediğinde veya taramadığında kullanılan ek güç. 2 mA -
wifi.active Kablosuz ağ üzerinden iletim veya alım yapılırken ek güç kullanılır. 31 mA -
wifi.scan Kablosuz bağlantı, erişim noktalarını tararken ek güç kullanılır. 100 mA -
Ses DSP üzerinden ses kod çözme/kodlama sırasında ek güç kullanılır. yaklaşık 10 mA DSP sesi için kullanılır.
video DSP üzerinden video kod çözme işlemi sırasında ek güç kullanılır. yaklaşık 50 mA DSP videosu için kullanılır.
camera.avg 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ü resim çeken bir uygulama için kabaca bir tahmin olarak tasarlanmıştır.
camera.flashlight Kamera flaş modülü açıkken kullanılan ortalama güç. 200 mA -
gps.signalqualitybased GPS tarafından kullanılan ek güç, sinyal gücüne bağlıdır. Bu, çok değerli bir giriştir. Sinyal gücü başına bir tane olmak üzere en zayıftan en güçlüye doğru sıralanır. 30 mA, 10 mA -
gps.on GPS sinyal alırken daha fazla güç kullanılır. 50 mA -
radio.active Hücresel radyo iletim/alma işlemi yaparken kullanılan ek güç. 100 mA-300 mA -
radio.scanning Hücresel radyo kuleye çağrı gönderdiğinde kullanılan ek güç. 1,2 mA -
radio.on Hücresel radyo açıkken kullanılan ek güç. Bu, çok değerli bir giriştir. Sinyal gücü başına bir giriş (sinyal yok, zayıf, orta, güçlü). 1,2 mA Bazı radyolar, baz istasyonu ararken ve sinyal algılamadığında gücü artırır. Değerler aynı olabilir veya sinyal gücü arttıkça azalabilir. Yalnızca bir değer sağlarsanız tüm güçler için aynı değer kullanılır. İki değer sağlarsanız ilki sinyal yok için, ikincisi ise diğer tüm güçler için kullanılır.
bluetooth.controller.idle Bluetooth denetleyicinin boşta kaldığında ortalama akım çekme değeri (mA). - Bu değerler tahmin edilmez, ancak denetleyicinin veri sayfasından alınır. Birden fazla alma veya iletme 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ümlerde bluetooth.active (Bluetooth A2DP üzerinden ses çalarken kullanılır) ve bluetooth.on (Bluetooth açıkken ancak boşta olduğunda kullanılır) için Bluetooth güç değerleri kullanılmıyor.
bluetooth.controller.rx Alırken Bluetooth denetleyicisinin ortalama akım çekimi (mA). -
bluetooth.controller.tx Bluetooth denetleyicinin iletim sırasında ortalama akım çekimi (mA). -
bluetooth.controller.voltage Bluetooth denetleyicisinin ortalama çalışma voltajı (mV). -
modem.controller.sleep Modem denetleyicisinin uyku modundayken ortalama akım çekimi (mA). 0 mA Bu değerler tahmin edilmez, ancak denetleyicinin veri sayfasından alınır. Birden fazla alma durumu varsa bu durumların ortalaması alınır. Birden fazla iletim durumu varsa Android 9'dan itibaren her iletim durumu için bir değer belirtme desteklenir.
modem.controller.idle Modem denetleyicinin boşta kaldığında ortalama akım çekme değeri (mA). -
modem.controller.rx Alırken modem denetleyicisinin ortalama akım çekme değeri (mA). -
modem.controller.tx Farklı RF gücü seviyelerinde iletim yaparken modem denetleyicisinin ortalama akım çekimi (mA). Bu, her iletim gücü seviyesi için bir değer içeren çok değerli bir giriştir. 100 mA, 200 mA, 300 mA, 400 mA, 500 mA
modem.controller.voltage Modem denetleyicisinin ortalama çalışma gerilimi (mV). -
wifi.controller.idle Boşta kaldığında Wi-Fi denetleyicisinin ortalama akım çekme değeri (mA). - Bu değerler tahmin edilmez, ancak denetleyicinin veri sayfasından alınır. Birden fazla alma veya iletme durumu varsa bu durumların ortalaması alınır.
wifi.controller.rx Alırken Wi-Fi denetleyicisinin ortalama akım çekme değeri (mA). -
wifi.controller.tx Veri iletirken Wi-Fi denetleyicisinin ortalama akım çekme değeri (mA). -
wifi.controller.voltage Kablosuz denetleyicinin ortalama çalışma gerilimi (mV). -
cpu.speeds Bu, olası her CPU hızını KHz cinsinden listeleyen çok değerli bir giriştir. 125.000 KHz, 250.000 KHz, 500.000 KHz, 1.000.000 KHz, 1.500.000 KHz Girişlerin sayısı ve sırası, cpu.active içindeki mA girişleriyle eşleşmelidir.
cpu.idle CPU'lar (ve SoC) sistem askıya alma durumundayken sistemin çektiği toplam güç. 3 mA -
cpu.awake CPU'lar planlama boşta durumundayken (çekirdek boşta döngüsü) ek güç kullanılır. Sistem, sistem askıya alma durumunda değildir. 50 mA Platformunuzda farklı güç tüketimi seviyeleriyle kullanılan birden fazla boşta kalma durumu olabilir. Zamanlayıcının daha uzun süre boşta kaldığı (birkaç milisaniye) 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 kalma modundan çıktığı daha yüksek örnekleri ise atın.
cpu.active CPU'lar farklı hızlarda çalışırken 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ü gösterir. Ç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 dosyasındaki girişlerin sayısı ve sırasıyla aynıdır.
cpu.clusters.cores 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şlerinin sayısıyla eşleşmelidir. İlk giriş, cluster0'daki CPU çekirdeklerinin sayısını, ikinci giriş ise cluster1'deki CPU çekirdeklerinin sayısını gösterir.
battery.capacity Toplam pil kapasitesi (mAh). 3.000 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 (ör. RFCOMM ve L2CAP) 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 (bunun yerine Bluetooth uygulamasıyla ilişkilendirilir). N milisaniye boyunca tarama yapan bir uygulama için tarama 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.