Integrazione java con Xamarin.Android

L'ecosistema Java include una raccolta diversificata e immensa di componenti. Molti di questi componenti possono essere usati per ridurre il tempo necessario per sviluppare un'applicazione Android. Questo documento presenta e fornisce una panoramica generale di alcuni dei modi in cui gli sviluppatori possono usare questi componenti Java esistenti per migliorare l'esperienza di sviluppo di applicazioni Xamarin.Android.

Panoramica

Data l'estensione dell'ecosistema Java, è molto probabile che qualsiasi funzionalità specificata necessaria per un'applicazione Xamarin.Android sia già stata codificata in Java. Per questo motivo, è interessante provare a riutilizzare queste librerie esistenti durante la creazione di un'applicazione Xamarin.Android.

Esistono tre modi possibili per riutilizzare le librerie Java in un'applicazione Xamarin.Android:

  • Creare una libreria di binding Java: con questa tecnica viene usato un progetto Xamarin.Android per creare wrapper C# intorno ai tipi Java. Un'applicazione Xamarin.Android può quindi fare riferimento ai wrapper C# creati da questo progetto e quindi usare il .jar file.

  • Java Native Interface : Java Native Interface (JNI) è un framework che consente al codice non Java (ad esempio C++ o C#) di chiamare o essere chiamato dal codice Java in esecuzione all'interno di una JVM.

  • Convertire il codice : questo metodo comporta l'acquisizione del codice sorgente Java e la conversione in C#. Questa operazione può essere eseguita manualmente o usando uno strumento automatizzato, ad esempio Sharpen.

Al centro delle prime due tecniche è java Native Interface (JNI). JNI è un framework che consente alle applicazioni non scritte in Java di interagire con il codice Java in esecuzione in una macchina virtuale Java. Xamarin.Android usa JNI per creare associazioni per il codice C#.

La prima tecnica è un approccio più automatizzato e dichiarativo per l'associazione di librerie Java. Prevede l'uso di Visual Studio per Mac o di un tipo di progetto di Visual Studio fornito da Xamarin.Android, ovvero la libreria di binding Java. Per creare correttamente queste associazioni, una libreria Java Bindings potrebbe comunque richiedere alcune modifiche manuali, ma non il numero di un approccio JNI puro. Per altre informazioni sulle librerie di binding Java, vedere Binding a Java Library .See Binding a Java Library for more information about Java Binding libraries.

La seconda tecnica, che usa JNI, funziona a un livello molto inferiore, ma può fornire un controllo più efficace e l'accesso ai metodi Java che normalmente non sarebbero accessibili tramite una libreria di binding Java.

La terza tecnica è radicalmente diversa dalle due precedenti: conversione del codice da Java a C#. La conversione del codice da un linguaggio a un altro può essere un processo molto laborioso, ma è possibile ridurre tale sforzo con l'aiuto di uno strumento denominato Sharpen. Sharpen è uno strumento open source che è un convertitore da Java a C#.

Riepilogo

Questo documento ha fornito una panoramica generale di alcuni dei diversi modi in cui le librerie di Java possono essere riutilizzate in un'applicazione Xamarin.Android. Sono stati introdotti i concetti relativi alle associazioni e ai wrapper chiamabili gestiti e sono state illustrate le opzioni per la conversione del codice Java in C#.