这个板子的audio是使用i2s+i2c来控制es8316来实现的音频方案,驱动实现了alsa, android层的音频如何实现的?分析一下
Android驱动开发与移植实战详解
1. /hardware/libhardware_legacy/ - 旧的架构、采取链接库模块的方式
/hardware/libhardware 新架构、调整为 HAL stub
2.
1) audio的关键部分android/frameworks/av/services/audioflinger调用audio的hal层来实现音频的播放
2) samsung这个板子的audio hal部分在andorid/hardware/samsung_slsi/slsiap目录下,这里两个文件实现了很少的东西,这些东西谁来调用呢?? samsung的两个文件仿照hardware/libhardware/modules/audio下的两个文件写的,上层会自己调用这里的东西!
3) audio hal层调用tiny-alsa lib来实现音频的控制
4) audio的java部分在/android/frameworks/base/media/java/android/media/AudioTrack.java下
5)es8316 驱动在linux kernel的 /sound/soc/nexell和/sound/soc/codecs/es8316.c,这个芯片是smasung买的nexell的芯片,这个市场可能出货量太小了,没有太多利润吧!
Android驱动开发与移植实战详解