Utilisation d'une librairie C++ objet en Java [Résolu]

Messages postés
2
Date d'inscription
samedi 13 novembre 2010
Statut
Membre
Dernière intervention
22 juillet 2011
- - Dernière réponse : Kernald
Messages postés
2
Date d'inscription
samedi 13 novembre 2010
Statut
Membre
Dernière intervention
22 juillet 2011
- 22 juil. 2011 à 18:03
Bonjour,
Je cherche à développer un client Android pour une application client/serveur développée en C++ sur PC. J'ai donc cherché quelques informations sur la possibilité de réutiliser un maximum du code existant sur Android. Je suis tombé sur JNI, qui me permettrait à priori de réutiliser les librairies définissant les classes métiers de l'application. Seulement, je trouve plein d'exemples permettant d'appeler une simple fonction C/C++, mais rien concernant l'orienté objet. Est-il possible d'utiliser des classes C++ dans une application Java, sur Android ? Si ça ne l'est pas, y a-t-il une solution me permettant de réutiliser le maximum de mon code (qui est totalement en orienté objet) ?

Merci.
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
5340
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
3 septembre 2019
87
3
Merci
Bonsoir,

Il est totalement possible d'utiliser jni sous Android (de mémoire il faut juste placer ta librairie (.so) dans un répertoire spécifique ; ou pas je sais plus ça fait un baille que je ne l'ai pas fait).
Pour ce qui est de l'aspect object... JNI (enfin l'API) est entièrement compatible C/C++ donc peut importe ce qu'il y a derrière, en plus tu as juste besoin de faire un bridge qui va implémenter les 'méthodes' natives de java (donc 'méthodes' issues d'un contexte object ce qui ne te pénalisera en rien et restera le plus transparent possible).

Ce qu'il faut savoir est qui est réellement le plus important, Android tourne sur des équipements mobiles qui sont tous (sauf erreur de ma part) sur des architectures ARM (iphone, samsung, nokia, etc...) donc il te faudra obligatoirement cross compiler ton code natif en ARM, ce qui est hyper facile sous linux (je ne me prononce pas pour windows vue que je ne l'ai jamais fait depuis windows, mais avec cygwin and co ça doit être faisable).



------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 223 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Twinuts
Messages postés
2
Date d'inscription
samedi 13 novembre 2010
Statut
Membre
Dernière intervention
22 juillet 2011
0
Merci
Salut,
Merci d'avoir pris le temps de répondre, j'ai juste totalement oublié que j'avais posté ici... J'ai déjà trouvé une solution technique depuis, sous la forme de SWIG, qui permet de générer directement une classe Java suivant une interface précise, qui appelle des méthodes (qui se débrouille en interne avec JNI pour conserver une notion d'objet, en fait).

Merci en tous cas !
Commenter la réponse de Kernald