Používání nativních knihoven
Xamarin.Android podporuje použití nativních knihoven prostřednictvím standardního mechanismu PInvoke. Do .apk můžete také sbalit další nativní knihovny, které nejsou součástí operačního systému.
Pokud chcete nasadit nativní knihovnu s aplikací Xamarin.Android, přidejte do projektu binární soubor knihovny a nastavte jeho akci sestavení na AndroidNativeLibrary.
Pokud chcete nasadit nativní knihovnu s projektem knihovny Xamarin.Android, přidejte do projektu binární soubor knihovny a nastavte jeho akci sestavení na EmbeddedNativeLibrary.
Všimněte si, že vzhledem k tomu, že Android podporuje více binárních rozhraní aplikací (ABI), Xamarin.Android musí vědět, pro kterou nativní knihovnu ABI je vytvořená. Můžete to udělat dvěma způsoby:
- Cesta "sniffing"
- Použitím elementu
AndroidNativeLibrary/Abi
v souboru projektu
Při zašifrování cesty se k určení ABI, který cílí na knihovnu, používá nadřazený název adresáře nativní knihovny. Pokud tedy přidáte lib/armeabi/libfoo.so
do projektu, ABI se "zašifruje" jako armeabi
.
Případně můžete upravit soubor projektu a explicitně zadat ABI, který se má použít:
<ItemGroup>
<AndroidNativeLibrary Include="path/to/libfoo.so">
<Abi>armeabi</Abi>
</AndroidNativeLibrary>
</ItemGroup>
Další informace o používání nativních knihoven najdete v tématu Spolupráce s nativními knihovnami.
Ladění nativního kódu pomocí sady Visual Studio
Pokud používáte Visual Studio 2019 nebo Visual Studio 2017, nemusíte upravovat soubory projektu, jak je popsáno výše. V řešení Xamarin.Android můžete sestavit a ladit jazyk C++ přidáním odkazu na projekt C++ Dynamic Shared Library (Android).
Pokud chcete v projektu ladit nativní kód C++, postupujte takto:
- Poklikejte na vlastnosti projektu a vyberte stránku Možnosti androidu.
- Posuňte se dolů k možnostem ladění.
- V rozevírací nabídce ladicího programu vyberte C++ (místo výchozí technologie .NET (Xamarin)).