ToolLibrary——编译和操作动态库

本文介绍了在Android项目中如何编译和操作动态库,包括使用dlopen、dlsym等函数,以及LOCAL_SHARED_LIBRARIES和LOCAL_LDLIBS的区别。详细讲解了在Android.mk中配置LOCAL_MODULE_PATH,以及在源码中引用动态库的方法,并强调了在.cpp文件中使用dlsym需要注意的C++名字修饰问题。
摘要由CSDN通过智能技术生成


项目的源码在这里:

http://code.google.com/p/flying-on-android/

 

 

因为用到了dlopen等函数,所以,编译ToolLibrary时,需要给LOCAL_SHARED_LIBRARIES加上libdl。

 

 

调用当前目录的子目录下面的Android.mk时,写法如下:

include $(LOCAL_PATH)/lib/Android.mk

如果像下面这样写的话

include lib/Android.mk

实际搜索目录是/lib/Android.mk

 

 

dlsym通过名字来定位方法,所以,方法不能重载。

 

 

dlopen也可以传入路径,如:/system/lib/libflying_display.so

 

 

编译出来的.so库被安装到/system/lib目录下:

LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)

如果想安装到/system/lib/hw下面的话,就这样写:

LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw

 

 

LOCAL_SHARED_LIBRARIES和LOCAL_LDLIBS是什么关系?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值