Güç değerlerini ölçme

Cihaz ü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 ve bilgi gerektiren çeşitli işlemleri gerçekleştiren donanım kullanın. Bu işlemler sırasında güç kullanımını ölçün ve değerleri hesaplayın (uygun olduğunda diğer referans güç kullanımlarından farklılıkları çıkarın).

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 etkin olduğu süreyle çarpar ve mAh değerini hesaplar. Bu değer daha sonra uygulama veya alt sistem tarafından tüketilen 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 ağ denetleyicilerine sahip cihazlar, yonga seti verilerinden elde edilen ek güç değerleri sağlayabilir.

Çeşitli 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 olarak ifade edilir).
  • Her küme tarafından desteklenen CPU hızları.
  • Her küme için etkin CPU güç tüketimi.

Etkin CPU güç tüketimi ile kümeler için desteklenen CPU hızları arasında ayrım yapmak üzere küme numarasını dizinin adına 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ümeye sahip heterojen bir mimaride:

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

Android çerçevesi, /sys/devices/system/cpu/cpu<number>/cpufreq/stats dosyalarındaki istatistikleri okurken bu CPU çekirdek numaralarını kullanır: /sys/devices/system/cpu/cpu<number>/cpufreq/stats.sysfs

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'teki örnek dosyayı görüntülemek için power_profile.xml dosyasını inceleyin.

Ad Açıklama Örnek değer Notlar
ambient.on Ekran kapalı değilse bekleme/ortam/her zaman açık modundayken kullanılan ek güç. yaklaşık 100 mA -
screen.on Ekran minimum parlaklıkta açıldığında kullanılan ek güç. 200 mA Dokunmatik kumanda ve ekran arka ışığı dahildir. Android'in minimum parlaklık ayarı olan %10 veya %20 yerine 0 parlaklık.
screen.full Ekran minimum parlaklıktayken ekran maksimum parlaklıktayken kullanılan ek güç. 100 mA-300 mA Ekranın güç tüketimini 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 sinyal almıyor, aktarmıyor veya taramıyordur. 2 mA -
wifi.active Kablosuz ağ üzerinden veri gönderirken veya alırken kullanılan ek güç. 31 mA -
wifi.scan Kablosuz ağ, erişim noktaları için tarama yaparken kullanılan ek güç. 100 mA -
Ses DSP aracılığıyla ses kod çözme/kodlama işlemi yapılırken kullanılan ek güç. yaklaşık 10 mA DSP sesi için kullanılır.
video DSP üzerinden video kod çözme işlemi yapılırken kullanılan ek güç. 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 kaba bir tahmin olarak tasarlanmıştır.
camera.flashlight Açıkken kamera flaş modülü tarafından kullanılan ortalama güç. 200 mA -
gps.signalqualitybased 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 birden çok değer içeren bir giriştir. 30 mA, 10 mA -
gps.on GPS sinyal alırken kullanılan ek güç. 50 mA -
radio.active Hücresel radyo veri gönderirken/alırken kullanılan ek güç. 100 mA-300 mA -
radio.scanning Hücresel radyo baz istasyonuna çağrı gönderirken kullanılan ek güç. 1,2 mA -
radio.on Hücresel radyo açıkken kullanılan ek güç. Bu, sinyal gücü başına bir tane olmak üzere birden çok değer içeren bir giriştir (sinyal yok, zayıf, orta, güçlü). 1,2 mA Bazı radyolar, baz istasyonu aradığında ve sinyal algılamadığında gücü artırır. Değerler aynı kalabilir veya sinyal gücü arttıkça 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 ilk değer sinyal yokluğu için, ikinci değer diğer tüm sinyal güçleri için kullanılır.
bluetooth.controller.idle Bluetooth denetleyicinin boştayken ortalama akım tüketimi (mA). - Bu değerler tahmini değil, denetleyicinin veri sayfasından alınmıştır. Birden fazla alma veya aktarım durumu varsa bu durumların ortalaması alınır. Ayrıca sistem artık Düşük Enerji (LE) ve Bluetooth taramaları ile ilgili verileri de topluyor.

