当我潜入Android内核时。我对音频设备驱动程序有疑问。
人们说...... - Android使用ALSA音频驱动程序。 - HAL层是C / C ++库 - ALSA驱动程序在用户空间中运行,而不是在内核空间中运行
然后,问题: 1.下图中的音频驱动程序(我猜它是ALSA驱动程序)是什么? ALSA驱动程序应该存在于库部分,不是吗? (http://developer.android.com/guide/basics/what-is-android.html)
2。 Android内核中的音频驱动程序应该没有任何内容,如果它符合ALSA驱动程序吗?
我很困惑......
谢谢 ilgimae
答案 0 :(得分:3)
我认为现在回答为时已晚,可能你现在已经找到了答案。
android HAL层编写的是C / C ++。根据ALSA框架,驱动程序不在用户空间中。所有应用程序都使用ALSA库,而ALSA库又使用内核中的ALSA frmawwork,后者将使用编解码器驱动程序中存在的函数,在这种情况下为wm8994.c。
所以问题1: 驱动程序存在于内核空间中,但应用程序使用ALSA库(用户空间)中定义的API。
问题2: 您拥有的源代码是驱动程序,它将存在于内核空间中。 ALSA核心将调用这些功能(通过ALSA SoC层,用于芯片上的系统)。
希望这会有所帮助。