android - tutorial xamarin visual studio 2017
Xamarin.Android builds/despliegues son muy lentos. ¿Cómo acelerarlos? (1)
Me puse en contacto con los chicos de Xamarin sobre este problema y solucionaron dos problemas en Xamarin.Android:
- bugzilla.xamarin.com/show_bug.cgi?id=16622 (proporcionado desde Xamarin Android 4.12.0 )
- https://bugzilla.xamarin.com/show_bug.cgi?id=15162 (proporcionado desde Xamarin Android 4.10.0 )
El tiempo de compilación para mi gran proyecto sin ningún cambio es ahora ~ 5 segundos. Y al realizar un cambio de código en la libra más profunda, un ciclo de implementación no demora más de 16 segundos.
Tenemos un gran proyecto de Xamarin.Android con dos proyectos dependientes y un montón de archivos DLL de terceros. Hacer una implementación de depuración (sin ningún cambio) en un Emulador Hax-x86 o en un dispositivo Nexus 5 es extremadamente lento (> 80 segundos). Para comparación, la versión Xamarin.iOS de la aplicación se implementa en menos de siete segundos en un dispositivo real.
Para probar los tiempos de implementación, también he creado un nuevo proyecto de Xamarin.Android que se implementa en unos cuatro segundos. Cuando agrego un proyecto dependiente, el tiempo de implementación sube a siete segundos. Cuando agrego un archivo de diseño al proyecto dependiente, el tiempo de implementación aumenta a aproximadamente diez segundos.
¿Es posible acelerar la compilación y la implementación de Android con Xamarin Studio? Un gran Eclipse Android Projects se implementa bastante rápido en comparación.
Actualizar:
La ejecución del paso de compilación de la instalación tarda unos 40 segundos:
time xbuild /t:Install BigApp.csproj
...
...
...
Time Elapsed 00:00:42.8526970
aproximadamente la mitad del tiempo es pasar donde el comando anterior se imprime en la consola:
Target _CompileDex:
JavaSourceFiles:
JavaLibraries:
ExternalJavaLibraries:
Tool /usr//bin/java execution started with arguments: -Xmx512M -jar
/Users/myname/Library/Developer/Xamarin/android-sdk-mac_x86/build-tools/17.0.0//lib/dx.jar
--no-strict --dex --output=obj/Debug/android/bin/classes.dex obj/Debug/android/bin/classes
/Library/Frameworks/Xamarin.Android.framework/Versions/Current/lib/mandroid/platforms/android-15/mono.android.jar
/Users/myname/Projects/BigApp/obj/Debug/__library_projects__/TestFlightBindings.Jars.TestFlightLib_1_2.jar
/Users/myname/Projects/BigApp/obj/Debug/__library_projects__/android-support-v4.jar
/Users/myname/Projects/BigApp/obj/Debug/__library_projects__/classes.jar
/Users/myname/Library/Developer/Xamarin/android-sdk-mac_x86/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar
Cuando ejecuto la solución de Xamarin Studio, este paso ocurre dos veces. Una vez para el proyecto dependiente y una vez para el proyecto principal. Intenté reproducir este comportamiento en la consola con
"/Applications/Xamarin Studio.app/Contents/MacOS/mdtool" -v build "--configuration:Debug -t Install" "BigApp.sln"
Pero eso solo construye el proyecto principal.
Actualizar:
Creé un pequeño proyecto de demostración con un tiempo de implementación muy lento: https://github.com/perpetual-mobile/SlowAndroidDeploymentWithXamarin