android.mk和gradle两种配置生成so文件
来源:互联网 发布:惊雷算法 编辑:程序博客网 时间:2024/06/05 15:32
android studio 有2种方法可以把c/c++生成so文件
1.通过配置Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello //生成的so库名称LOCAL_SRC_FILES := hello.c //要生成so的源文件include $(BUILD_SHARED_LIBRARY)
配置Application.mkAPP_ABI := armeabi armeabi-v7a x86 //生成支持多种cpu的so库
补充:
cpp文件全部位于android项目下的jni文件夹下,结构如下
jni |---1.cpp |---2.cpp |---Android.mk |---Application.mk |---ndk_test.cpp |---src | |---core | | |---core1.cpp | | |---core2.cpp | |---src1.cpp | |---src2.cpp
按照通常的写法,在android.mk中,应该写入
LOCAL_SRC_FILES := ndk_test.cpp \ 1.cpp \ 2.cpp \ src/src1.cpp \ src/src2.cpp \ src/core/core1.cpp \ src/core/core2.cpp
繁琐不堪!
初步解法:一句话引入单个目录(不包括子目录)下的所有cpp源文件
继续上面的情况为例,我可以这样写
MY_CPP_LIST := $(wildcard $(LOCAL_PATH)/*.cpp)MY_CPP_LIST += $(wildcard $(LOCAL_PATH)/src/*.cpp)MY_CPP_LIST += $(wildcard $(LOCAL_PATH)/src/core/*.cpp)
2.通过ndk配置生成,在buidle中配置
apply plugin: 'com.android.application'android { compileSdkVersion 24 buildToolsVersion "24.0.1" defaultConfig { applicationId "com.test.nodepp.testjni" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" //ndk编译生成.so文件 ndk { moduleName "goo" //生成的so名字 ldLibs "log", "z", "m" //链接时使用到的库,对应LOCAL_LDLIBS abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库。 } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.2.1'}补充手动添加多个文件生成一个so的方法
//ndk编译手动添加多个c生成.so文件ndk { moduleName = "goo" cppFlags += "-I${file("src/main/jni/native_app_glue")}".toString() cppFlags += "-I${file("src/main/jni")}".toString() cppFlags += "-I${file("src/main/jni/data")}".toString() ldLib
阅读全文
0 0
- android.mk和gradle两种配置生成so文件
- Android Studio 生成.so文件及 Android.mk文件解析
- Android studio下配置ndk以及利用gradle编译生成SO文件
- Android.mk 文件 添加 .so 和 .jar 文件
- Android mk文件 构建编译第三方jar和so
- AndroidNDK初步开发之如何调用jni生成.so文件、Android.mk配置及第三方so不被删除的方法(二)
- 配置Android.mk文件
- Android studio如何利用Android.mk编译生成多个so文件
- android生成so文件
- android生成so文件
- android 编译*.so文件 需要修改的*.mk文件和 shell文件
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- android.mk 调用第三方so库的两种方法
- ubuntu下编译android jni到so库的mk文件配置
- Android Studio-Gradle项目中添加JNI生成文件(.so文件)
- Wireshark使用
- Kotlin遇到DataBind的坑
- MySQL中涉及的几个字符集的区别
- HTTP cookies 详解
- POJ 3188 Cellphones 笔记 完成
- android.mk和gradle两种配置生成so文件
- Codeforces Round #423 (Div. 2)A Restaurant Tables 思维题
- Ambari Server安装失败解决
- Leetcode#371. Sum of Two Integers (位运算实现加法)
- segmentProject-summer
- 图像分割—基于图的图像分割(Graph-Based Image Segmentation)
- 前缀和,枚举+递推(Average,HDU 5353)
- Q120:PBRT-V3,“直接光照”积分器(14.3章节)
- Intellij IDEA基于Springboot的远程调试