Integrace Javy s Xamarin.Androidem

Ekosystém Java zahrnuje různorodou a obrovskou kolekci komponent. Mnohé z těchto komponent je možné použít ke zkrácení doby potřebnou k vývoji aplikace pro Android. Tento dokument představuje základní přehled některých způsobů, jak můžou vývojáři tyto stávající komponenty Java použít ke zlepšení prostředí pro vývoj aplikací Xamarin.Android.

Přehled

Vzhledem k rozsahu ekosystému Java je velmi pravděpodobné, že všechny dané funkce vyžadované pro aplikaci Xamarin.Android již byly kódovány v Javě. Z tohoto důvodu je atraktivní vyzkoušet a znovu použít tyto stávající knihovny při vytváření aplikace Xamarin.Android.

Knihovny Java v aplikaci Xamarin.Android můžete opakovaně používat třemi způsoby:

  • Vytvořte knihovnu vazeb Java – pomocí této techniky se projekt Xamarin.Android používá k vytvoření obálky jazyka C# kolem typů Javy. Aplikace Xamarin.Android pak může odkazovat na obálky jazyka C# vytvořené tímto projektem a pak soubor použít .jar .

  • Java Native Interface – JNI (Java NativeInterface) je architektura, která umožňuje volání nebo volání kódu mimo Javu (například C++ nebo C#) kódem Java spuštěným uvnitř JVM.

  • Port kódu – Tato metoda zahrnuje pořízení zdrojového kódu Java a jeho následné převedení na C#. Můžete to provést ručně nebo pomocí automatizovaného nástroje, jako je Například Sharpen.

Jádrem prvních dvou technik je JNI (Java Native Interface ). JNI je architektura, která umožňuje aplikacím, které nejsou napsané v Javě, pracovat s kódem Javy spuštěným na virtuálním počítači Java. Xamarin.Android používá JNI k vytvoření vazeb pro kód jazyka C#.

První technika je automatizovanější a deklarativní přístup k vytváření vazeb knihoven Java. Zahrnuje použití Visual Studio pro Mac nebo typu projektu sady Visual Studio, který poskytuje Xamarin.Android – knihovna vazeb Java. Aby bylo možné tyto vazby úspěšně vytvořit, může knihovna vazeb Java stále vyžadovat některé ruční úpravy, ale ne tolik, jako by byl čistý přístup JNI. Další informace o knihovnách vazeb Java najdete v tématu Vazba java knihovny.

Druhá technika, pomocí JNI, funguje na mnohem nižší úrovni, ale může poskytovat jemné řízení a přístup k metodám Java, které by normálně nebyly přístupné prostřednictvím knihovny vazeb Java.

Třetí technika se od předchozích dvou výrazně liší: přenos kódu z Javy do jazyka C#. Přenos kódu z jednoho jazyka do druhého může být velmi pracný proces, ale je možné toto úsilí snížit pomocí nástroje s názvem Sharpen. Sharpen je opensourcový nástroj, který je převaděčem Java-to-C#.

Shrnutí

Tento dokument poskytuje základní přehled některých různých způsobů, jak lze knihovny z Javy opakovaně používat v aplikaci Xamarin.Android. Představil koncepty vazeb a spravovaných obálkových volání a probírané možnosti pro přenos kódu Java do jazyka C#.