Android java传递int类型数据给C
本文根据《Android jni简便开发流程》中的开发流程来实现一个java传递int类型数据给C
新建项目,进行简单的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="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(); } }
运行项目
获取更多C相关知识,关注公众号:“csuanfa”
作者:wuyudong
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
如果觉得本文对您有帮助,可以对作者进行小额【赞助】