Importer une bibliothèque c++ (.un ou .donc, fichier) ndk android
J'ai juste traversé développement natif sur android. Je suis réussi à obtenir mon AndroidStudio 2.2.2 prêt pour les natifs debelopment
J'ai aussi construire l'échantillon bonjour-jni projet
Ce que je suis en train de réaliser
Je suis en train d'utiliser une bibliothèque existante conçu en c++ (je vais être fourni avec une bibliothèque statique .un extension ou .donc fichier)
Quelques confusions concernant natif de développement
1) dois-je utiliser le .rpc & .h les fichiers de l'existant de la bibliothèque c++ au lieu de .un ou .donc fichier ?
2) Dois-je faire CMakeLists.texte : jusqu'à présent, comme je l'ai googlé mon .un fichiers n'est pas généré à l'aide de ndk-build , donc j'ai besoin de le faire.
Si j'utilise .rpc & .h fichiers , dois-je faire Android.mk & Application.mk
Ne CMakeLists.texte compiler mes nouvellement développé pour android projet, de la bibliothèque ou mon .un fichier ?
3) Où dois-je mettre la .un fichier dans mon projet . Est-ce sous jni dossier?
4) si mes fichiers de classe java doit définir des méthodes avec mot clé native même comme implémenté en c++ fichier (Exemple : Dans le fichier c++ nom de la méthode getData() , devrait classe java contiennent public natif getData() )
OriginalL'auteur karthik kolanji | 2016-11-04
Vous devez vous connecter pour publier un commentaire.
Ok, donc vous avez des tas de questions. Certaines de ces questions sont de préférence personnelle, mais je vais transmettre mon choix personnel.
1
C'est votre choix. Personnellement, je voudrais utiliser la compilation des
.so
fichier. De cette façon, je n'ai jamais à vous soucier de NDK et CMake et .mk fichiers. Si vous avez le fichier, tout ce que vous avez à faire est d'ajouter le fichier à lalibs
dossier (paslib
dossier) et d'apporter une modification mineure à votrebuild.gradle
fichier. C'est tout.Changement de construire.gradle:
2 & 3
Ces serait hors de propos avec cette option.
4
Que vous avez à faire quelque chose comme ceci peu importe si vous utilisez les fichiers ou les bibliothèques compilées:
Et puis, vous pouvez appeler ces méthodes à partir de votre
Activity
/Fragment
.Espère que c'est assez clair.
MODIFIER (basé sur le commentaire ci-dessous):
1)
.so
ou.a
fichiers sont vos bibliothèques natives.2) le
.cpp
,.c
, etc. les fichiers sont juste les fichiers de code source. Si vous avez été à l'utilisation de ces fichiers dans le projet, vous devez utiliser un système de construction (par exemple, CMake) pour les utiliser. CMake serait de prendre vos fichiers de code source et de faire un.so
de la bibliothèque qui est à nouveau la bibliothèque native. C'est pourquoi j'ai suggéré d'utiliser le.so
fichiers, car pourquoi faire le travail de la mise en œuvre de CMake dans votre projet lorsque vous n'avez pas besoin de?Si vous voulez essayer de CMake ou de l'apprendre à l'avenir, cochez cette réponse: C/C++ avec Android Studio version 2.2
3)
System.loadLibrary("my_native_lib");
: Ici, vous dites la Java runtime pour ajouter cette bibliothèque donnée. De cette façon, vous créez un lien entre le Java et le C++ le code qui est dans la bibliothèque. Les méthodes ci-dessous de cette ligne doit avoir le même nom que dans le C++/C code. De cette façon, Java runtime trouver et d'ouvrir la bibliothèque et regarder pour ceux de la méthode dans la bibliothèque que vous chargez. Voir plus d' iciJ'ai édité ma réponse à vous donner plus de détails. Voir si cela aide
D'origine de mon Projet est fait en utilisant VisulaStudio . De toute façon pour ajouter le fichier source c++ pour Android studio et de générer .de la sorte ? . Ce serait formidable si cela se produit
Oui pour le faire, regardez ce lien. stackoverflow.com/questions/40369382/... C'est la solution la plus simple
peut-u s'il vous plaît aidez-moi comment doit être mon Android.mk fichier ? comme par ur motif
OriginalL'auteur ᴛʜᴇᴘᴀᴛᴇʟ
De ici
OriginalL'auteur not2qubit
Cela peut Vous aider à Ajouter un Code C et C++ à Votre Projet
OriginalL'auteur CLIFFORD P Y