Android Instant Ejecutar compilaciones lentas
Sigo escuchando la ejecución instantánea discutida como si estuviera en una gran forma, sin embargo mi equipo y yo regularmente experimentan problemas significativos con la característica, y una experiencia de codificación degradada debido a ella.
Antes de ejecutar instantáneamente, nuestras compilaciones limpias eran ~ 1min 30sec, y después de eso nos gustaría obtener compilaciones que eran ~ 25sec o el ocasional 40sec. Mientras que ejecutar instantáneamente parece disminuir las builds a veces a 6-12 segundos, otras veces, nos ha hecho entrar en locos compilaciones largas que hemos visto tomar hasta 13 minutos, compensando en gran medida las ganancias de la compilación incremental.
- La ejecución instantánea toma más tiempo que las compilaciones estándar
- Androide InstantRun - Norton Security encuentra troyanos
- Android Studio 2.1 ejecución instantánea java.lang.OutOfMemoryError: Límite de sobrecarga de GC superado
- La conexión de Android Studio ADB deja caer el dispositivo conectado por cable desde 2.2 en Macintosh
- Ejecución instantánea en Android Studio 2.0 (cómo desactivar)
También parece que la mayoría del tiempo, pequeños cambios siguen tomando 40 segundos. A veces es de 6 segundos, pero eso es bastante raro.
Se siente mucho como la ejecución instantánea ha degradado nuestra capacidad para trabajar de manera coherente y eficiente. Estas son algunas de nuestras configuraciones específicas de la aplicación:
Android Studio 2.1.1, Plugin para Android 2.1
multiDexEnabled true dexOptions { preDexLibraries true javaMaxHeapSize "4g" maxProcessCount 4 incremental true dexInProcess true } org.gradle.daemon=true org.gradle.parallel=true org.gradle.jvmargs=-Xmx6g -XX:MaxPermSize=512m
¿Estamos haciendo algo mal, o alguien ha encontrado un trabajo alrededor?
EDIT : Varios desarrolladores parecen estar encontrando esto. Estoy siguiendo un error aquí. Siéntase libre de protagonizarlo y añadirlo a la discusión.
- Android: la aplicación se bloquea frecuentemente con una ejecución instantánea
- ¿Cómo dividir los APK divididos creados mientras se usa instant-run, dentro del propio Android?
- Instant run Android studio 2.2 Nunca recibo hotswap siempre reiniciar y la notificación Cambio de tipo de campo
- Instant Run ejecutó una compilación e instalación completas ya que la instalación en el dispositivo no coincide con la compilación local en el disco
- No se puede instanciar la actividad ... No encontró la clase WelcomeActivity en la ruta: DexPathList (con ejecución instantánea)
- La Interfaz de JavaScript de WebView sólo parece funcionar a través de Instant-Run de Android Studio, pero no cuando se compila a través de gradle regular
- Aplicación para Android que comienza lentamente - dex2oat El código postal está ausente. Cancelado - Gradle 2.10
- Android Studio Instant ejecutar no funciona con java 8 en android
Estamos obteniendo un rendimiento mucho mejor de la ejecución instantánea ahora. Estos son los cambios que hicimos:
- Descubrimos que Lombok estaba causando una pérdida de memoria en el daemon con ejecución instantánea. Hemos identificado la fuga de memoria, ya que usando un daemon recién calentado, nuestra construcción tardaría ~ 15 segundos, pero después de una hora de construir la aplicación con los cambios, nuestra construcción empezaría a tomar> 1 minuto para los cambios más simples. Encontramos que la migración de nuestra aplicación de lombok fijó la fuga de memoria.
- Dejamos de usar intercambio de código caliente y caliente instantáneo. Encontramos que éstos a menudo causaban errores o problemas, por no mencionar que necesitaba prestar atención a si o no lo que estaba cambiando requería que la
Application
se volviera a cargar. En su lugar, empezamos a usar la función de intercambio en frío. Cold swap es activado por el botón "Rerun", que es de 4 botones a la derecha del botón de reproducción / inicio en Android Studio. Es el botón de parada con la flecha que sale del lado izquierdo y sube. Cold swapping el código en ejecución instantánea nos pareció más fiable, y también realiza un reinicio de la aplicación completa, que actúa esencialmente como una compilación normal, excepto más rápido. - Actualizado a la última versión de Android Studio plugin. El complemento ha mejorado. Todavía tiene problemas, pero es mejor. Espero más correcciones de errores con el complemento 2.3
En general aún no es perfecto. Todavía tengo que soportar problemas de compilación extraña, y hacer construir limpia de vez en cuando. Todavía se siente como una beta.
- ¿Mezclar dos corrientes audio en una sola corriente audio en android?
- Ajustes de optimización de Proguard: Habilitar la combinación de clases, los modelos y el campo / * en versiones modernas de API y Proguard