У меня уже есть код C, который я использую в других проектах. Я исследовал способ повторного использования кода C в своем приложении для Android и прошел через NDK и получил все отработанное.Android ndk jni автогенерация функций
Но для того, чтобы это сработало, мне пришлось создать этот файл JNI, который в основном завершает мой C-код.
Например,
вот мой C код:
multiply.h
int mult(int val1, int val2);
multiple.c
int mult(int val1, int val2) { return val1 * val2; }
Тогда я должен был создать множественно-JNI файл, который выглядит следующим образом:
multiply-jni.c
#include <jni.h>
#include "multiply.h"
jint Java_com_example_ndktest_NativeLib_mult
(JNIEnv * env, jobject obj, jint value1, jint value2)
{
return mult(value1, value2);
}
И тогда я использую инструмент ndk-build для создания общей библиотеки.
Мой вопрос: есть ли способ сгенерировать файл multiply-jni.c автоматически? Я действительно не хочу делать это вручную, так как код C может быть очень большим ...
Я читал вопрос о попытке автогенерации файла C, содержащего JNI-совместимые функции, обертывающие существующие JNI-несовместимые. –
@ChrisStratton Я думаю, что ты прав. Я добавил информацию о генерации кода Java и C с помощью SWIG. –
SWIG был именно тем, что я искал! – pdiddy