android studio 初步JNI开发

android studio 初步JNI开发

android studio在原有项目中使用cmake构建JNI

android studio用Javah创建.h头文件和编译运行

android studio继续深入ndk打包so库和jar Api



貌似android studio是从2.2版本开始引入cmake lldb,我门这些程序猿终于可以轻松一点的进行JNI开发了。我现在用的是2.3的,好像比2.2更成熟了一些。

首先如图下载安装三个相关插件:

android studio 初步JNI开发_第1张图片

CMake:编译配置工具

LLDB:调试工具

创建新项目,如下图选中框中的部分:

android studio 初步JNI开发_第2张图片

然后一路next到下一步根据自己需要选择:

C++ Standard 
指定编译库的环境,其中Toolchain Default使用的是默认的CMake环境。建议选择C++ 11,表示支持C++ 11库。

Exceptions Support 
如果选中复选框,则表示当前项目支持C++异常处理,建议勾选。

Runtime Type Information Support 
同理,选中复选框,项目支持RTTI,建议勾选。

android studio 初步JNI开发_第3张图片

创建项目完成后默认如下结构,自动生成cpp代码和java中的native代码:

android studio 初步JNI开发_第4张图片

static {
    System.loadLibrary("native-lib");
}

表示导入native-lib的库文件,以便使用库中的api。

public native String stringFromJNI();

表示库中提供的native方法,它所对应的cpp函数如下,函数名有严格的格式对应。

JNIEXPORT jstring JNICALL
Java_com_example_admin_jnitest_MainActivity_stringFromJNI(
        JNIEnv* env,
        jobject /* this */) {
    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
}

AS提供了一个快速创建函数的快捷键:alt+enter,效果如下:

android studio 初步JNI开发_第5张图片

选择第一项后在cpp文件中自动生成代码,当然自动生成的代码需要修改一下,尤其是native方法需要被如下代码块包含,否则报错:

extern "C"{

}


你可能感兴趣的:(android,Linux,C/C++)