Integración de Java con Xamarin.Android
El ecosistema de Java incluye una colección de componentes diverso e inmensidad. Muchos de estos componentes se pueden usar para reducir el tiempo necesario para desarrollar una aplicación Android. Este documento presentará y proporcionará información general de alto nivel de algunas de las formas en que los desarrolladores pueden usar estos componentes de Java existentes para mejorar su experiencia de desarrollo de aplicaciones de Xamarin.Android.
Información general
Dada la extensión del ecosistema de Java, es muy probable que cualquier funcionalidad determinada necesaria para una aplicación de Xamarin.Android ya se haya codificado en Java. Por este motivo, resulta atractivo probar y reutilizar estas bibliotecas existentes al crear una aplicación de Xamarin.Android.
Hay tres maneras posibles de reutilizar bibliotecas de Java en una aplicación Xamarin.Android:
Crear una biblioteca de enlaces de Java: con esta técnica, se usa un proyecto de Xamarin.Android para crear contenedores de C# en torno a los tipos de Java. Después, una aplicación de Xamarin.Android puede hacer referencia a los contenedores de C# creados por este proyecto y, a continuación, usar el
.jararchivo .Interfaz nativa de Java: la interfaz nativa de Java (JNI) es un marco que permite que el código que no es de Java (como C++ o C#) llame a código Java que se ejecute dentro de una JVM o que lo llame.
Porte el código: este método implica tomar el código fuente de Java y, a continuación, convertirlo en C#. Esto se puede hacer manualmente o mediante una herramienta automatizada como Ladesado.
En el núcleo de las dos primeras técnicas se encuentra la interfaz nativa de Java (JNI). JNI es un marco que permite que las aplicaciones no escritas en Java interactúen con el código Java que se ejecuta en un Máquina virtual Java. Xamarin.Android usa JNI para crear enlaces para código de C#.
La primera técnica es un enfoque más automatizado y declarativo para enlazar bibliotecas de Java. Implica el uso de Visual Studio para Mac o un Visual Studio de proyecto proporcionado por Xamarin.Android: la biblioteca de enlaces de Java. Para crear correctamente estos enlaces, una biblioteca de enlaces de Java todavía puede requerir algunas modificaciones manuales, pero no tantas como lo haría un enfoque JNI puro. Consulte Enlace de una biblioteca de Java para obtener más información sobre las bibliotecas de enlace de Java.
La segunda técnica, mediante JNI, funciona en un nivel mucho menor, pero puede proporcionar un control más preciso y acceso a métodos de Java que normalmente no serían accesibles a través de una biblioteca de enlaces de Java.
La tercera técnica es radicalmente diferente de las dos anteriores: porte el código de Java a C#. La porteación de código de un idioma a otro puede ser un proceso muy laborioso, pero es posible reducir ese esfuerzo con la ayuda de una herramienta denominada Desalonar. El enfoque es una herramienta de código abierto que es un convertidor de Java a C#.
Resumen
En este documento se proporciona información general de alto nivel de algunas de las distintas formas en que las bibliotecas de Java se pueden reutilizar en una aplicación xamarin.android. Se presentaron los conceptos de enlaces y contenedores que se pueden llamar administrados, y se analizaron las opciones para portar código Java a C#.