Есть следующие шаги
1: создайте папку jni в каталоге проекта
2: Создайте имя файла Android.mk во вновь созданной папке jni и создайте новый файл на 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
4 Теперь откройте файл MyNativeC.c и создайте два метода, которые вы хотите вызвать из своего кода Android (из вашей активности)
слышать, мы создаем следующий код
#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;
}
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);
}
}
6 Теперь сначала скомпилируйте код c , для того, чтобы сначала скомпилировать код c, вам необходимо NDK development kit ,
теперь открытый запуск. и введите cmd
теперь перейдите к пути проекта
после этого введите путь к файлу моего NDK ndk-build
теперь мы нажимаем ввести каталог автоматического создания библиотеки в вашем проекте
7 Если вы видите в своем проекте, автоматически создаются libs и obj .
8. Обновите (щелкните правой кнопкой мыши) папку JNI (обновляйте ее каждый раз, когда вы создаете с помощью ndk-build, это фактически загружает вновь созданную общую библиотеку в папку libs.)
9. Теперь запустите ваш проект Android, при нажатии на кнопку он покажет вам добавление
спасибо