linux下eclipse构建并编译android一个简单jni项目

因为项目要在nand和sdcard上搜索某一类型的文件,用java来实现速度太慢,因此要自己来写jni的代码,于是热热手先写一个简单写了一个简单的例子

第一,java源代码的编写,在eclips下面新建android工程,创建helloJNI.java

 

package com.john.helloJNI;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class helloJNI extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        TextView JNITest = (TextView)findViewById(R.id.jniTextView);
        Log.i("hellojni", "before!/n");
        String str = getJNItest();
        Log.i("hellojni", "before!/n");
        JNITest.setText(str);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JNI(Java Native Interface)是 Java 平台上的一种机制,允许 Java 代码与本地代码(如 C、C++ 等)进行交互。下面是一个简单JNI 实例,演示了如何在 Android 中使用 JNI。 1. 在 Java 中定义 native 方法 ``` public class JNIExample { static { System.loadLibrary("native-lib"); } public native String getStringFromNative(); } ``` 注意,在静态块中加载库文件 `native-lib`。这个库文件后面会在 C++ 中用到。 2. 在 C++ 中实现 native 方法 ``` #include <jni.h> #include <string> extern "C" JNIEXPORT jstring JNICALL Java_com_example_jniexample_JNIExample_getStringFromNative(JNIEnv *env, jobject thiz) { std::string str = "Hello from C++"; return env->NewStringUTF(str.c_str()); } ``` 注意,函数名的命名规则是 `<包名>_<类名>_<方法名>`,并且要使用 `extern "C"` 声明,以便能够正确链接。 3. 编译生成动态库 在 C++ 代码所在的目录下执行以下命令: ``` $ <ndk-root>/ndk-build ``` 这将生成一个动态库 `libnative-lib.so`。 4. 在 Android 中调用 native 方法 在 Activity 中调用 native 方法: ``` public class MainActivity extends AppCompatActivity { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = findViewById(R.id.text_view); JNIExample jniExample = new JNIExample(); String strFromNative = jniExample.getStringFromNative(); mTextView.setText(strFromNative); } } ``` 最后,将 `libnative-lib.so` 文件放到 `app/src/main/jniLibs` 目录下即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值