Intégration de Java à Xamarin.Android

L’écosystème Java comprend une vaste collection 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

Compte tenu de l’étendue de l’écosystème Java, il est très probable que toutes les fonctionnalités requises pour une application Xamarin.Android ont déjà été codées en Java. Pour cette raison, il est intéressant d’essayer de réutiliser ces bibliothèques existantes lors de la création d’une application Xamarin.Android.

Il existe trois façons possibles de réutiliser des bibliothèques Java dans une application Xamarin.Android :

  • Créer 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 java native : L’interfacejava 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 exécuté à 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#. Cela peut être effectué manuellement ou à l’aide d’un outil automatisé tel que Sharpen.

Au cœur des deux premières techniques se trouve l’interface java native (JNI). JNI est une infrastructure qui permet aux applications non écrites en Java d’interagir avec du 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 déclarative plus automatisée de la liaison de bibliothèques Java. Cela 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 correctement ces liaisons, une bibliothèque de liaisons Java peut encore nécessiter des modifications manuelles, mais pas autant qu’une approche JNI pure. Pour plus d’informations sur les bibliothèques de liaison Java, consultez Liaison d’une bibliothèque Java .

La deuxième technique, l’utilisation de JNI, fonctionne à un niveau beaucoup moins élevé, 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 : le portage du code de Java vers C#. Le portage de code d’un langage vers un autre peut être un processus très laborieux, mais il est possible de réduire cet effort à l’aide d’un outil appelé Sharpen. Sharpen est un outil open source qui est un convertisseur Java vers C#.

Résumé

Ce document fournit une vue d’ensemble générale de certaines des différentes façons dont les bibliothèques java peuvent être réutilisées dans une application Xamarin.Android. Il a présenté les concepts de liaisons et de wrappers pouvant être appelé gérés, et a abordé les options de portage du code Java vers C#.