есть ли способ генерировать файлы JNI из файлов .c и .h?

#android #java-native-interface #openssl

#Android #java-native-interface #openssl

Вопрос:

Я скомпилировал Openssl для Android, но я не вижу, как получить доступ к функциям из java. Я думаю, мне нужны какие-то файлы JNI для этого. Есть ли способ генерировать соответствующие файлы JNI для libssl.so и libcrypto.so из Openssl файлов .c и .h.

Комментарии:

1. Я думаю, у вас должен быть файл заголовка (.h ) скомпилированного Openssl, если у вас есть, с помощью jni вы можете это сделать.

Ответ №1:

Взгляните на swig. Это должно позволять генерировать необходимый Java и c-код, позволяющий вызывать собственные функции, определенные в заголовке openssl, из Java.

Вы должны просто уметь делать:

 swig openssl.h
  

И у вас будет несколько классов Java, представляющих интерфейс openssl.h, и у вас будет c-оболочка, которую вам нужно скомпилировать для Android (как вы сделали для openssl).

На другом узле вы, возможно, захотите взглянуть на надувной замок. Это криптосистема, включенная в Android (и доступная через javax.net.ssl — читая эту ссылку, кажется, что openssl уже включен в Android).