Utilisation de la bibliothèque C dans sur Android NDK
Ce que je veux faire:
J'ai trouvé un La bibliothèque C qui calcule un flux audio pitch et que vous voulez utiliser dans Android.
J'ai pensé à la place de portage je pourrais aussi l'utiliser avec l'aide de la NDK, droit?
Comment cela fonctionne? J'ai installer le NDK, bien sûr, et alors? Puis-je appeler des fonctions de cette bibliothèque C aussi normal dans Android?
La bibliothèque en C que je veux "importer":
#include "second_c_file.h"
#include <math.h>
#include <stdlib.h>
#include <string.h>
#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 un autre fichier que j'ai besoin d'importer, de toute évidence.
Merci pour votre aide!
Vous devez vous connecter pour publier un commentaire.
Un bon tutoriel pour savoir comment commencer à travailler avec le NDK peut être trouvé ici. Et oui, vous devriez être en mesure de l'obtenir pour la compilation et l'appeler à partir du NDK sans beaucoup de changements (en supposant que le code ne fait pas référence à d'autres bibliothèques).
Regarder le NDK prise en main des échantillons ici:
http://developer.android.com/sdk/ndk/overview.html#samples
Puis dans votre NDK, regardez la
two-libs
exemple. Vous voudrez probablement juste de lier statiquement votre audio tiers de détection de hauteur de la bibliothèque de votre propre code C.Vous aurez besoin de regarder à l'Androïde.mk et de le modifier pour construire votre bibliothèque tierce statiquement et ensuite indiquer que votre projet principal utilise la bibliothèque.
Il devrait être assez simple. Le NDK (ne l'avez pas utilisé depuis un certain temps), c'est un peu un ours. Donc, assurez-vous que votre environnement de construction (surtout si vous utilisez Windows + Cygwin) fonctionne. Assurez-vous que le bonjour-jni construit, et la valeur par défaut de deux libs construit. Modifier les deuxième et il faut être là.