之前写过两篇eclipse下开发NDK的姿势,
现在用AndroidStudio2.2进行NDK开发更加的丝滑,过程如下:
1、环境配置:
新建项目,选中:Include C++ Support,AndroidStudio会为我们创建cpp文件夹、CMake文件、模块的Gradle也会做些相应的配置。
创建项目有可能会报NDK找不到之类的错误,右击项目 ->Open Module Setting->SDK Location 查看Android NDK location是否有配置起来,没有,就下载NDK,
或者直接去AndroidStudio Settings中配置,Appearance&Behavior->System Setings->Android SDK,选中SDK Tools标签页,选择CMake,LLDB,NDK进行安装如下图
CMake是AndroidStudio2.2提供的构建C项目的工具,LLDB是用来调试C代码的。
上面需要的东西都配置好后,新建的项目就会多出cpp文件夹,模块Gradle也多了些配置,如下图
并且AndroidStudio已经帮我们创建了一个调用C的例子,直接运行项目,Activiity里的就可以成功调用到C的方法。
我们在Activity里创建一个native方法,直接报红,然后Alt+Enter,选第一个
接下来神奇的地方出现了,native-lib.cpp里自动帮我们添加了新的方法:
给该方法一个正确的返回值,然后在Activity中调用native方法。呵呵崩掉了!
项目可以通过编译,但是找不到C++里面的方法,这是因为CMake在编译C++代码的时候把刚才新建的C++函数漏掉了,怎么把他加上呢,注意到C++代码里面有一个extern "C"这句话了吗,这个是CMake的东西,把这句话放到最上面,然后加个大括号,把所有java需要调用的方法都放里面,调整后的C++代码如下:
确保所有Java需要调用的C方法都放在extern "C"中,这样CMake才会帮我们正确编译。
然后运行项目,成功返回"Hello from C++ Too"。
切换到Project目录结构,app->.externalNativeBuild->release->obj->AndroidStudio为我们生成的so文件都在这里啦!!!!!
忘了说了,现在C++可以智能提示啦,好爽滑。