JNI学习(二)调用java数据、字符串、数组,对象以及类

这篇博客介绍了如何在JNI中调用Java的各种资源,包括int型数据、字符串、数组、对象和类。通过实例展示了在原生方法中声明并调用这些类型的步骤,以及在Java层接收返回结果的方法。内容详细地解释了JNI中不同类型数据的处理方式,如转换、操作和释放资源等。
摘要由CSDN通过智能技术生成

在学习过调用原生函数来返回字符串以后,开始学习在原生方法中调用java中的资源,包括int型数据,string型数据,Array数组,object对象和class类,下面以此介绍。
1、调用int型数据
int型数据是最常用的数据类型之一,所以我从调用int型数据入手学习,非常简单
首先在MainActivity中声明本地方法

public native int intFromJNI();

注意返回值为int型即可,然后在.cpp文件中依照规则,编写本地方法名和方法内容

extern "C"
JNIEXPORT jint JNICALL
Java_com_seuic_ndkstudy_MainActivity_intFromJNI(
        JNIEnv *env,
        jobject  this )
{
    return 1;
}

注意返回类型为jint,这是jni层和java中int的对应类型。
最后在MainActivity中使用TextView组件显示返回结果即可

        TextView tv1 = (TextView) findViewById(R.id.sample_text);
        tv1.setText(intFromJNI()+"");

在应用中可以显示返回值为1

2、调用string型数据
同样,先声明本地方法

public native  String stringFromJNI(String prompt);

然后编写本地方法

extern "C"
JNIEXPORT jstring JNICALL
Java_com_seuic_ndkstudy_MainActivity_stringFromJNI(
        JNIEnv *env,
        jobject  this ,
        jstring prompt)
{
    const char
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值