Ответ 1
Предположим, что у нас есть общая библиотека под названием MyTest.so, и мы хотим использовать ее в проекте Xamarin.Android. MyTest.so состоит из функции
int MyTest_GetValue();
Теперь мы должны использовать эту функцию в проекте Xamarin.Android. Ниже приведены шаги для достижения успеха:
Шаг 1. Создайте новую папку внутри проекта Xamarin.Android под названием lib и sub-folder armeabi. Скопировал мою .so-библиотеку, которая будет использоваться внутри папки armeabi, как указано здесь
Шаг 2. Задайте свойства library.so(импортированная библиотека). Постройте действие в "AndroidNativeLibrary" и скопируйте на вывод "Всегда копировать".
Шаг 3: (Работа в классе Xamarin.Android, например: MainActivity.cs)
-
Включить пространство имен InteropServices через "using System.Runtime.InteropServices;"
-
Используйте стандартный проект DllImport в проекте для импорта родной библиотеки, как показано ниже: [DllImport ( "MyTest.so" )] public extern static int MyTest_GetValue();//с точным именем, типом и параметрами Functtion в .so Lib.
Шаг 4: Используйте функцию выше (MyTest_GetValue()) в приложении.
Пример:
int value = MyTest_GetValue();
Console.WriteLine(value.ToString());
Миссия выполнена!: D