Ses ısınma

Ses ısınma, cihazınızdaki ses amplifikatör devresinin ısınmasına kadar geçen süredir. tam şarjlı olmalı ve normal çalışma durumuna ulaşmalıdır. Başlıca katkıda bulunanlar güç yönetimi ve her türlü "de-pop" sesi dengeleme mantığı devreye girer.

Bu dokümanda, sesin ısınma süresinin nasıl ölçüleceği ve azaltmanın olası yolları açıklanmaktadır. ısınma süresidir.

Çıkış ısınmasını ölçme

AudioFlinger'ın FastMixer iş parçacığı otomatik olarak çıkış ısınmasını ölçer ve dumpsys media.audio_flinger komutunun çıkışının bir parçası olarak bildirir. Isınma sırasında FastMixer, write() numarasını çağırır iki write() arasındaki süre beklenen miktara ulaşıncaya kadar tekrar tekrar basın. FastMixer write() katmanının (HAL) dengelenmesi gerekiyor.

Sesin ısınmasını ölçmek için dahili hoparlör ve kablolu kulaklıkta aşağıdaki adımları uygulayın zaman alıyor. Isınma süreleri genellikle her çıkış cihazında farklıdır. ve cihazı başlattıktan hemen sonra:

  1. FastMixer'ın etkinleştirildiğinden emin olun.
  2. Ayarlar > Ses > Cihazdaki dokunma sesleri.
  3. Sesin en az üç saniye boyunca kapalı olduğundan emin olun. Beş saniye veya daha uzun süre daha iyidir çünkü donanımın kendi güç mantığı, AudioFlinger'ın sahip olduğu üç saniyeden fazla olabilir.
  4. Ana sayfa düğmesine bastığınızda bir tıklama sesi duyarsınız.
  5. Ölçülen ısınmayı almak için aşağıdaki komutu çalıştırın:
    adb shell dumpsys media.audio_flinger | grep measuredWarmup
    

    Şuna benzer bir çıkış alırsınız:

    sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X
    

    measuredWarmup=X, X milisaniye sayısıdır ilk HAL write() grubunun tamamlanması sürdü.

    warmupCycles=X, kaç HAL yazma isteği aldığını gösterir write() paketinin yürütme zamanı beklenenlerle eşleşene kadar.

  6. Beş ölçüm alıp bunların tümünü ve ortalamalarını kaydedin. Hepsi yaklaşık olarak aynı değilse ölçüm yanlış olabilir. Örneğin, ses kapatıldıktan sonra yeterince beklemezseniz ortalama değerden daha düşük bir ısınma süresi görürsünüz.

Giriş ısınmasını ölç

Şu anda ses girişi ısınmasını ölçmek için kullanılan bir araç bulunmamaktadır. Ancak girdi ısınma süresi gözlemleyerek startRecording() için gereken süre geri dönüyor.

Isınma süresini azaltın

Isınma süresi genellikle aşağıdakilerin birlikte kullanılmasıyla azaltılabilir:

  • İyi devre tasarımı
  • Çekirdek cihaz sürücüsünde doğru zaman gecikmeleri
  • Bağımsız ısınma işlemlerini sıralı bir şekilde değil eşzamanlı olarak gerçekleştirme
  • Devrelerin açık bırakılması veya saatlerin yeniden yapılandırılmaması (boşta güç tüketimini artırır)
  • Hesaplanan parametreleri önbelleğe alma

Ancak, aşırı optimizasyon yapmamaya dikkat edin. Daha sonra düşük ısınma süresi ile düşük ısınma süresi arasında güç geçişlerinde patlama olmaması.