使用静态库来编译动态库
例如项目A产生静态库testa.a, 项目B需要用testa.a生成动态库testb.so
A项目的android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := testa
LOCAL_SRC_FILES := testa.c
include $(BUILD_STATIC_LIBRARY)
生成的testa.a静态库加入编译系统的库文件目录中,比如我是用android-8(2.2)版本进行编译的, 所以testa.a文件放入:
E:\workspace\android-ndk-r8e\platforms\android-8\arch-arm\usr\lib\下面
项目B的android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -ltesta
LOCAL_STATIC_LIBRARIES := libtesta
LOCAL_MODULE := testb
LOCAL_SRC_FILES := testb.c
include $(BUILD_SHARED_LIBRARY)
这样生成的libtestb.so中已经包括了libtesta.a静态库, 在java文件中只需要 System.loadLibrary("testb");即可
使用动态库来编译动态库
A项目的android.mk文件如下:
LOCAL_PATH := $(call my-dir)
include $(CLE