Uso de bibliotecas nativas
Xamarin.Android admite el uso de bibliotecas nativas mediante el mecanismo estándar de PInvoke. También puede agrupar bibliotecas nativas adicionales que no forman parte del sistema operativo en su .apk.
Para implementar una biblioteca nativa con una aplicación de Xamarin.Android, agregue al proyecto el archivo binario de la biblioteca y establezca su acción de compilación en AndroidNativeLibrary.
Para implementar una biblioteca nativa con un proyecto de la biblioteca de Xamarin.Android, agregue al proyecto el archivo binario de la biblioteca y establezca su acción de compilación en EmbeddedNativeLibrary.
Observe que puesto que Android admite varias interfaces binarias de aplicación (ABI), Xamarin.Android debe saber para qué ABI está compilada la biblioteca nativa. Hay dos maneras de hacerlo:
- Examinar la ruta de acceso
- Mediante un elemento
AndroidNativeLibrary/Abi
dentro del archivo de proyecto
Con el examen de la ruta de acceso, el nombre del directorio principal de la biblioteca nativa se utiliza para especificar la ABI a la que se dirige la biblioteca. Por lo tanto, si agrega lib/armeabi/libfoo.so
al proyecto, la ABI se examina como armeabi
.
Como alternativa, puede editar el archivo de proyecto para especificar explícitamente la ABI que se va a usar:
<ItemGroup>
<AndroidNativeLibrary Include="path/to/libfoo.so">
<Abi>armeabi</Abi>
</AndroidNativeLibrary>
</ItemGroup>
Para más información sobre el uso de bibliotecas nativas, consulte Interoperabilidad con bibliotecas nativas.
Depuración de código nativo con Visual Studio
Si usa Visual Studio 2019 o Visual Studio 2017, no tiene que modificar los archivos de proyecto, como se ha descrito anteriormente. Puede compilar y depurar C++ dentro de la solución de Xamarin.Android agregando una referencia de proyecto a un proyecto de biblioteca dinámica compartida (Android) de C++.
Para depurar código nativo de C++ en el proyecto, siga estos pasos:
- Haga doble clic en la opción Propiedades del proyecto y seleccione la página Android Options (Opciones de Android).
- Desplácese hacia abajo hasta Opciones de depuración.
- En el menú desplegable del Depurador, seleccione C++ (en lugar del predeterminado .NET [Xamarin]).