Android NDK: автоматически создавать объявления функций? - PullRequest
2 голосов
/ 29 ноября 2009

Я пытаюсь использовать уже существующую нативную библиотеку C в моем проекте Android. Библиотека прекрасно работает с инструментами NDK ...

Теперь я понял, что я не могу просто вызвать библиотеку, но моя библиотека должна включать jni.h и добавлять объявления определенных функций, например:

JNIEXPORT jint JNICALL Java_com_MultPkg_Mult_mult(JNIEnv *, jobject, jint, jint);

Но поскольку я использую существующую библиотеку I, которая также используется на других платформах, мне не нравится идея засорять весь код этими определениями, которые в конечном итоге обернутся только моими реальными функциями ...

Есть ли способ обойти это? И если это действительно единственный способ, есть ли способ автоматически сгенерировать их на основе моих существующих объявлений / определений функций C?

Очень ценится

Ответы [ 2 ]

1 голос
/ 04 декабря 2009

Используйте инструмент javah , входящий в комплект JDK, поскольку он не является ни частью SDK Android, ни NDK.

0 голосов
/ 06 декабря 2013

Используйте SWIG для автоматического создания jni-совместимого c-файла.Он также генерирует класс .java, чтобы ваш андроид взаимодействовал с классом java, в котором есть все нативные методы.

Взгляните на это: SWIG Android

...