1.使用ffmpeg.so
jni/ffmpeg 是ffmpeg的头文件 在hello-jni.c中使用到
#include <ffmpeg/libavcodec/avcodec.h>
#include <ffmpeg/libavformat/avformat.h>
#include <ffmpeg/libswscale/swscale.h>
#include <libavformat/avio.h>
#include <libavutil/file.h>
prebuit 对ffmpeg.so库预编译 mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg
LOCAL_SRC_FILES := libffmpeg.so
include $(PREBUILT_SHARED_LIBRARY)
jni 目录中对预编译库处理 .mk
LOCAL_PATH := $(call my-dir)
NDK_DEBUG=1
include $(CLEAR_VARS)
PATH_TO_FFMPEG_SOURCE:=$(LOCAL_PATH)/ffmpeg
LOCAL_C_INCLUDES += $(PATH_TO_FFMPEG_SOURCE)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c
LOCAL_LDLIBS := -llog -ljnigraphics -lz -ldl -lgcc
LOCAL_SHARED_LIBRARIES := ffmpeg
include $(BUILD_SHARED_LIBRARY)
include $(LOCAL_PATH)/prebuilt/Android.mk
以上就完成了第三方.so的编译调用了
2.使用.a文件 参考 http://blog.csdn.net/kangyaping/article/details/7096061
- include $(CLEAR_VARS)
- LOCAL_MODULE := libA
- LOCAL_SRC_FILES := libA.a
- include $(PREBUILT_STATIC_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := libB
- LOCAL_SRC_FILES := libB.a
- include $(PREBUILT_STATIC_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := libC
- LOCAL_SRC_FILES := libC.a
- include $(PREBUILT_STATIC_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := Test
- LOCAL_SRC_FILES := Test.c
- LOCAL_STATIC_LIBRARIES := libA libB libC
- LOCAL_LDLIBS := -llog
- include $(BUILD_SHARED_LIBRARY)