android studio 初步JNI开发

本文介绍了如何在Android Studio中使用CMake进行JNI开发,包括项目设置、Javah的替代方法、深入讲解ndk打包SO库和API的创建。通过CMake和LLDB插件,开发者可以更便捷地进行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更成熟了一些。

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


CMake:编译配置工具

LLDB:调试工具

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


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

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

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

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


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


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,效果如下:


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

extern "C"{

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值