Cihaz üreticileri, şurada bir bileşen güç profili sağlamalıdır:
/frameworks/base/core/res/res/xml/power_profile.xml
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ı belirleyin).
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 üzeri sürümleri çalıştıran Bluetooth, modem ve kablosuz ağ kumandaları olan cihazlar değeri, yonga seti verilerinden elde edilen ek güç değerleri sağlayabilir.
Heterojen CPU'ları olan cihazlar
Heterojen mimariye sahip CPU çekirdeğine 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ümenin desteklediği 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 sayılar, çekirdek cihaz ağacındaki CPU çekirdekleri sırasına göre atanır. Örneğin, örnek verecek olursak çekirdekler:
- küme0, cpu0-3'ten oluşur
- küme1 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
.
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 dosya için power_profile.xml.
Ad | Açıklama | Örnek değer | Notlar |
---|---|---|---|
ambient.açık | Ekran kapalı değil doz/ambiyans/her zaman açık modundayken ek güç kullanılır. | yaklaşık 100 mA | - |
screen.on | Ekran en düşük 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. |
ekran.tam | Ekran minimum parlaklıktayken ekran maksimum parlaklıktayken kıyasla kullanılan ek güç. | 100 mA-300 mA | Bu değerin bir kısmı (ekran parlaklığına bağlı olarak) "screen.on" değerini kullanabilirsiniz. |
kablosuz.açık | Kablosuz ağ açık ancak alım yapılmazsa ek güç kullanılır. etkili bir yoludur. | 2 mA | - |
wifi.active | Kablosuz ağ üzerinden veri gönderirken veya alırken kullanılan ek güç. | 31 mA | - |
wifi.scan | Kablosuz bağlantı, erişim noktalarını tararken kullanılan ek güç. | 100 mA | - |
Ses | DSP aracılığıyla ses kodunu çözerken/kodlamayı gerçekleştirirken kullanılan ek güç. | yaklaşık 10 mA | TTP ses 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 için kamera alt sisteminin ortalama güç kullanımı uygulamasını indirin. | 600 mA | Önizleme çalıştıran bir uygulama için kaba bir tahmin olarak tasarlanmıştır ve dakikada yaklaşık 10 tam çözünürlüklü resim çekmeyi başardık. |
camera.flashlight | Açıldığında kamera flaşı modülü tarafından kullanılan ortalama güç. | 200 mA | - |
gps.sinyal kalitesine dayalı | Sinyal gücüne bağlı olarak GPS tarafından kullanılan ek güç. Bu, birden çok değere sahip bir giriştir en zayıfdan en güçlüye doğru sinyal gücü başına bir giriş yapılmalıdır. | 30 mA, 10 mA | - |
gps.on | GPS sinyal alırken kullanılan ek güç. | 50 mA | - |
radyo.aktif | 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ı olabilir veya sinyal gücü arttıkça azalabilir. Yalnızca bir değer sağlarsanız tüm değerler için aynı değer kullanılır güçlü yönler. İ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 | Boştayken Bluetooth denetleyicinin ortalama akım tüketimi (mA). | - | Bu değerler tahmin edilmez ancak şirketin veri sayfasından alınmıştır.
çok önemli. Birden fazla alma veya iletme durumu varsa ortalama
olduğu anlamına gelir. Ayrıca, sistem artık Google tarafından sunulan
Düşük Enerji (LE) ve Bluetooth taramaları. Android 7.0 ve sonraki sürümlerde artık bluetooth.active için Bluetooth güç değerlerini kullanmıyor (Bluetooth A2DP üzerinden ses çalarken kullanılır) ve bluetooth.on (şurada kullanılır: Bluetooth açık ancak boşta). |
bluetooth.controller.rx | Alım sırasında Bluetooth denetleyicinin ortalama akım çekimi (mA) değeri. | - | |
bluetooth.controller.tx | Bluetooth denetleyicinin veri aktarırken kullandığı ortalama akım (mA). | - | |
bluetooth.controller.voltaj | Bluetooth denetleyicinin ortalama çalışma voltajı (mV). | - | |
modem.controller.sleep | Uykudayken modem denetleyicisinin ortalama akım çizimi (mA). | 0 mA | Bu değerler tahmini değildir ve 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 | Boştayken modem denetleyicisinin ortalama akım çizimi (mA). | - | |
modem.controller.rx | Alma sırasında modem denetleyicisinin ortalama akım çekişimi (mA). | - | |
modem.controller.tx | Farklı RF gücünde iletim yaparken modem denetleyicisinin ortalama akım çekişimi (mA) seviyelere dokunun. 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.boşta | Boştayken kablosuz kumandanın ortalama akım çekişimi (mA). | - | Bu değerler tahmin edilmez ancak şirketin veri sayfasından alınmıştır. çok önemli. Birden fazla alma veya gönderme durumu varsa ortalama olduğu anlamına gelir. |
wifi.controller.rx | Alıcı modundayken kablosuz kontrol cihazının ortalama akım tüketimi (mA). | - | |
wifi.controller.tx | İletim sırasında kablosuz kumandanın ortalama akım çekişimi (mA). | - | |
wifi.denetleyici.voltaj | Wi-Fi denetleyicinin ortalama çalışma voltajı (mV). | - | |
cpu.hız | 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, 1000.000 KHz, 1500.000 KHz | Girişlerin sayısı ve sırası, cpu.active parametresindeki mA girişleriyle eşleşmelidir. |
cpu.boşta | CPU'lar (ve SoC) sistem askıya alma durumundayken sistem tarafından çekilen toplam güç. | 3 mA | - |
cpu.uyanık | CPU'lar planlamada boşta durumdayken (çekirdek boşta döngüsü) kullanılan ek güç; sistem askıya alınmış durumda değildir. | 50 mA | Platformunuz farklı şekillerde kullanılan birden fazla boşta kalma durumuna sahip olabilir Güç tüketimi seviyeleri; daha uzun süre temsili bir boşta kalma durumu seçin zamanlayıcının boşta kalma süreleri (birkaç milisaniye). Ö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.etkin | Farklı hızlarda çalışırken CPU'ların 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ş, daha önce küme0'daki CPU çekirdeği sayısını gösterir. İkinci giriş, Küme1'deki CPU çekirdekleri vb. |
battery.capacity | mA/sa cinsinden toplam pil kapasitesi. | 3.000 mAh | - |
Düşük Enerji (LE) ve Bluetooth taramaları
Sistem, Android 7.0 çalıştıran cihazlarda Düşük Enerji (LE) için veri toplar. ve Bluetooth ağ trafiğini (RFCOMM ve L2CAP gibi) tarar ve başlatma uygulamasıyla bu işlemleri gerçekleştirmemiz gerekir. Bluetooth taramaları ilişkili ancak toplu taramalar henüz başlatılmamış (ve Bluetooth uygulamasıyla ilişkilendirilir). Uygulama için N milisaniyelik tarama yapılırsa taramanın maliyeti N milisaniyelik rx süresidir ve N milisaniyelik işlem süresi; kalan tüm kumanda süresi şuna atanır: ağ trafiği veya Bluetooth uygulamasına bağlı olarak değişir.