Android Studio3.0开发JNI流程------JNI中字符串拼接的三种方式(C++)

这篇博客探讨了在Android Studio 3.0的JNI开发中如何进行字符串拼接,指出常见的两种拼接方式可能在多线程或循环调用时导致崩溃。作者分享了一种新的、更安全的字符串拼接方法,通过Java的concat()函数避免内存泄漏问题。
摘要由CSDN通过智能技术生成

字符串拼接在java中很常见,比如拼接url路径,那么到了jni开发中怎么使用java中拼接字符串呢?不废话了啊,直接来个案例分析

我们将Android Studio3.0默认创建的工程文本显示从jni中拼接输出…

我们写一个简单的字符串返回的native方法,调用时给“Hello”参数,调用二种不同方式的拼接方法,在屏幕文本时输出内容为:Hello-World以及 Hello,欢迎来到JNI的世界!

以下两个方法是网上很多人采用的,但不是很友好,多次循环调用会出现崩溃。博主最近才发现的,所以在底部重新给出了新的字符串拼接的方式。

MainActivity.java类:

package fj.clover.jnistringbuilder;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
   
    static {
        System.loadLibrary("native-lib");
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView tv = (TextView) findViewById(R.id.sample_text);
        //调用native本地方法调用,实现在屏幕输出Hello-World!
        tv.setText(getString("Hello"));

        TextView tv1 = (TextView) findViewById(R.id.sample_text1);
        //调用native本地方法调用,实现在屏幕输出Hello,欢迎来到JNI的世界!
        tv1.setText(getString1("Hello"));
    }

    /**
     * 以下native方法主要是在JNI代码(C++)中实现getStr()方法内容
     * @param str
     * @return
     */
    public 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值