1. 程式人生 > >HAL module執行過程分析

HAL module執行過程分析

hw_get_module()->property_get(variant_keys[i],prop,NULL)->__system_property_get(key, value) ->__system_property_find(const char *name)-> __system_property_read(pi, 0, value)-> load(id, prop, &hmi)->snprintf(path,sizeof(path), "%s/%s.%s.so", HAL_LIBRARY_PATH, id, variant)-> handle = dlopen
(path, RTLD_NOW)-> const char *sym = HAL_MODULE_INFO_SYM_AS_STR; hmi = (const struct hw_module_t *)dlsym(handle, sym)