J'ai le scénario suivant sur lequel travailler. On m'a donné une bibliothèque partagée (libeffect.so) à utiliser dans un projet Android, je travaille pour un client. Je n'ai pas le code source de la bibliothèque partagée, je n'ai que le fichier .so avec moi. La bibliothèque est pré-compilée pour fonctionner sur les appareils Android. En plus de la bibliothèque partagée J'ai la signature de la méthodeUtilisation de la bibliothèque partagée existante (.so) dans l'application Android
public static native void doEffect(int param1, IntBuffer intBuffer);
Alors maintenant, j'ai quelques questiosn sur la façon de faire l'appel à cette méthode native, de la source, si cela est possible d'avoir juste le fichier .so, donc il ils sont:
Ai-je besoin de placer la signature de la méthode native dans le même package/classe que ceux définis lorsque le .donc était ou je peux utiliser cette signature dans un paquet/classe dans mon projet que lors de l'exécution le jvm sera capable de trouver la méthode dans la bibliothèque partagée? Par exemple, si cette bibliothèque partagée a d'abord été utilisée dans une classe mypackage.MyClass, ai-je besoin de créer le même package, la même classe et d'y mettre la signature de la méthode? Où dois-je placer ce fichier .so à l'intérieur de mon projet android eclipse pour obtenir ce fichier déployé dans mon fichier APK?
Ces questions peut sembler noob, mais je n'ai jamais travaillé avec JNDI avant, donc je suis un peu inquiet si vous appelez la méthode doEffect sans erreur peut être atteindre. Toute réponse qui peut me guider est la bienvenue.
Merci beaucoup Thiago
Merci @Sujit. Je regardais ce tutoriel, http://www.android10.org/index.php/articlesother/276-call-c-code-from-application-using-ndk, et je vois que l'extrait de code C++ généré a le nom de la méthode composé du package java et du nom de la méthode. Est-ce que cela n'affecte pas la façon dont j'utilise la signature native? Je pensais que je devais suivre les mêmes conventions de nom utilisées lors de la création de la bibliothèque partagée. Une autre question, une fois que j'ai le fichier .so dans mon dossier AndroidProject/lib, ce fichier sera exporté avec le fichier APK? Ai-je besoin de créer le dossier sous-dossier armeabi? Merci beaucoup, T – Thiago