Partager via


Utilisation de bibliothèques natives

Xamarin.Android prend en charge l’utilisation de bibliothèques natives via le mécanisme PInvoke standard. Vous pouvez également regrouper des bibliothèques natives supplémentaires qui ne font pas partie du système d’exploitation dans votre .apk.

Pour déployer une bibliothèque native avec une application Xamarin.Android, ajoutez le fichier binaire de la bibliothèque au projet et définissez son action de génération sur AndroidNativeLibrary.

Pour déployer une bibliothèque native avec un projet de bibliothèque Xamarin.Android, ajoutez le fichier binaire de la bibliothèque au projet et définissez son action de génération sur EmbeddedNativeLibrary.

Notez que, étant donné que Android prend en charge plusieurs interfaces binaires d’application (ABIs), Xamarin.Android doit savoir qui ABI la bibliothèque native est conçue pour. Vous pouvez faire cela de deux façons :

  1. Chemin d’accès « sniffing »
  2. À l’aide d’un AndroidNativeLibrary/Abi élément dans le fichier projet

Avec la détection de chemin, le nom du répertoire parent de la bibliothèque native est utilisé pour spécifier l’ABI ciblée par la bibliothèque. Par conséquent, si vous ajoutez lib/armeabi/libfoo.so au projet, l’ABI sera « sniffed » en tant que armeabi.

Vous pouvez également modifier votre fichier projet pour spécifier explicitement l’ABI à utiliser :

<ItemGroup>
    <AndroidNativeLibrary Include="path/to/libfoo.so">
        <Abi>armeabi</Abi>
    </AndroidNativeLibrary>
</ItemGroup>

Pour plus d’informations sur l’utilisation de bibliothèques natives, consultez Interop avec des bibliothèques natives.

Débogage de code natif avec Visual Studio

Si vous utilisez Visual Studio 2019 ou Visual Studio 2017, vous n’avez pas besoin de modifier vos fichiers projet comme décrit ci-dessus. Vous pouvez générer et déboguer C++ dans votre solution Xamarin.Android en ajoutant une référence de projet à un projet de bibliothèque partagée dynamique C++ (Android).

Pour déboguer du code C++ natif dans votre projet, procédez comme suit :

  1. Double-cliquez sur Propriétés du projet, puis sélectionnez la page Options Android.
  2. Faites défiler jusqu’aux options débogage.
  3. Dans le menu déroulant Débogueur , sélectionnez C++ (au lieu du .NET par défaut (Xamarin)).