https://blog.csdn.net/HongHua_bai/article/details/122159169
https://blog.csdn.net/afei__/article/details/84069876
NDK工程
-
src
文件中包含着Java
源文件、jni
目录。jni
目录下包含着.cpp
/.mk
; -
jni/Android.mk
描述如何把hello_mk.cpp
等文件构建成一个动态库,其内容如下: -
在工程
app
下的build.gradle
文件下对Android.mk
/Appplication.mk
文件位置的声明一般有两种方式:
方式一: -
android {
...
task ndkBuild(type:Exec,description:'NDK Project'){
commandLine "C:\\Users\\ndk-build.cmd",//配置ndk的路径
'NDK_PROJECT_PATH=build/intermediates/ndk', // ndk默认的生成so的文件路径
'NDK_LIBS_OUT=src/main/jniLibs', // 配置的我们想要生成的so文件所在的位置
'APP_BUILD_SCRIPT=src/main/jni/Android.mk', // 指定项目的 Android.mk 所在位置
'NDK_APPLOCATION_MK=src/main/jni/Application.mk'
}tasks.withType(JavaCompile){ //使用ndkBuild
compileTask ->compileTask.dependsOn ndkBuild
}
}方式二:(方式二需要工程的
setting.gradle
文件配合声明 NDK 的所在位置) -
android {
...
defaultConfig {
...
externalNativeBuild {
ndkBuild {
arguments 'NDK_APPLICATION_MK:=src/main/jni/Application.mk'
cFlags ''
cppFlags ''
abiFilters 'arm64-v8a, armeabi-v7a, x86, x86_64'
}
}
}externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
}