Sdílet prostřednictvím


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:

  1. Cesta "sniffing"
  2. 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:

  1. Poklikejte na vlastnosti projektu a vyberte stránku Možnosti androidu.
  2. Posuňte se dolů k možnostem ladění.
  3. V rozevírací nabídce ladicího programu vyberte C++ (místo výchozí technologie .NET (Xamarin)).