Я смущен о жизни и использовании модулей HAL. Традиционно модуль HAL реализован как набор перехватов для различных функций и скомпилирован в общую библиотеку. Предположим, у меня есть два приложения, которые ссылаются на libhardware
и оба звонят hw_get_module()
где-то в своем коде.Android: Есть ли только один экземпляр модуля HAL?
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,
},
}
Если я увеличиваю счетчик в одном приложении, будет ли он виден другому приложению? I.e, есть ли только один глобальный экземпляр модуля my_audio_stream
?