Использование существующей разделяемой библиотеки (.so) в приложении Android

У меня есть следующий сценарий, над которым нужно работать. Мне была предоставлена ​​общая библиотека (libeffect.so) для использования в проекте Android, над которым я работаю для клиента. У меня нет исходного кода общей библиотеки, у меня с собой только файл .so. Библиотека предварительно скомпилирована для работы на устройствах Android. Наряду с разделяемой библиотекой у меня есть сигнатура метода

public static native void doEffect(int param1, IntBuffer intBuffer);

Итак, теперь у меня есть несколько вопросов о том, как вызвать этот собственный метод из источника, если это возможно, имея только файл .so, так что вот они:

  1. Нужно ли мне помещать сигнатуру собственного метода в тот же пакет / класс, что и те, которые были определены, когда был .so, или я могу использовать эту сигнатуру в любом пакете / классе в моем проекте, что во время выполнения jvm сможет найти метод в разделяемой библиотеке? Например, если эта разделяемая библиотека впервые использовалась в классе mypackage.MyClass, нужно ли мне создать тот же пакет, класс, а затем поместить туда подпись метода?

  2. Где мне нужно разместить этот файл .so внутри моего eclipse android project, чтобы этот файл был развернут в моем apk-файле?

Этот вопрос может показаться нубом, но я никогда раньше не работал с jndi, поэтому меня немного беспокоит, можно ли вызвать метод doEffect без каких-либо ошибок. Любой ответ, который может помочь мне, очень приветствуется.

Большое спасибо Thiago

10
задан Thiago 23 June 2011 в 04:13
поделиться