Güç Değerlerinin Ölçülmesi

Aygıt üreticileri /frameworks/base/core/res/res/xml/power_profile.xml bir bileşen güç profili /frameworks/base/core/res/res/xml/power_profile.xml .

Güç profilleri için değerleri 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ğu şekilde diğer temel güç kullanımlarından farklılıklar elde ederek).

Bir güç profilinin amacı pil tüketimini uygun şekilde tahmin etmek olduğundan, güç profili değerleri akım (amper) cinsinden verilmiştir. Android çerçevesi, akımı alt sistemin aktif olduğu süre ile çarpar ve daha sonra uygulama / alt sistem tarafından boşaltılan pil miktarını tahmin etmek için kullanılan mAh değerini hesaplar.

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

Heterojen CPU'lara sahip cihazlar

Heterojen mimariye sahip CPU çekirdeklerine sahip aygıtlar için 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 için küme numarasını dizinin adına ekleyin. Küme numaraları, çekirdek aygıt 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 içindeki sysfs dosyalarından istatistikleri okurken bu CPU çekirdek numaralarını kullanır.

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 tablo, mevcut güç değeri ayarlarını açıklamaktadır. Örnek dosyayı AOSP'de görüntülemek için bkz. Power_profile.xml .

İsim Soyisim Açıklama Örnek Değer Notlar
ambient.on Ekran kapalı yerine doz / 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 kontrolör ve ekran arka ışığı içerir. 0 parlaklıkta,% 10 veya% 20 olma eğiliminde olan minimum Android değil.
screen.full 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.on Wi-Fi açıldığında, ancak alınmadığında, iletilmediğinde veya taranmadığında kullanılan ek güç. 2 mA -
wifi.active 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 sesi için kullanılır.
video DSP aracılığıyla video kod çözerken kullanılan ek güç. yaklaşık 50 mA DSP video için kullanılır.
camera.avg Tipik bir kamera uygulaması için kamera alt sistemi tarafından ortalama güç kullanımı. 600 mA Önizlemeyi ç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 Açıkken kamera flaş modülü tarafından kullanılan ortalama güç. 200 mA -
gps.signalqualitybased GPS tarafından sinyal gücüne dayalı olarak kullanılan ek güç. Bu, en zayıftan en güçlüye sinyal gücü başına bir çoklu değer 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 kuleyi aradığında 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 (sinyal yok, zayıf, orta, güçlü). 1,2 mA Bazı telsizler, bir baz istasyonu aradıklarında ve bir sinyal algılamadıkları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 kullanılır, 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 denetleyicinin 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. Ek olarak, sistem artık Düşük Enerji (LE) ve Bluetooth taramaları için veri toplamaktadır.

Android 7.0 ve sonraki sürümler artık 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ğerlerini kullanmaz.
bluetooth.controller.rx Bluetooth denetleyicinin alırken ortalama akım çekişi (mA). -
bluetooth.controller.tx Bluetooth denetleyicinin iletim sırasında ortalama akım çekişi (mA). -
bluetooth.controller.voltage Bluetooth denetleyicinin ortalama çalışma voltajı (mV). -
modem.controller.sleep Modem denetleyicisinin uyurken 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 fazla iletim durumu varsa, Android 9'dan itibaren her iletim durumu için bir değer belirtilmesi desteklenmektedir.
modem.controller.idle Boştayken modem denetleyicisinin ortalama akım çekişi (mA). -
modem.controller.rx Modem denetleyicisinin alırken ortalama akım çekişi (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.controller.voltage Modem denetleyicisinin ortalama çalışma voltajı (mV). -
wifi.controller.idle Boştayken Wi-Fi denetleyicinin 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 Wi-Fi denetleyicisinin alırken ortalama akım çekişi (mA). -
wifi.controller.tx Wi-Fi denetleyicisinin iletim sırasında ortalama akım çekişi (mA). -
wifi.controller.voltage Wi-Fi denetleyicisinin ortalama çalışma voltajı (mV). -
cpu.speeds Bu, her olası 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 bekleme durumundayken sistem tarafından çekilen toplam güç. 3 mA -
cpu.awake CPU'lar boşta kalma durumunu planlarken (ç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 birden fazla boşta durumuna sahip olabilir; Daha uzun süre programlayıcı boşta kalma süresi (birkaç milisaniye) için temsili bir boşta 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üketimde olduğu örnekleri seçin.
cpu.active 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 içindeki 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 . Girdi sayısı ve sırası, cpu.active ve cpu.speeds için küme girdilerinin sayısıyla eşleşmelidir. İlk giriş, cluster0'daki CPU çekirdeği sayısını temsil eder, ikinci giriş, cluster1'deki CPU çekirdeği sayısını temsil eder ve bu böyle devam eder.
pil kapasitesi 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 değildir (ve bunun yerine Bluetooth uygulamasıyla ilişkilendirilir). N milisaniyeyi tarayan bir uygulama 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.