本文根据《Android jni简便开发流程》中的开发流程来实现一个java传递int类型数据给C
新建项目,进行简单的布局
<LinearLayout ="http://schemas.android.com/apk/res/android" ="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="传递int类型参数" /></LinearLayout>
新建JNI.java
package com.wuyudong.javapassdata;public class JNI { //传递两个int类型的变量给C,让C加一下返回 static{ System.loadLibrary("passdata"); } public native int add(int x, int y); public native String sayHelloInC(String s); public native int[] arrElementsIncrease(int[] intArray);}
自动生成jni文件夹,进行相关的修改
passdata.c
#include <jni.h>/* * Class: com_wuyudong_javapassdata_JNI * Method: add * Signature: (II)I */JNIEXPORT jint JNICALL Java_com_wuyudong_javapassdata_JNI_add(JNIEnv * env, jobject clazz, jint x, jint y) { return x + y;}
MainActivity.java中的代码如下:
package com.wuyudong.javapassdata;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.Toast;public class MainActivity extends Activity { public JNI jni; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); jni = new JNI(); } public void click(View v) { Toast.makeText(getApplicationContext(), jni.add(3, 4)+"", 0).show(); }}
运行项目
images/loading.gif' data-original="http://images2015.cnblogs.com/blog/617081/201607/617081-20160701181506015-228403508.png" />
原标题:Android java传递int类型数据给C
关键词:JAVA