Android Studio 3.3.0编译和自定义so文件

一下载相关的NDK环境

settings-SDK-SDK tools

下载并安装 LLDB、Cmake、NDK三个工具。

二  生成默认的native-lib包

新建工程,选择最后的Native C++ 模板即可创建NDK项目,C++选C++11版本

1 选择好NDK的路径 例如我的是r16b

2gradle.properties文件中,看情况加上

android.useDeprecatedNdk=true(可选)

3 build.gradle加入以下语句过滤下生成的so的架构包

externalNativeBuild {

cmake {

cppFlags"-std=c++11"

    }

//add paulhu

    ndk {

    abiFilters"armeabi-v7a"

        abiFilters"arm64-v8a"

    }

}

没有意外就可以生成libnative-lib.so 编译的APK模拟器上运行可以显示

hello C++

三  自定义一个类,实现修改默认显示的字符串

1 CPP目录下,新建一个文件夹mydemo,mydemo文件夹下右键新建个S型的类文件(一次生成.cpp和.h两个文件)

修改这两个文件, 修改native-lib.cpp的默认输出函数为自定义的函数,修改cmakelists。


mydemo.h


mydemo.cpp


native-lib.cpp


cmakelists

cmakelists中加入mydemo-lib的关联

target_link_libraries(# Specifies the target library.

        native-lib

        mydemo-lib

2 编译运行,结果显示为自定义的函数输出


用的mumu模拟器

其中遇到一些坑,Android Studio2.3以前有MK文件,2.3后自动生成mk文件,Android Studio 3.3可以用cmake配置,网上的资料都没编译成功,记录下来方便自己和遇到同样问题的朋友。

你可能感兴趣的:(Android Studio 3.3.0编译和自定义so文件)