android.mk和gradle两种配置生成so文件
2017-07-12 13:19
357 查看
android studio 有2种方法可以把c/c++生成so文件
1.通过配置Android.mk
配置Application.mk
APP_ABI := armeabi armeabi-v7a x86 //生成支持多种cpu的so库
补充:
jni
|---1.cpp
|---2.cpp
|---Android.mk
|---Application.mk
|---ndk_test.cpp
|---src
| |---core
| | |---core1.cpp
| | |---core2.cpp
| |---src1.cpp
| |---src2.cpp
[/code]
按照通常的写法,在android.mk中,应该写入
繁琐不堪!
继续上面的情况为例,我可以这样写
2.通过ndk配置生成,在buidle中配置
补充手动添加多个文件生成一个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
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.mk
APP_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
[/code]
按照通常的写法,在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 4000 ) 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
相关文章推荐
- Android Studio 生成.so文件及 Android.mk文件解析
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- Android中JNI使用详解(1)---Eclipse中NDK配置So文件生成
- android studio NDK开发配置以及生成SO文件
- Cocos2d-x3.2编译配置android.mk文件生成apk文件
- android JNI生成.so文件(arm64-v8a等)配置
- Android studio如何利用Android.mk编译生成多个so文件
- Android studio 通过build.gradle 配置打包签名文件,生成 xxx.apk
- Eclipse android项目中配置NDK自动编译生成so文件
- android项目中配置NDK自动编译生成so文件
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- ANDROID JNI的头文件生成配置
- r cannot be resolved to a variable 问题解决 / r.java文件没有自动生成 分类: Android安装及配置 2014-06-22 18:03 141人阅读 评论(0) 收藏
- Android studio NDK 配置编译本地库(so文件)
- Android.mk文件编写以及import-module的注意事项与NDK_MODULE_PATH的配置
- Gradle 加载 Android 下.so文件
- android — NDK生成so文件
- Android gradle 0.9 ,编译.so 文件需要注意
- android 选项菜单 通过配置文件生成