2010-07-17 7 views
0

Je suis nouveau à JNI, je développe une bibliothèque native pour un projet Android. J'ai lu des articles sur la programmation JNI mais je ne comprenais pas s'il est possible de créer une bibliothèque qui peut être chargée dans différentes classes de projet avec des paquets différents. J'ai lu que de déclarer une nouvelle méthode JNI la syntaxe est:JNI - Comment créer une bibliothèque pour différentes classes

  • le préfixe « Java_ »
  • un nom de classe codé complet
  • un trait de soulignement (« _ ») séparateur
  • une méthode encodée le nom

sur la base de cette définition, il ne devrait pas être possible ...

Supposons que j'avais défini une classe a dans le paquet pkg1 avec la méthode native foo contenue dans libfoo, puis j'ai défini une classe B dans le paquet pkg2. Puis-je utiliser libfoo et la méthode foo dans B? Comment devrais-je définir la méthode native pour obtenir le résultat?

Merci!

+0

Je ne comprends pas pourquoi vous pensez que cela ne devrait pas être possible. Qu'est-ce que vous attendez de cela ne fonctionnera pas? Pourquoi pensez-vous que cela va échouer? – fadden

Répondre

2

Sur Android, le recommended way to register natives est d'utiliser les RegisterNatives de JNI(), parce qu'il est plus rapide que le Java_ * mécanisme de recherche. Et, ce faisant, vous devriez pouvoir enregistrer la même méthode native dans plusieurs classes/packages si vous le souhaitez.

Questions connexes