Utilisation de la bibliothèque C # avec Mono pour Android à partir du code Java?
-
25-10-2019 - |
Question
Il est possible d'utiliser la bibliothèque C # avec Mono pour Android à partir du code Java? Il est possible de le faire de Objective-C à C # (MonoTouch) avec le drapeau « --xcode » dans la commande mTouch. Mais il existe un équivalent en Mono pour Android?
Et il y a une raison de le faire?
merci!
gwennin
La solution
[Est-il possible de] l'utilisation des bibliothèques C # avec Mono pour Android à partir du code Java?
Oui. Chaque java.lang.Object sous-classe a un Android Callable Wrapper générées au moment de la construction. Android Callable Wrapper est présent pour permettre à un code Java en code géré appel (par exemple, de sorte que lorsque vous remplacez Activity.OnCreate () Android peut invoquer la override géré.
Cependant, il y a quelques ; en particulier, les seules méthodes qui sont déclarées dans le Callable Wrapper applications des procédés et des méthodes substituées en provenance des interfaces mises en œuvre. Cela complique le scénario Java-> C #.
[Y at-il] une raison de le faire?
Oui. Il y a un certain nombre de circonstances dans lesquelles vous pouvez actuellement pas utiliser C #, par exemple en utilisant des types qui sont en dehors de android.jar
(par exemple le API Cartes ). (Il est Android.Runtime.JNIEnv , mais cela ne fonctionne pas avec subclassing scénarios.) à ce titre, la meilleure façon d'utiliser les API Java consiste à écrire du code en Java, intégrez alors le Java et le code managé par divers mécanismes, y compris des activités distinctes (en utilisant Activity.startActivity () pour lancer une activité gérée de Java), JNIEnv
, services, etc.