Actualmente estoy usando Monodroid para desarrollar una aplicación de Android. Soy bastante nuevo en aplicaciones de teléfono, así que estoy confundido sobre un par de cosas:Biblioteca de C# .dll en la aplicación de Android
¿Qué es, por definición, una biblioteca de Android? Utilizo la plantilla Mono para crear la biblioteca de Android: Crear un Mono para Android Class Library => escribir el código y compilarlo en .dll => ejecutar con emulator desde Visual Studio y funciona bien en el emulador. ¿Pero el archivo .dll es una biblioteca de Android? ¿O es convertido por Mono antes de trabajar en el emulador y la biblioteca de Android 'REAL' debería ser JAR?
¿Puedo utilizar directamente mi .dll escrito escrito en C# para hacer esta aplicación? Lo intenté en Mono al hacer referencia directamente en mi aplicación de Android y está compilando, sin errores. Pero cuando el emulador ejecuta esta aplicación, queda trabada (todavía no hay error): ¿cuál es la forma correcta de usar C# .dll en el proyecto de la aplicación Android?
Soy consciente de que hay bastantes par de una serie de temas discutiendo el enlace entre C# y androide y sobre mono pero después de leer todavía no puede moverse con esta biblioteca de referencia problema por lo que si alguien pudiera ofrecer cualquier sugerencia/pensamientos serían más apreciado
¡Gracias por su respuesta aquí! Entonces, dado que el código .NET se ejecuta contra el tiempo de ejecución Mono, ¿eso significa que el dll solo se puede usar para la aplicación de Android, siempre que tenga instalado el SDK de Monodroid? Debido a que mi objetivo principal no es la aplicación, sino portar una biblioteca de C# a la biblioteca de Android y proporcionarlos a los desarrolladores de Android ... en ese caso, eso significa que incluso si logré que el dll sea compatible con Android, todavía requieren que Monodroid haga lo envoltura de tiempo de ejecución? – lynnyilu
Correcto: una DLL compilada con Mono para Android solo será útil para las aplicaciones creadas con Mono para Android. –
Si desea ofrecer una biblioteca a los desarrolladores, entonces debe tener un dll compilado para esa plataforma. Siempre que solo use las clases admitidas, puede admitir múltiples plataformas. En teoría ** Math.Round ** funcionará exactamente igual en todas las plataformas. Esto supone que la implementación de Mono coincide con la implementación de Microsoft .NET para todas las entradas (probablemente las pruebas porque hicieron pruebas de unidades en ella). –