Cihazın alt sistem gücü genellikle laboratuvar ortamında ölçülüp kaydedilir. sabit durum koşulları (ör. ekranın açık olması veya cihaz boşta güç durumunda. Bu, sabit bir değeri olan alt sistemlerde de güç tüketimi veya laboratuvar ortamlarında kolayca ölçülebilen koşullar altında Ancak bu, ekranda video gösterilmesi gibi belirli kullanım alanları için geçerli değildir.
IPower.hal 1.0
,
güvenlik ipuçlarını kullanabilir ve alt sistem uyku durumu metrikleriyle ilgili kümülatif verileri raporlayabilirsiniz.
Android 10 ve sonraki sürümlerde kümülatif istatistik raporlama işlevi
IPowerStats.hal
güç istatistiği toplama API'lerinde bulunur ve
cihaz üzerindeki enerji kullanımı verilerini almanın bir yolunu sunar. Bu,
IPower.hal
arayüzünün kümülatif istatistik toplama kısmı,
ayırt edici özellikleri vardır.
IPowerStats
hizmeti ölçümleri düzenli değildir. Etkinlik zamanı
önemli anlar (ör. pil seviyesi% 1 azaldı). Okuma sıklığı daha az
pilin şarjı azaldığında ve yüksek olduğunda daha sık gerçekleşir. Veriler,
sunuculara gönderilir ve analiz ile öncelik belirleme amacıyla hata raporlarında kullanılabilir.
Bu yaklaşım, güç tüketimini azaltmaya ve
pil ömrü.
IPower.hal ve IPowerStats.hal
Android 10'da hem IPower.hal
hem de
IPowerStats.hal
arayüzü kullanılabilir ancak
IPower.hal
istatistik toplama işlevi yalnızca
IPowerStats.hal
arayüzünden erişilebilir. İlgili içeriği oluşturmak için kullanılan
IPowerStats.hal
işlevi, edinilmesi ve kullanılması için API'ler içerir
desteklenen cihazlar için cihaz üzerindeki güç ölçümlerinden toplanan veriler:
- Hem düşük frekanslar için ray düzeyinde enerji ölçümleri yapar
(
getRailInfo
) ve yüksek sıklık (streamEnergyData
) ve açılıştan itibaren birikmiş enerji raporlarını görebilirsiniz. - Verilerin mevcut olduğu desteklenen
PowerEntity
ile ilgili bilgiler.PowerEntity
toplamı etkileyen bir platform alt sistemi, çevre birimi veya güç alanıdır tüketim verilerini görebilirsiniz. - Güçlü varlık durumları grubunu (
getPowerEntityStateInfo
) bildirir sağlanan yerleşim verilerini sunar, ardından belirtilen herPowerEntity
için birikmiş veri.
IPowerStats.hal
API'leri aşağıdaki istemciler tarafından kullanılıyor:
- Ray başına güç tüketimi metriklerini toplamak için
Statsd
. Perfetto
, güç tüketimini CPU ile ilişkilendirmek için etkinliği'ne dokunun.Batterystats
(ölçülen değerleri kullanarak pil ilişkilendirmeyi iyileştirmek için) önceden tanımlanmış sabit değerlerden pil tüketimini tahmin etmek yerine verileripower_profile.xml.
içinde
Android 10 ve sonraki sürümlerde cihaz üreticisi şu seçeneklerden birini tercih edebilir:
IPower.hal
ve IPowerStats.hal
işlevleri vardır, ancak
tüm müşteriler IPower.hal
IPowerStats.hal
uygulanmadı .
IPowerStats.hal uygulama seçenekleri
Android 7'de yalnızca IPower.hal
işlevleri kullanılabilir.
Android 9'a kadar kullanılabilir. Android 10'a yükseltilmiş cihazlar
donanım güç izleme alt sistemine veya izlemek üzere kullanılabilecek başka araçlara sahip olma
güç istatistiklerini kaydedebilirsiniz. Bazı SoC'ler
güç kullanım istatistiklerinizi alabilir veya yetkili tüzel kişinin devlet mükellefi olabilir
yazılım yoluyla
bilgi edinmeye çalışır. Güç izleme donanımı yalnızca
getRailInfo()
, getEnergyData()
ve
streamEnergyData()
.
IPowerStats.hal
uygulamasını güç izleme olmadan uygularsanız
donanım, getRailInfo(), getEnergyData()
ve
streamEnergyData()
, NOT_SUPPORTED
tarihinde döndü. Aynı şekilde,
getPowerEntityInfo(), getPowerEntityStateInfo()
ve
getPowerEntityStateResidencyData()
aynı zamanda geri dönebilir
Kullanım amacında değilse NOT_SUPPORTED
.
Ray izleme API'leri tarafından döndürülen verilere örnek olarak şunlar verilebilir:
- Ekranın güç hattı X μW tüketildi.
- Modemin güç hattı, Y μW tüketti.
Alt sistem uyku durumu API'leri tarafından döndürülen verilere örnekler:
- Modem X ms. boyunca uykuda kaldı.
- SoC, Y ms boyunca güç daraltma durumundaydı.
- GPU, Z ms boyunca askıya alma durumundaydı.
Donanım güç izleme alt sistemi kullan
Cihazınızın tasarımında güç izleme alt sistemi varsa
Tek bir sysfs düğümü oluşturarak IPowerStats.hal
Burada PowerStats.hal
, verileri ayrıştırabilir veya
ioctl türündeki sistem çağrılarının toplamıdır.
Çekirdek sürücünüzü, toplayıcı bileşeninin taşma. Kullanılan algoritma, benzersiz güç izleme donanımınıza bağlıdır hem anlık hem de ortalama yol voltajı sağlaması gereken alt sistem tasarımı ve mevcut ölçümler. Çekirdek sürücüsü, bu verileri ya da elektrik akülerini temizlemez ve açılıştan itibaren her alt ray için 64 bit biçiminde birikmiş enerji verileri her toplayıcıdan gelen enerji ölçümüyle artan değişken emin olun.
Belirli bir bileşen (veya isteğe bağlı olarak birden çok bileşen) için istatistikler şurada olmalıdır: tek bir düğümle takip edin. Bu, sysfs'in geleneksel bir kullanımı olmasa da (normalde her düğümü tek bir değerle sınırlandırır) tüm verilerin tutarlıdır.
Tasarım rehberliği
- sysfs düğümüne veya sistem çağrıları yapma.
- Destekleyici istatistik işlevinin güç tüketimi:
- İzlemek için erişim noktası (AP) ve/veya alt sistem uyandırma sayısını artırma uyku modunda harcanan süre gibi parametrelere karşılık gelir.
- İstatistikleri uygulama işlemcisi ve donanım yazılımı arasında uygun şekilde aktarın diğer trafik için de kullanabilirsiniz.
- Gerekirse alt sistem aşağıdaki sürücü işlevlerini kullanabilir:
- Biraz zaman harcamadan gecikme/uyandırma durumlarını önlemek için verileri dahili olarak önbelleğe alma eski verilerdir.
- Güncellenmiş veriler sağlamak için alt sistem uykudayken ekstrapolasyon yapma alt sistemi uyandırmadan çalışır.
Bileşenleri, alt sistemleri ve istatistikleri seçme
Hangi bileşenlerin veya alt sistemlerin toplanacağını seçerken
IPowerStats.hal
verileri; cihazda, tüketilen her şeyi seçin
yüksek akım (5 mA veya daha fazla) ya da
birden fazla güç tüketimi modu vardır. Örneğin:
- Ayrı SoC alt sistemleri.
- SoC'nin dışında kısmen veya tamamen dışında alt sistemler (ör. kablosuz ağ, güvenlik işlemcisi olabilir.
- Yüksek güçlü LED'ler ve kameralar gibi çevre birimleri
- Farklı modlar kullanan güç alanları (bir bütün olarak SoC'nin güç alanı gibi).
Özelleştirme
İsteğe bağlı olan bu özellik özelleştirilmeye uygundur. Tasarım kullanım alanları ve kullanımınızı özelleştirin:
- Hangi reklam aralıklarının ne sıklıkta ölçüleceğine karar verin.
- Verileri ne zaman okuyacağınıza ve nasıl yorumlayacağınıza karar verin.
- Verilerinize dayalı olarak hangi işlemi ne zaman yapacağınıza karar verin.
Doğrulama
VTS testleri, Android şartlarının karşılanmasını sağlar. Yorumlardaki yorumlar
IPowerStats.hal
, cihazın şurada olduğunu doğrulamak için kullanılır:
uygunluk açısından önemlidir.
Örneğin, getRailInfo()
adını ararsanız ve hiçbir şey döndürmezse
izlenen cihaz hakkında bilgi almadığınız için VTS testi
veya SUCCESS
durumu döndürüldü. Aynı şekilde,
ancak bunlarla birlikte NON_SUPPORTED
veya
FILE_SYSTEM_ERROR
yanıtı. Bu da bir hata. VTS
HAL dosyasında cihaz üreticisinin spesifikasyonuna uyulduğunu doğrular,
IPower.hal ve IPowerStats.hal yorumlarındaki gereksinimleri kullanarak.
VTS testinde kullanılan yorumların bir örneği aşağıda gösterilmiştir:
/** * Rail information: * Reports information related to the rails being monitored. * * @return rails Information about monitored rails. * @return status SUCCESS on success or NOT_SUPPORTED if * feature is not enabled or FILESYSTEM_ERROR on filesystem nodes * access error. */ getRailInfo() generates(vec<e;RailInfo>e; rails, Status status);