一下载相关的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。
cmakelists中加入mydemo-lib的关联
target_link_libraries(# Specifies the target library.
native-lib
mydemo-lib
2 编译运行,结果显示为自定义的函数输出
其中遇到一些坑,Android Studio2.3以前有MK文件,2.3后自动生成mk文件,Android Studio 3.3可以用cmake配置,网上的资料都没编译成功,记录下来方便自己和遇到同样问题的朋友。