O aquecimento de áudio é o tempo que o circuito do amplificador de áudio do dispositivo leva para vão funcionar e atingir o estado normal de operação. Os principais contribuintes para o tempo de aquecimento do áudio são o gerenciamento de energia e qualquer lógica de "desligamento" para estabilizar o circuito.
Este documento descreve como medir o tempo de aquecimento de áudio e possíveis maneiras de reduzir tempo de aquecimento.
Medir o aquecimento da saída
A linha de execução do FastMixer do AudioFlinger mede automaticamente o aquecimento da saída
e o relata como parte da saída do comando dumpsys media.audio_flinger
.
No aquecimento, o FastMixer chama write()
repetidamente até que o tempo entre dois write()
s seja o valor esperado.
O FastMixer determina o aquecimento de áudio ao verificar por quanto tempo uma abstração de hardware
A camada HAL (HAL) write()
usa para se estabilizar.
Para medir o aquecimento de áudio, siga estas etapas para o alto-falante integrado e os fones de ouvido com fio e em momentos diferentes após a inicialização. Os tempos de aquecimento geralmente são diferentes para cada dispositivo de saída e logo após inicializar o dispositivo:
- Verifique se o FastMixer está ativado.
- Ative os sons de toque selecionando Configurações > Som > Sons de toque no dispositivo.
- Certifique-se de que o áudio esteja desligado há pelo menos três segundos. Cinco segundos ou mais é melhor, porque o próprio hardware pode ter a própria lógica de energia além dos três segundos do AudioFlinger.
- Pressione Home. Você ouvirá um som de clique.
- Execute o comando a seguir para receber o aquecimento medido:
adb shell dumpsys media.audio_flinger | grep measuredWarmup
A saída será semelhante a esta:
sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X
O
measuredWarmup=X
é um número X de milissegundos. o primeiro conjunto dewrite()
s da HAL foi concluído.O
warmupCycles=X
indica quantas solicitações de gravação da HAL foram necessárias. até que o tempo de execução dewrite()
corresponda ao esperado. - Faça cinco medidas e registre todas, bem como a média. Se não forem todos iguais, é provável que a medida esteja incorreta. Por exemplo, se você não esperar tempo suficiente após a desativação do áudio, você verá um tempo de aquecimento menor do que o valor médio.
Medir o aquecimento da entrada
No momento, não há ferramentas fornecidas para medir o aquecimento da entrada de áudio. No entanto, o tempo de aquecimento de entrada pode ser estimado observando o tempo necessário para startRecording() para retornar.
Reduzir o tempo de aquecimento
O tempo de aquecimento geralmente pode ser reduzido por uma combinação de:
- Bom design de circuito
- Atrasos de tempo precisos no driver de dispositivo do kernel
- Execução de operações de aquecimento independentes de forma simultânea, não sequencial
- deixar circuitos ligados ou não reconfigurar relógios (aumenta o consumo de energia inativo);
- Como armazenar parâmetros calculados em cache
No entanto, tenha cuidado com a otimização excessiva. Talvez você ache que precisam escolher um equilíbrio entre baixo tempo de aquecimento falta de destaque nas transições de poder.