Intégration de Java à Xamarin.Android
L’écosystème Java comprend une collection variée et immense de composants. La plupart de ces composants peuvent être utilisés pour réduire le temps nécessaire au développement d’une application Android. Ce document présente et fournit une vue d’ensemble générale de certaines des façons dont les développeurs peuvent utiliser ces composants Java existants pour améliorer leur expérience de développement d’applications Xamarin.Android.
Vue d’ensemble
Étant donné l’étendue de l’écosystème Java, il est très probable que toute fonctionnalité donnée requise pour une application Xamarin.Android ait déjà été codée en Java. Pour cette raison, il est intéressant de tenter de réutiliser ces bibliothèques existantes lors de la création d’une application Xamarin.Android.
Il existe trois façons de réutiliser des bibliothèques Java dans une application Xamarin.Android :
Créez une bibliothèque de liaisons Java : avec cette technique, un projet Xamarin.Android est utilisé pour créer des wrappers C# autour des types Java. Une application Xamarin.Android peut ensuite référencer les wrappers C# créés par ce projet, puis utiliser le
.jar
fichier.Interface native Java : L’interface java native (JNI) est une infrastructure qui permet au code non Java (par exemple, C++ ou C#) d’appeler ou d’être appelé par du code Java s’exécutant à l’intérieur d’une machine virtuelle JVM.
Porter le code : cette méthode implique de prendre le code source Java, puis de le convertir en C#. Cette opération peut être effectuée manuellement ou à l’aide d’un outil automatisé tel que Sharpen.
Au cœur des deux premières techniques est l’interface java native (JNI). JNI est une infrastructure qui permet aux applications non écrites en Java d’interagir avec le code Java s’exécutant dans une machine virtuelle Java. Xamarin.Android utilise JNI pour créer des liaisons pour le code C#.
La première technique est une approche plus automatisée et déclarative pour lier des bibliothèques Java. Il implique l’utilisation de Visual Studio pour Mac ou d’un type de projet Visual Studio fourni par Xamarin.Android , la bibliothèque de liaisons Java. Pour créer ces liaisons, une bibliothèque de liaisons Java peut toujours nécessiter des modifications manuelles, mais pas autant qu’une approche JNI pure. Pour plus d’informations sur les bibliothèques de liaisons Java, consultez Liaison d’une bibliothèque Java.
La deuxième technique, qui utilise JNI, fonctionne à un niveau beaucoup plus bas, mais peut fournir un contrôle et un accès plus précis aux méthodes Java qui ne seraient normalement pas accessibles via une bibliothèque de liaisons Java.
La troisième technique est radicalement différente des deux précédentes : portage du code de Java vers C#. Le portage du code d’une langue à l’autre peut être un processus très laborieux, mais il est possible de réduire cet effort avec l’aide d’un outil appelé Sharpen. Sharpen est un outil code source ouvert qui est un convertisseur Java-to-C#.
Résumé
Ce document a fourni une vue d’ensemble générale de certaines des différentes façons dont les bibliothèques de Java peuvent être réutilisées dans une application Xamarin.Android. Il a introduit les concepts des liaisons et des wrappers pouvant être appelé gérés, ainsi que des options de portage du code Java vers C#.