Integracja języka Java z platformą Xamarin.Android

Ekosystem Języka Java obejmuje zróżnicowaną i ogromną kolekcję składników. Wiele z tych składników może służyć do skrócenia czasu opracowywania aplikacji systemu Android. W tym dokumencie przedstawiono ogólne omówienie niektórych sposobów, w jakie deweloperzy mogą używać tych istniejących składników Języka Java do ulepszania środowiska tworzenia aplikacji platformy Xamarin.Android.

Omówienie

Biorąc pod uwagę zakres ekosystemu Java, bardzo prawdopodobne jest, że wszystkie funkcje wymagane dla aplikacji platformy Xamarin.Android zostały już zakodowane w języku Java. Z tego powodu warto spróbować ponownie użyć tych istniejących bibliotek podczas tworzenia aplikacji platformy Xamarin.Android.

Istnieją trzy możliwe sposoby ponownego użycia bibliotek Java w aplikacji platformy Xamarin.Android:

  • Tworzenie biblioteki powiązań Języka Java — w ramach tej techniki projekt platformy Xamarin.Android służy do tworzenia otoek języka C# wokół typów języka Java. Aplikacja platformy Xamarin.Android może następnie odwoływać się do otoek języka C# utworzonych przez ten projekt, a następnie użyć .jar pliku.

  • Java Native Interfaceinterfejs natywnyJęzyka Java (JNI) to struktura, która umożliwia wywoływanie lub wywoływanie kodu innego niż Java (np. C++ lub C#) przez kod Java działający wewnątrz maszyny wirtualnej JVM.

  • Port kodu — ta metoda obejmuje pobranie kodu źródłowego Java, a następnie przekonwertowanie go na język C#. Można to zrobić ręcznie lub za pomocą zautomatyzowanego narzędzia, takiego jak wyostrzenie.

Podstawowym elementem dwóch pierwszych technik jest interfejs natywny Języka Java (JNI). JNI to struktura, która umożliwia aplikacjom nie napisanym w języku Java interakcję z kodem Java uruchomionym na maszynie wirtualnej Java. Rozszerzenie Xamarin.Android używa interfejsu JNI do tworzenia powiązań dla kodu języka C#.

Pierwsza technika to bardziej zautomatyzowane, deklaratywne podejście do tworzenia powiązań bibliotek Języka Java. Obejmuje to użycie Visual Studio dla komputerów Mac lub typu projektu programu Visual Studio udostępnianego przez platformę Xamarin.Android — bibliotekę powiązań Języka Java. Aby pomyślnie utworzyć te powiązania, biblioteka powiązań Języka Java może nadal wymagać pewnych modyfikacji ręcznych, ale nie tak wiele, jak w przypadku czystego podejścia JNI. Aby uzyskać więcej informacji na temat bibliotek powiązań Języka Java, zobacz Binding a Java Library (Wiązanie biblioteki języka Java).

Druga technika, korzystając z interfejsu JNI, działa na znacznie niższym poziomie, ale może zapewnić bardziej precyzyjną kontrolę i dostęp do metod Języka Java, które normalnie nie byłyby dostępne za pośrednictwem biblioteki powiązań Języka Java.

Trzecia technika różni się radykalnie od poprzednich dwóch: przenoszenie kodu z języka Java do języka C#. Przenoszenie kodu z jednego języka do innego może być bardzo pracochłonny proces, ale istnieje możliwość zmniejszenia tego nakładu pracy za pomocą narzędzia o nazwie Sharpen. Sharpen to narzędzie typu open source, które jest konwerterem Java-to-C#.

Podsumowanie

Ten dokument zawiera ogólne omówienie niektórych różnych sposobów ponownego użycia bibliotek języka Java w aplikacji platformy Xamarin.Android. Wprowadzono w nim koncepcje powiązań i zarządzanych otoek z możliwością wywołania oraz omówiliśmy opcje przenoszenia kodu Java do języka C#.