android studio 自定义mk文件

之前说studio编译c代码都不用编写mk,在gradle里面配置一下就行了。很多时候都需要自己编写mk文件,比如引用别人库的时候。
需要告诉studio不要默认的编译 了。用手动编译在gradle的android里面

        //用studio来的来编译
//        ndk {
//            moduleName "callback" //设置库(so)文件名称
//            ldLibs "log"//实现__android_log_print
//            abiFilters "armeabi", "armeabi-v7a", "x86"
//        }
//自己用ndk build来编辑
        sourceSets.main {
            jni.srcDirs = []
            jniLibs.srcDir 'src/main/libs'
        }

改成这样,就是不让studio编译jni目录了。 直接指定一下so目录就行。
编译就需要我们用ndk-build来进行编译了。
mk的文件如下,放在jni目录就行

LOCAL_PATH := $(call my-dir)

#第一个so
include $(CLEAR_VARS)
LOCAL_MODULE    := mk_callback_c
LOCAL_SRC_FILES := callback.c
LOCAL_LDLIBS :=-llog

#include $(BUILD_EXECUTABLE)
include $(BUILD_SHARED_LIBRARY)


#第二个so
include $(CLEAR_VARS)
LOCAL_MODULE    := mk_callback_cpp
LOCAL_SRC_FILES := hello.cpp
LOCAL_LDLIBS :=-llog
LOCAL_DEFAULT_CPP_EXTENSION := cpp

#include $(BUILD_EXECUTABLE)
include $(BUILD_SHARED_LIBRARY)

这里把c /c++分为2个so,可以在一起。然后执行ndk-build
spc@spc-PAF4:~/programming/jni/MyApplication/callbcakdemo/src/main/jni$ ndk-build

然后自动生成lib目录和so,直接运行就可以实现了。

猜你喜欢

转载自blog.csdn.net/spinchao/article/details/52171860
今日推荐