Ale*_*987 1 c c++ java-native-interface android android-ndk
我需要在我的项目中使用一些本机c/c ++,所以我需要使用NDK.有没有一种简单的方法在eclipse中设置它?
谢谢.
Dwi*_* Ji 14
有以下步骤
1:在项目目录中创建一个jni文件夹
2:在新创建的文件夹jni中创建一个文件名Android.mk并创建一个新的C或C++文件,让我们考虑一下我们使用C文件,文件名是MyNativeC.c
3:现在在Android.mk文件中输入以下代码
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := local_module_ndk // this is the name of local module by which you can call the Local source file
LOCAL_SRC_FILES := MyNativeC.c// hear we can pass the name of your native file name hear we are use MyNativeC.c file so we pass the name of MyNativeC.c in local source file name
include $(BUILD_SHARED_LIBRA
Run Code Online (Sandbox Code Playgroud)
4现在打开MyNativeC.c文件并创建两个你想从你的android代码调用的方法(来自你的Activity)听听我们创建以下代码
#include <jni.h>
#include <string.h>
#include <stdio.h>
#include <android/log.h>
#define DEBUG_TAG "MY_NDK_DEMO"
jstring Java_com_myNDKDemo_MainActivity_getString(JNIEnv * env, jobject this, jint value1, jint value2)
{
char *szFormat = "Addition : %i";
char *szResult;
jlong sum = value1+value2;
szResult = malloc(sizeof(szFormat) + 20);
sprintf(szResult, szFormat, sum);
jstring result = (*env)->NewStringUTF(env, szResult);
free(szResult);
return result;
}
Run Code Online (Sandbox Code Playgroud)
5现在编辑您想要调用本机代码的活动,
首先创建一个静态块,我们必须加载本机代码库.
听说我们显示我的活动名称的代码是MainActivity.java
package com.myNDKDemo
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class MainActivity extends Activity {
private static final String DEBUG_TAG = "MainActivity";
private native String getStringAdd(int fist, int second);
static {
System.loadLibrary("local_module_ndk");
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
button b = new Button(this);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),""+getStringAdd(100,200), 2000).show();
}
});
setContentView(b);
}
}
Run Code Online (Sandbox Code Playgroud)
6现在首先编译c代码,首先编译c代码,你必须使用NDK开发工具包,
现在开放运行.并键入cmd
现在去项目路径

在那之后打开我的NDK的ndk-build文件路径的路径

现在我们按下输入自动它在你的项目中创建libs目录

7如果在项目中看到,则会自动创建libs和obj.
8.Refresh(右键单击)JNI文件夹(每次使用teh ndk-build构建时刷新它,这实际上会在libs文件夹中加载新构建的共享库.)
9.现在运行你的android项目,按下按钮它会显示你的添加
谢谢
| 归档时间: |
|
| 查看次数: |
10741 次 |
| 最近记录: |