Güç istatistikleri HAL

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 her PowerEntity 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 verileri power_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);