Używanie bibliotek natywnych
Platforma Xamarin.Android obsługuje korzystanie z bibliotek natywnych za pośrednictwem standardowego mechanizmu PInvoke. Możesz również powiązać dodatkowe biblioteki natywne, które nie są częścią systemu operacyjnego w .apk.
Aby wdrożyć bibliotekę natywną z aplikacją platformy Xamarin.Android, dodaj plik binarny biblioteki do projektu i ustaw jego akcję kompilacji na Wartość AndroidNativeLibrary.
Aby wdrożyć bibliotekę natywną z projektem biblioteki Xamarin.Android, dodaj plik binarny biblioteki do projektu i ustaw jego akcję kompilacji na EmbeddedNativeLibrary.
Należy pamiętać, że ponieważ system Android obsługuje wiele interfejsów binarnych aplikacji (ABI), platforma Xamarin.Android musi wiedzieć, dla której biblioteki natywnej jest tworzona biblioteka ABI. Można to zrobić na dwa sposoby:
- Ścieżka "wąchanie"
- Za pomocą
AndroidNativeLibrary/Abi
elementu w pliku projektu
W przypadku wąchania ścieżki nazwa katalogu nadrzędnego biblioteki natywnej służy do określania biblioteki ABI, która jest przeznaczona dla biblioteki. W związku z tym, jeśli dodasz lib/armeabi/libfoo.so
do projektu, to ABI będzie "wąchane" jako armeabi
.
Alternatywnie możesz edytować plik projektu, aby jawnie określić usługę ABI do użycia:
<ItemGroup>
<AndroidNativeLibrary Include="path/to/libfoo.so">
<Abi>armeabi</Abi>
</AndroidNativeLibrary>
</ItemGroup>
Aby uzyskać więcej informacji na temat korzystania z bibliotek natywnych, zobacz Interop with native libraries (Międzyoperacyjnie z bibliotekami natywnymi).
Debugowanie kodu natywnego za pomocą programu Visual Studio
Jeśli używasz programu Visual Studio 2019 lub Visual Studio 2017, nie musisz modyfikować plików projektu zgodnie z powyższym opisem. Możesz kompilować i debugować język C++ w rozwiązaniu Xamarin.Android, dodając odwołanie do projektu dynamicznej biblioteki udostępnionej (Android) języka C++.
Aby debugować natywny kod C++ w projekcie, wykonaj następujące kroki:
- Kliknij dwukrotnie pozycję Właściwości projektu i wybierz stronę Opcje systemu Android.
- Przewiń w dół do pozycji Opcje debugowania.
- W menu rozwijanym Debuger wybierz pozycję C++ (zamiast domyślnej platformy .NET (Xamarin)).