Utiliser la bibliothèque C dans Android sur NDK

Ce que je veux faire:

J’ai trouvé une bibliothèque C qui calcule la hauteur d’un stream audio et que je souhaite utiliser sous Android.

J’ai pensé qu’au lieu de le porter, je pourrais aussi l’utiliser avec l’aide du NDK, non?

Comment cela marche-t-il? Je dois installer le NDK, bien sûr, et ensuite? Puis-je appeler les fonctions de cette bibliothèque C comme d’habitude sous Android?

La bibliothèque en C que je veux “importer”:

#include "second_c_file.h" #include  #include  #include  #ifndef max #define max(x, y) ((x) > (y)) ? (x) : (y) #endif #ifndef min #define min(x, y) ((x) < (y)) ? (x) : (y) #endif int _power2p(int value) { ... } typedef struct _minmax { int index; struct _minmax *next; } minmax; double _test_calculate(double * var1, int var2, int var3) { ... } 

Le fichier “second_c_file.h” est évidemment un autre fichier que je dois importer.

Merci de votre aide!

Vous trouverez ici un bon didacticiel expliquant comment commencer à utiliser le NDK. Et oui, vous devriez pouvoir le comstackr et l’appeler à partir du NDK sans apporter beaucoup de modifications (en supposant que le code ne fait pas référence à d’autres bibliothèques).

Regardez les exemples de démarrage de NDK ici: http://developer.android.com/sdk/ndk/overview.html#samples

Ensuite, dans votre NDK, regardez l’exemple à two-libs . Vous voudrez probablement simplement lier statiquement votre bibliothèque de détection de hauteur audio tierce à votre propre code C.

Vous devez consulter Android.mk et le modifier pour créer votre bibliothèque tierce de manière statique, puis indiquer que votre projet principal utilise cette bibliothèque.

Cela devrait être assez simple. Le NDK (ne l’a pas utilisé depuis un moment) est un peu un ours. Assurez-vous donc que votre environnement de construction (surtout si vous utilisez Windows + Cygwin) fonctionne. Assurez-vous que les versions hello-jni et les versions par défaut à deux bibliothèques sont utilisées. Modifiez le second et vous devriez être là.