Android NDK将C++/C编译成so文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/itluochen/article/details/53810445

最近的项目涉及到ndk编程,经过一段时间的ndk编程之后,终于完美弄完了。所以,把在android studio中编译c/c++文件成.so库的过程记录一下。

1、在android studio上安装ndk。

2、配置ndk的环境变量。



把如图中的ndk路径配置到环境变量中


添加完毕后打开cmd,输入ndk-build,出现如下内容则表示成功~


3、在android studio中创建一个android工程,并且在android工程的main目录下创建一个jni文件夹。

需要在gradle.propertis文件中添加:

android.useDeprecatedNdk=true

4、在build.gradle文件中的android{defaultConfig{}}里面配置编译成.so库的相关配置。

如:

android {
    ...
    ...

    defaultConfig {
        ...
        ...
        ndk {
            moduleName "hello"        // 生成的so动态库名称
            abiFilters "armeabi", "armeabi-v7a", "x86" // 输出指定三种abi体系结构下的so库
        }
    }
    ...
    ...
}

5、在jni目录下,创建一个c或者c++文件。如:

在hello.c文件中编写代码,例如:

如果在本工程中直接通过java文件中调用c/c++文件中的函数。如:

6、生成.so文件。

在android studio中的工具栏build中,选择build project。如图

编译完之后,在android项目工程的build下就可以找到编译成的.so文件,这样就可以打包给其他android工程引用了 。

 

在android studio中把c/c++源码编译成.so文件就大功告成。

第二种方式:

1、Android studio下载ndk  

2、配置环境变量

3、使用CMD 进入jni目录


3、执行ndk-build  

然后等待执行结束,可以在其/webp-android/src/main/libs目录下copy出你需要的so


猜你喜欢

转载自blog.csdn.net/itluochen/article/details/53810445