今天,简单讲讲android中关于Cmake进行NDK编程的相关知识。
Android studio 2.2版本以后对C/C++的支持可以说很方便了,当然官方推荐使用Cmake完成对C/C++的支持
2.2版本以上的同学新建一个项目就知道了,步骤如下:
File -> New -> New Project,如下图:
然后勾选Include C++ support,一直next ,最后Finish以后,项目就出现了,和一般的项目略有不同,其实只要多了几个文件,而已:
1:目录下多了个CmakeLists.txt文件
2:src目录下多了一个cpp目录,里面有个.cpp文件,C++文件都是以.cpp结尾的。
3:就是build.gradle内容中添加了几行配置
一一解读一下,先来看看CmakeLists.txt 文件里面的内容是什么:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.process.main.myapplication"
minSdkVersion 22
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags ""
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
testCompile 'junit:junit:4.12'
}
主要多了两个地方的改变:
1:defaultConfig中添加:
externalNativeBuild {
cmake {
cppFlags ""
}
}
2:在android{}中添加:
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
其实也就是引用CmakeLists.txt文件。
现在重点讲讲CmakeLists.txt里面的代码的含义。