J'ai l'interface suivante, qui correspond à une fonction exportée d'une DLL :
interface Foo extends Library {
int ProcessBytes(byte[] bytes, int size);
}
J'utilise Proguard pour obscurcir mon application. Et, pour l'instant, j'utilise l'option -keep
pour maintenir le code de l'interface ci-dessus. Ainsi, JNA peut trouver la fonction et l'appeler.
J'aimerais également obscurcir l'interface. Si j'enlève le -keep
mon interface ressemblera à ceci :
interface a extends Library {
int a(byte[] a, int b);
}
Et la JNA ne peut pas s'en charger, car a
n'existe pas dans les fonctions exportées. Ma question est donc la suivante : est-il possible d'annoter le nom de la fonction exportée ? Quelque chose comme ceci :
interface Foo extends Library {
@Function("ProcessBytes")
int anyname(byte[] bytes, int size);
}
Comme "Je me fiche du nom de votre méthode, j'appellerai la " ProcessBytes
"lorsque la méthode anyname
est appelé.