Android 7.0 ve sonraki sürümlerde bluetooth.active (Bluetooth A2DP üzerinden ses çalarken kullanılır) ve bluetooth.on (Bluetooth açık ancak boştayken kullanılır) için Bluetooth güç değerleri artık kullanılmıyor.
bluetooth.controller.rx Bluetooth denetleyicinin, veri alırken kullandığı ortalama akım (mA). -
bluetooth.controller.tx Bluetooth denetleyicinin veri aktarırken ortalama akım tüketimi (mA). -
bluetooth.controller.voltage Bluetooth denetleyicinin ortalama çalışma voltajı (mV). -
modem.controller.sleep Uyku modunda modem denetleyicisinin ortalama akım tüketimi (mA). 0 mA Bu değerler tahmini değil, denetleyicinin veri sayfasından alınmıştır. Birden fazla alma durumu varsa bu durumların ortalaması alınır. Birden fazla aktarım durumu varsa Android 9'dan itibaren her aktarım durumu için bir değer belirtme özelliği desteklenir.
modem.controller.idle Modem denetleyicisinin boştayken ortalama akım tüketimi (mA). -
modem.controller.rx Modem denetleyicisinin, veri alırken kullandığı ortalama akım (mA). -
modem.controller.tx Modem denetleyicisinin farklı RF güç seviyelerinde iletim yaparken ortalama akım tüketimi (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 voltajı (mV). -
wifi.controller.idle Boştayken kablosuz ağ denetleyicisinin ortalama akım tüketimi (mA). - Bu değerler tahmini değil, denetleyicinin veri sayfasından alınmıştır. Birden fazla alma veya aktarım durumu varsa bu durumların ortalaması alınır.
wifi.controller.rx Alıcı modundayken kablosuz ağ denetleyicisinin ortalama akım tüketimi (mA). -
wifi.controller.tx Aktarım sırasında kablosuz kontrol cihazının ortalama akım tüketimi (mA). -
wifi.controller.voltage Wi-Fi denetleyicinin ortalama çalışma voltajı (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 parametresindeki mA girişleriyle eşleşmelidir.
cpu.idle CPU'lar (ve SoC) sistem askıya alma durumundayken sistem tarafından çekilen toplam güç. 3 mA -
cpu.awake CPU'lar planlamada boş durumdayken (çekirdek boş döngüsü) kullanılan ek güç; sistem askıya alınmış durumda değildir. 50 mA Platformunuzda, farklı güç tüketimi seviyelerine sahip birden fazla boş durumda kalma durumu olabilir. Planlayıcının daha uzun süreler boyunca boş durumda kalması (birkaç milisaniye) için temsili bir boş durumda 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 çalışma durumundan çıktığı daha yüksek örnekleri çıkarın.
cpu.active CPU'ların farklı hızlarda çalışırken kullandığı ek güç. 100 mA, 120 mA, 140 mA, 160 mA, 200 mA Değer, CPU raylarının farklı hızlarda çalışırken kullandığı 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 parametresindeki girişlerin sayısına 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ırası, cpu.active ve cpu.speeds için küme girişi sayısıyla eşleşmelidir. İlk giriş, cluster0'daki CPU çekirdek sayısını, ikinci giriş ise cluster1'deki CPU çekirdek sayısını temsil eder.
battery.capacity mA/sa cinsinden toplam pil kapasitesi. 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) ile ilgili verileri toplar ve bu etkinlikleri başlatan uygulamayla ilişkilendirir. Bluetooth taramaları, taramayı başlatan uygulamayla ilişkilendirilir ancak toplu taramalar ilişkilendirilmez (Bluetooth uygulamasıyla ilişkilendirilir). N milisaniye boyunca tarama yapan bir uygulama için taramanın maliyeti, N milisaniyelik alıcı süresi ve N milisaniyelik verici süresidir. Kalan tüm denetleyici süresi, ağ trafiğine veya Bluetooth uygulamasına atanır.