1. 直接在code里面调用dlopen, dlsym
my_cam_app->hal_lib.ptr = dlopen("libmmcamera_interface.so", RTLD_NOW);
*(void **)&(my_cam_app->hal_lib.mm_camera_open) =
dlsym(my_cam_app->hal_lib.ptr, "camera_open");
2. 如果要调用的solib也在当前的android 环境下编译生成,则可以直接在Android.mk加入到LOCAL_SHARED_LIBRARIES变量
LOCAL_SHARED_LIBRARIES:= \
libdl \
libui \
libutils \
libcutils \
libbinder \
libmedia \
libui \
3. 如果要调用的solib已经是编译好的,则可以采用在Android.mk里加入到LOCAL_LDLIBS
LOCAL_LDLIBS := -ldl -lutils #要调用的solib
LOCAL_LDLIBS += -L$(LOCAL_PATH)/libs/ #solib的path
本文介绍了两种在Android中实现动态加载SO库的方法:通过dlopen和dlsym函数调用,以及在Android.mk中将SO库添加到LOCAL_SHARED_LIBRARIES。
910

被折叠的 条评论
为什么被折叠?



