Использование собственных библиотек

Xamarin.Android поддерживает использование собственных библиотек с помощью стандартного механизма PInvoke. Вы также можете привязать к APK-файлу дополнительные собственные библиотеки, которые не являются частью операционной системы.

Чтобы развернуть собственную библиотеку с приложением Xamarin.Android, добавьте в проект двоичный файл библиотеки и задайте для его действия сборки значение AndroidNativeLibrary.

Чтобы развернуть собственную библиотеку с проектом библиотеки Xamarin.Android, добавьте в проект двоичный файл библиотеки и задайте для его действия сборки значение EmbeddedNativeLibrary.

Так как Android поддерживает несколько бинарных интерфейсов приложений (ABI), Xamarin.Android должно знать, для какого ABI создана собственная библиотека. Это можно сделать двумя способами:

  1. Сканирование пути
  2. Использование AndroidNativeLibrary/Abi элемента в файле проекта

При сканировании пути имя родительского каталога собственной библиотеки используется для указания целевого ABI библиотеки. Таким образом при добавлении lib/armeabi/libfoo.so к проекту ABI будет сканироваться как armeabi.

Или же вы можете отредактировать файл вашего проекта, чтобы явно указать используемый ABI:

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

Дополнительные сведения об использовании собственных библиотек см. в статье Взаимодействие с собственными библиотеками.

Отладка машинного кода в Visual Studio

Если вы используете Visual Studio 2019 или Visual Studio 2017, вам не нужно изменять файлы проекта, как описано выше. Вы можете выполнять сборку и отладку C++ в решении Xamarin.Android, добавив ссылку на проект на C++ Динамическая общая библиотека (Android).

Чтобы выполнить отладку машинного кода C++ в вашем проекте, выполните указанные ниже действия.

  1. Дважды щелкните пункт Свойства проекта и выберите страницу Параметры Android.
  2. Прокрутите вниз до пункта Параметры отладки.
  3. В раскрывающемся меню Отладчик выберите C++ (вместо .NET (Xamarin), который задан по умолчанию).

Разработчики Visual Studio C++ могут просмотреть пример SanAngeles_NativeDebug, чтобы попробовать выполнить отладку C++ из Visual Studio 2019 или Visual Studio 2017 с помощью Xamarin. Дополнительные сведения см. в записи блога.