標籤:
本文根據《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(); }}
運行項目
Android java傳遞int類型資料給C