Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Java-Ökosystem umfasst eine vielfältige und umfangreiche Sammlung von Komponenten. Viele dieser Komponenten können verwendet werden, um schneller neue Android-Anwendungen zu entwickeln. Dieses Dokument bietet eine allgemeine Übersicht über einige Möglichkeiten, wie Entwickler bei der Entwicklung von Xamarin.Android-Anwendungen von diesen Java-Komponenten profitieren können.
Übersicht
Angesichts des Umfangs des Java-Ökosystems ist es sehr wahrscheinlich, dass eine für eine Xamarin.Android-Anwendung erforderliche Funktion bereits in Java codiert wurde. Daher bietet es sich an, beim Erstellen einer neuen Xamarin.Android-Anwendung diese bereits vorhandenen Bibliotheken zu testen und wiederzuverwenden.
Es gibt drei Möglichkeiten, Java-Bibliotheken in einer Xamarin.Android-Anwendung wiederzuverwenden:
Erstellen Sie eine Java Bindings-Bibliothek – Mit dieser Technik wird ein Xamarin.Android-Projekt verwendet, um C#-Wrapper um die Java-Typen zu erstellen. Dann kann die Xamarin.Android-Anwendung auf die von diesem Projekt erstellten C#-Wrapper verweisen und die
.jar-Datei verwenden.Java Native Interface – Das Java Native Interface (JNI) ist ein Framework, das nicht-Java-Code (z. B. C++ oder C#) aufruft oder von Java-Code aufgerufen werden kann, der in einem JVM ausgeführt wird.
Portieren des Codes – Diese Methode umfasst das Übernehmen des Java-Quellcodes und anschließendes Konvertieren in C#. Dies kann manuell oder mithilfe eines automatisierten Tools wie Sharpen erfolgen.
Bei den ersten beiden Techniken steht dasJNI-Framework im Vordergrund. Mit diesem Framework können Anwendungen, die nicht in Java geschrieben sind, mit Java-Code interagieren, der in einer JVM-Instanz (Java Virtual Machine) ausgeführt wird. Xamarin.Android verwendet JNI, um Bindungen für C#-Code zu erstellen.
Bei der ersten Technik wird ein stärker automatisierter, deklarativer Ansatz verwendet, um Java-Bibliotheken zu binden. Sie umfasst entweder Visual Studio für Mac oder einen Visual Studio-Projekttyp, der von Xamarin.Android bereitgestellt wird – die Java Bindings Library. Damit Sie diese Bindungen erstellen können, müssen Sie zwar ggf. noch einige manuelle Änderungen an der Java-Bindungsbibliothek vornehmen, aber bei einem reinen JNI-Ansatz wäre der Aufwand größer. Weitere Informationen zu Java-Bindungsbibliotheken finden Sie unter Binden einer Java-Bibliothek.
Die zweite Technik, bei der JNI eingesetzt wird, setzt auf viel niedrigerer Ebene an, ermöglicht aber unter Umständen bessere Kontrolle und Java-Methoden, auf die Sie normalerweise nicht über eine Java-Bindungsbibliothek zugreifen können.
Die dritte Technik unterscheidet sich grundlegend von den vorherigen beiden. Dabei geht es darum, Code von Java in C# zu portieren. Es kann sehr aufwendig sein, Code von einer Sprache in eine andere zu portieren, aber mithilfe des Tools Sharpen können Sie diesen Aufwand reduzieren. Sharpen ist ein Open-Source-Tool, mit dem Sie Java-Code in C# konvertieren können.
Zusammenfassung
In diesem Dokument habe Sie einen groben Überblick über einige Möglichkeiten erhalten, Java-Bibliotheken in einer Xamarin.Android-Anwendung wiederzuverwenden. Es wurden die Konzepte von Bindungen und verwalteten Callable Wrappers vorgestellt, und es wurden verschiedene Optionen zum Portieren von Java-Code in C# erläutert.