Android Studio 2.2开始支持C/C++编辑和编译,对Android开发人员来说,是一件值得‘喜大普奔’的事。国内许多Android的开发者也很快跟进了这一块,不但翻译了官方的文章,也写了博客展示如何在AS中使用cmake。但是,大部分是照搬官方的例子,对我个人来说,灵活性还不够。
这里并不演示如何创建支持C/C++的项目,因为官方有文章演示,网上也有许多博客对此讲解很清楚了。下面只讲如何让Android studio CMake支持原有C/C++项目。当然,所使用的Android stduio版本必须是2.2以上。
1.在原有JNI目录下创建CMakeLists.txt
其实,相当于替换了之前的Android.mk。这里的JNI目录为cpp,效果一样的。
2.编写CMakeLists.txt,让cmake编译c/c++
cmake_minimum_required(VERSION 3.4.1)#cmake 所支持的最小版本
add_library( hello_cmake #最终编译生成的库名
SHARED #声明生成的库为动态库,亦为STATIC
hello.c #C源文件,若此目录包含.h文件,不需要写上,cmake会自动包括进去 )
find_library(log-lib #log-lib变量,给它赋值log
log #android系统的打印信息库 )
target_link_libraries( hello_cmake #把所依赖的库link进来
${log-lib} )
hello.c文件:
#include <jni.h>
jstring
Java_com_hhbgk_hellocmake_MainActivity_stringFromJNI(
JNIEnv *env,
jobject this) {
const char *const hello = "Hello cmake!";
return (*env)->NewStringUTF(env, hello);
}
点击进行JNI代码编译,没报错就运行APP。结果如下,