AndroidStudio使用NDK配置方法

本文介绍了如何在Android Studio中配置NDK,包括在Gradle中生成so文件,编译多个模块,关联Android.mk文件以及使用CMake进行构建。详细步骤包括在gradle.properties中启用废弃的NDK支持,自定义sourceSet指定C/C++源文件目录,以及通过CMakeLists.txt文件自动化构建过程。同时,文章讨论了如何避免Gradle自动编译本地代码并调整so库的搜索路径。
摘要由CSDN通过智能技术生成

配置Gradle生成so

在AndroidStudio2.1及以前我是通过下面的方式配置NDK的,不知道是从哪个版本开始的,我第一次在AS上使用NDK的时候用的就是AndroidStudio2.1了。

首先在gradle.properties里面添加 android.useDeprecatedNDK = true

android{}下的defaultconfig{}代码块中添加ndk{}

ndk{
    moduleName = "xxx"
    //abiFilters("armeabi", "armeabi-v7a"..)
    //ldLibs = ["log"]
    //cFlags
    //stl(ie:gnustl_shared,stlport_static..)
}

默认在src/main/jni目录下面找c/c++文件编译,也可以在android{}下添加sourceSet{}

sourceSet{
    main{
        jni.srcDirs=['src/main/cpp']
    }
}

就能将指定目录下的c/c++文件编译成指定的模块名.so。

编译多个模块

上面这种方式通过gradle无法编译成多个模块,编译多个模块还是要自己写Android.mk文件实现,通过手动执行ndk-build编译成的*.so文件默认在src/main/libs下面。

打包APK时,默认是寻找so的目录是/build/intermediates/ndk和/build/intermediates/jniLibs,前者是使用源码由Gradle编译成的so所处的位置,后者一般是一些第三方的so或者自己手动使用ndk编译生成的so文件所生成的,这个位置在src/main/jniLibs。

因此手动编译好so文件后,将其复制到jniLibs下面,或者在此放

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值