27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Ses ısınma
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Ses ısıtma, cihazınızdaki ses yükseltici devresinin tam güçte çalışması ve normal çalışma durumuna ulaşması için geçen süredir. Ses ısınma süresine en çok etki eden faktörler güç yönetimi ve devreyi stabilize etmek için kullanılan "pop giderme" mantığıdır.
Bu dokümanda, ses ısınma süresinin nasıl ölçüleceği ve ısınma süresini azaltmanın olası yolları açıklanmaktadır.
Çıktı ısıtmasını ölçme
AudioFlinger'ın FastMixer iş parçacığı, çıkış ısınmasını otomatik olarak ölçer ve dumpsys media.audio_flinger
komutunun çıkışı kapsamında raporlar.
Hızlı Karıştırıcı, ısınma sırasında iki write()
arasında geçen süre beklenen süreye eşit olana kadar write()
sabiti için tekrar tekrar çağrı yapar.
FastMixer, donanım soyutlama katmanının (HAL) write()
kararlı hale gelmesinin ne kadar sürdüğünü görerek ses ısınmasını belirler.
Ses ısınmasını ölçmek için yerleşik hoparlör ve kablolu kulaklıklar için bu adımları uygulayın ve önyüklemeden sonra farklı zamanlarda ölçüm yapın. Isıtma süreleri genellikle her çıkış cihazı için farklıdır ve cihazın açılmasından hemen sonra:
- FastMixer'ın etkinleştirildiğinden emin olun.
- Cihazınızda Ayarlar > Ses > Dokunma sesleri'ni seçerek dokunma seslerini etkinleştirin.
- Sesin en az üç saniye boyunca kapalı olduğundan emin olun. Donanımın, AudioFlinger'ın sahip olduğu üç saniyenin ötesinde kendi güç mantığı olabileceğinden beş saniye veya daha uzun süre beklemek daha iyidir.
- Ana sayfa düğmesine basın. Bir tık sesi duyarsınız.
- Ölçülen ısınmayı almak için aşağıdaki komutu çalıştırın:
adb shell dumpsys media.audio_flinger | grep measuredWarmup
Aşağıdaki gibi bir çıkış görürsünüz:
sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X
measuredWarmup=X
, ilk HAL write()
grubunun tamamlanması için gereken X milisaniye sayısıdır.
warmupCycles=X
, write()
'un yürütme süresinin beklenenle eşleşmesi için kaç HAL yazma isteğinin gerektiğidir.
-
Beş ölçüm yapın ve bunların hepsini ve ortalamasını kaydedin.
Hepsi yaklaşık olarak aynı değilse muhtemelen bir ölçüm yanlıştır.
Örneğin, ses kapatıldıktan sonra yeterince beklemezseniz ısınma süresinin ortalama değerden daha düşük olduğunu görürsünüz.
Ses girişi ısınmasını ölçmek için şu anda herhangi bir araç sağlanmamaktadır.
Ancak giriş ısıtma süresi, startRecording() işlevinin döndürülmesi için gereken süre gözlemlenerek tahmin edilebilir.
Isıtma süresini azaltma
Isıtma süresi genellikle aşağıdakilerin bir kombinasyonuyla azaltılabilir:
- İyi devre tasarımı
- Çekirdek cihaz sürücüsünde doğru zaman gecikmeleri
- Bağımsız ısıtma işlemlerini sıralı olarak değil, eşzamanlı olarak gerçekleştirme
- Devrelerin açık bırakılması veya saatlerin yeniden yapılandırılmaması (devre dışı güç tüketimini artırır)
- Hesaplanmış parametreleri önbelleğe alma
Ancak aşırı optimizasyondan kaçının. Isıtma süresinin kısa olması ile güç geçişlerinde açma/kapatma sesi olmaması arasında bir denge kurmanız gerekebilir.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-03-26 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-03-26 UTC."],[],[],null,["# Audio warmup is the time it takes for the audio amplifier circuit in your device to\nbe fully powered and reach its normal operation state. The major contributors\nto audio warmup time are power management and any \"de-pop\" logic to stabilize\nthe circuit.\n\nThis document describes how to measure audio warmup time and possible ways to decrease\nwarmup time.\n\nMeasure output warmup\n---------------------\n\n\nAudioFlinger's FastMixer thread automatically measures output warmup\nand reports it as part of the output of the `dumpsys media.audio_flinger` command.\nAt warmup, FastMixer calls `write()`\nrepeatedly until the time between two `write()`s is the amount expected.\nFastMixer determines audio warmup by seeing how long a Hardware Abstraction\nLayer (HAL) `write()` takes to stabilize.\n\nTo measure audio warmup, follow these steps for the built-in speaker and wired headphones\nand at different times after booting. Warmup times are usually different for each output device\nand right after booting the device:\n\n1. Ensure that FastMixer is enabled.\n2. Enable touch sounds by selecting **Settings \\\u003e Sound \\\u003e Touch sounds** on the device.\n3. Ensure that audio has been off for at least three seconds. Five seconds or more is better, because the hardware itself might have its own power logic beyond the three seconds that AudioFlinger has.\n4. Press Home, and you should hear a click sound.\n5. Run the following command to receive the measured warmup: \n\n ```\n adb shell dumpsys media.audio_flinger | grep measuredWarmup\n ```\n\n\n You should see output like this: \n\n ```\n sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X\n ```\n\n\n The `measuredWarmup=X` is X number of milliseconds\n it took for the first set of HAL `write()`s to complete.\n\n\n The `warmupCycles=X` is how many HAL write requests it took\n until the execution time of `write()` matches what is expected.\n6. Take five measurements and record them all, as well as the mean. If they are not all approximately the same, then it's likely that a measurement is incorrect. For example, if you don't wait long enough after the audio has been off, you will see a lower warmup time than the mean value.\n\nMeasure input warmup\n--------------------\n\n\nThere are currently no tools provided for measuring audio input warmup.\nHowever, input warmup time can be estimated by observing\nthe time required for [startRecording()](http://developer.android.com/reference/android/media/AudioRecord.html#startRecording())\nto return.\n\nReduce warmup time\n------------------\n\n\nWarmup time can usually be reduced by a combination of:\n\n- Good circuit design\n- Accurate time delays in kernel device driver\n- Performing independent warmup operations concurrently rather than sequentially\n- Leaving circuits powered on or not reconfiguring clocks (increases idle power consumption)\n- Caching computed parameters\n\n\nHowever, beware of excessive optimization. You may find that you\nneed to tradeoff between low warmup time versus\nlack of popping at power transitions."]]