通过Ubuntu16.04编译Android下的exosip动态库
1、下载exosip
地址: http://download.savannah.nongnu.org/releases/exosip/
2、编译exosip
1.解压压缩文件
tar -zxvf libeXosip2-4.1.0.tar.gz
2.在文件夹libeXosip2-4.1.0下新建文件夹jni,将目录下的include、tools及src拷贝到jni文件夹中。
3.将osip生成的lib库拷贝到jni下,将osip的include下的文件拷贝到jni下的include下。
目录结构如下:
4.在jni文件夹下添加Android.mk及Application.mk文件,内容如下:
Android.mk
LOCAL_PATH:= $(call my-dir)
ARCH:=armeabi-v7a
include $(CLEAR_VARS)
LOCAL_MODULE:= libxosip
LOCAL_SRC_FILES:=$(LOCAL_PATH)/libs/$(ARCH)/libosip.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
tools/sip_reg.c \
src/eXsubscription_api.c \
src/eXregister_api.c \
src/jevents.c \
src/jcallback.c \
src/eXtl_tcp.c \
src/rijndael.c \
src/jreg.c \
src/sdp_offans.c \
src/eXconf.c \
src/jauth.c \
src/udp.c \
src/eXcall_api.c \
src/eXtl_tls.c \
src/jdialog.c \
src/eXtransport.c \
src/eXosip.c \
src/jrequest.c \
src/jsubscribe.c \
src/eXtl_dtls.c \
src/jcall.c \
src/misc.c \
src/milenage.c \
src/jresponse.c \
src/eXmessage_api.c \
src/eXtl_udp.c \
src/eXoptions_api.c \
src/eXinsubscription_api.c \
src/eXutils.c \
src/jpipe.c \
src/jpublish.c \
src/eXpublish_api.c \
src/jnotify.c \
src/inet_ntop.c
LOCAL_CFLAGS += -DHAVE_FCNTL_H \
-DHAVE_TIME_H \
-DHAVE_SYS_SELECT_H \
-DENABLE_TRACE \
-DOSIP_MT
LOCAL_C_INCLUDES:= $(LOCAL_PATH)/include $(LOCAL_PATH)/src #\
$(LOCAL_PATH)/../libosip/include $(LOCAL_PATH)/include/osip2 $(LOCAL_PATH)/include/osipparser2
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_C_INCLUDES)
LOCAL_SHARED_LIBRARIES := \
libxosip
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE:= libexosip
include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_PROJECT_PATH := $(call my-dir)/../
APP_STL:=stlport_shared # 根据自己的需要修改
APP_ABI := armeabi-v7a
APP_PLATFORM := android-21
4.开始编译
在jni目录下执行ndk-build命令,比如我的如下:
/home/stone/ndk/android-ndk-r14b/ndk-build