【数据传输流程图】

【简要说明】
1、APP 将音频文件(比如.mp3文件)数据从存储器读取到匿名共享内存(AshMem)中;
2、AudioFlinger 从匿名共享内存中读取音频数据,再通过 HAL 层接口将这些数据写入到 DMA 缓冲区(这一步操作将数据从用户空间拷贝到了内核空间);
3、DMA 控制器将 DMA 缓冲区中的数据拷贝到 SoC 的 I2S Tx FIFO,开始向 Codec 发送数据;
4、Codec 固件会自动将 Codec I2S Rx FIFO 中接收到数据送入 Codec DSP 进行处理;
5、处理后的数据经 DAC 转换后(上图中的 Codec DAC 部分没有画出来),输出到功放芯片进行放大,最终输出到扬声器等音频设备。