Google 致力于为黑人社区推动种族平等。查看具体举措
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Donanım Besteci HAL

Hardware Composer (HWC) HAL, mevcut donanımla tamponları birleştirmenin en verimli yolunu belirler. Bir HAL olarak, uygulaması cihaza özgüdür ve genellikle ekran donanımı OEM tarafından yapılır.

Bu yaklaşımın değerini, GPU yerine ekran donanımında birden çok arabelleği birleştiren bindirme düzlemlerini düşündüğünüzde fark etmek kolaydır. Örneğin, üstte durum çubuğu, altta gezinme çubuğu ve diğer her yerde uygulama içeriği bulunan dikey yönde tipik bir Android telefonu düşünün. Her katmanın içeriği ayrı tamponlardadır. Aşağıdaki yöntemlerden birini kullanarak kompozisyonu yönetebilirsiniz:

  • Uygulama içeriğini bir çalışma arabelleğine dönüştürmek, ardından durum çubuğunu bunun üzerinde, gezinme çubuğunu bunun üzerine oluşturmak ve son olarak çalışma arabelleğini ekran donanımına geçirmek.
  • Üç arabellek de ekran donanımına aktarılır ve ona, ekranın farklı bölümleri için farklı arabelleklerden veri okuma talimatı verilir.

İkinci yaklaşım, önemli ölçüde daha verimli olabilir.

Ekran işlemci yetenekleri önemli ölçüde değişiklik gösterir. Katmanlar ister döndürülebilir ister karıştırılabilir olsun, bindirme sayısı ve konumlandırma ve örtüşme üzerindeki kısıtlamaların bir API aracılığıyla ifade edilmesi zor olabilir. Bu seçenekleri barındırmak için HWC aşağıdaki hesaplamaları yapar:

  1. SurfaceFlinger, HWC'ye tam bir katman listesi sağlar ve "Bunu nasıl halletmek istiyorsunuz?" Diye sorar.
  2. HWC, her katmanı cihaz veya istemci bileşimi olarak işaretleyerek yanıt verir.
  3. SurfaceFlinger herhangi bir müşteriyle ilgilenir, çıktı tamponunu HWC'ye iletir ve geri kalanı HWC'ye verir.

Donanım satıcıları karar verme kodunu özel olarak uyarlayabildiğinden, her cihazdan en iyi performansı elde etmek mümkündür.

Ekrandaki hiçbir şey değişmediğinde, bindirme düzlemleri GL kompozisyonundan daha az verimli olabilir. Bu, özellikle bindirme içerikleri saydam piksellere sahip olduğunda ve üst üste binen katmanlar karıştırıldığında doğrudur. Bu gibi durumlarda, HWC katmanlar bazısı veya tamamı için GLES bileşimini talep edebilir ve birleştirilmiş tamponu tutabilir. SurfaceFlinger aynı tampon setini birleştirmek isterse, HWC önceden birleştirilmiş çalışma tamponunu gösterebilir. Bu, boşta olan bir cihazın pil ömrünü artırabilir.

Android cihazlar genellikle dört bindirme düzlemini destekler. Kaplamalardan daha fazla katmanı birleştirmeye çalışmak, sistemin bazıları için GLES bileşimini kullanmasına neden olur, yani bir uygulama tarafından kullanılan katman sayısının güç tüketimi ve performans üzerinde ölçülebilir bir etkisi olabilir.