Ich bin verwirrt über die Lebensdauer und Verwendung von HAL-Modulen. Herkömmlicherweise wird ein HAL-Modul als ein Satz von Hooks für verschiedene Funktionen implementiert und in eine gemeinsam genutzte Bibliothek kompiliert. Angenommen, ich habe zwei Anwendungen, die mit libhardware
verknüpfen und beide hw_get_module()
irgendwo in ihrem Code aufrufen.Android: Gibt es nur einmal Instanz eines HAL-Moduls?
struct my_audio_stream {
struct audio_stream base; /* base HAL */
int count;
}
struct audio_module HAL_MODULE_INFO_SYM = {
.base =
.common = {
.tag = HARDWARE_MODULE_TAG,
.module_api_version = AUDIO_MODULE_API_VERSION_0_1,
.hal_api_version = HARDWARE_HAL_API_VERSION,
.id = AUDIO_HARDWARE_MODULE_ID,
.name = "USB audio HW HAL",
.author = "The Android Open Source Project",
.methods = &hal_module_methods,
},
}
Wenn ich die Zählvariable in einer Anwendung inkrementiere, wird sie für die andere Anwendung sichtbar sein? Dh, gibt es nur eine globale Instanz des Moduls my_audio_stream
?