Integración de Java con Xamarin.Android
El ecosistema de Java incluye una colección diversa e inmensa de componentes. Muchos de estos componentes se pueden usar para reducir el tiempo necesario para desarrollar una aplicación de Android. En este documento se presenta y proporciona información general de nivel superior de algunas de las formas en que los desarrolladores pueden usar estos componentes de Java existentes para mejorar la experiencia del desarrollo de aplicaciones de Xamarin.Android.
Información general
Dada la extensión del ecosistema de Java, es muy probable que cualquier funcionalidad concreta necesaria para una aplicación de Xamarin.Android ya se haya codificado en Java. Por este motivo, es interesante probar y volver a usar las bibliotecas existentes al crear una aplicación de Xamarin.Android.
Hay tres formas posibles de volver a usar las bibliotecas de Java en una aplicación de Xamarin.Android:
Crear una biblioteca de enlaces de Java: con esta técnica, se usa un proyecto de Xamarin.Android para crear contenedores C# alrededor de los tipos de Java. Una aplicación de Xamarin.Android puede hacer referencia a los contenedores C# creados por este proyecto y, a continuación, usar el archivo
.jar
.Interfaz nativa de Java: la interfaz nativa de Java (JNI) es un marco que permite que el código que no sea Java (como C++ o C#) llame o llame mediante código Java que se ejecuta dentro de una JVM.
Portar el código: este método implica tomar el código fuente Java y, a continuación, convertirlo en C#. Esto se puede hacer manualmente o mediante una herramienta automatizada como Sharpen.
En el núcleo de las dos primeras técnicas está Java Native Interface (JNI). JNI es un marco que permite a las aplicaciones no escritas en Java interactuar con el código Java que se ejecuta en un Máquina virtual Java. Xamarin.Android usa JNI para crear enlaces para el código C#.
La primera técnica es un enfoque declarativo más automatizado para enlazar bibliotecas de Java. Implica el uso de Visual Studio para Mac o de un tipo de proyecto de Visual Studio proporcionado por Xamarin.Android: la biblioteca de enlaces de Java. Para crear correctamente estos enlaces, es posible que una biblioteca de enlaces de Java requiera algunas modificaciones manuales, pero no tantas como las que requeriría con un enfoque de JNI puro. Consulte Enlace de una biblioteca Java para obtener más información sobre las bibliotecas de enlaces de Java.
La segunda técnica, el uso de JNI, funciona en un nivel mucho más bajo, pero puede proporcionar un mayor control y acceso a los 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: portar el código de Java a C#. Portar el código de un lenguaje a otro puede ser un proceso muy laborioso, pero es posible reducir ese esfuerzo con la ayuda de una herramienta llamada Sharpen. Sharpen 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 nivel superior sobre algunas de las distintas formas en que se pueden volver a usar las bibliotecas de Java en una aplicación de Xamarin.Android. Se introducen los conceptos de enlaces y contenedores que se pueden llamar administrados, y se explican las opciones para portar código Java a C#.