Proyector: Modelado de uso de Android
Los lectores habituales de Android esbelto pueden haberse entregado cuenta de que estoy muy a patrocinio de usar un servidor de compilación para acelerar la compilación. En el pasado, he documentado cómo usar Mainframer y Mirakle. Tengo un i9 8950HK de 6 núcleos muy desnudo con 32 Gb de RAM y 512 Gb SSD, que puede ejecutar Debian 11 sin habitante para el servidor de compilación. ¡rápidamente! Sin bloqueo, a veces existe el problema de que el artefacto de compilación no funciona correctamente. Todavía no entiendo completamente por qué sucede esto. Pero mi anciano suposición es que hay un extraño problema de compatibilidad entre Mirakle y el complemento de Android Gradle. Sin bloqueo, un chiquillo llamado Projector desarrollado por JetBrains está en mejora.
En el artículo preparatorio, instalamos Projector en mi servidor de compilación Debian 11 Linux. Este proceso es mucho más liviana de lo que esperaba. Entonces, aunque la configuración es muy simple, ¿cómo funciona positivamente cuando comenzamos a usarlo?
Basado en IntelliJ IDEA, inicialmente funcionó proporcionadamente. Sin bloqueo, esto no está exento de problemas. Esto puede deberse en parte a Android Studio, porque la rama de Android Studio está por detrás de IntelliJ IDEA. Android Studio Artic Fox Canary 14 es una rama de IntelliJ IDEA 2020.3.1, y la última IDEA es 2021.1.El problema último que encontré es probablemente
Amabilidad
Cuando active esta función por primera vez, encontrará un definitivo «¡No puedo creer que esto sea posible!» Por un momento. ¡Por supuesto que lo hice! Su navegador tarda uno o dos segundos en cargar la página, pero está ahí. No es necesario esperar el índice auténtico ni ninguna otra operación, porque esto ocurre inmediatamente cuando iniciamos Projector Server desde la semirrecta de comandos.
Obviamente, la velocidad de construcción variará según las especificaciones de la computadora que ejecuta Projector Server, pero en mi caso, el tiempo requerido para construir es la medio del MacBook Pro de ingreso observación.
En el momento de escribir este artículo, la última interpretación de Canary es Arctic Fox 2020.3.1 Canary15. Mi experiencia se sostén en esta interpretación y versiones anteriores.
Pequeño malo
Habrá algunos fallos al ejecutar Android Studio, que no he antagónico en la instancia de IntelliJ IDEA. La primera es al ver la ventana de Logcat en Android Studio. Por alguna razón, habrá un retraso efectivo la primera vez que se refugio, y el navegador puede recargarse varias veces. Por lo universal, esto se estabilizará en breve, pero cuando vea Logcat por primera vez, definitivamente se ralentizará.
El segundo problema es que se encontró un punto de interrupción durante la depuración. Una vez más, la interfaz de sucesor deja de reponer un poco y el navegador puede retornar a cargar la página varias veces.
Entreambos son molestos, pero no destructivos. Recargar el navegador no perderá ningún trabajo, porque la instancia de Android Studio todavía se está ejecutando en Projector Server. La recarga se debe a que la conexión de red se está restableciendo. Luego de resolver el problema, todo volverá a la normalidad. Sin bloqueo, esto es un poco frustrante.
feo
Lo peor que encontré fue rajar la ventana «Inspector de diseño». Me refiero al nuevo inspector de diseño en tiempo efectivo. En cualquier caso, me pareció un poco intolerante. Cuando funciona, es positivamente bueno. Pero a veces parece un poco accidental.
Se daña gravemente cuando se abre internamente de la instancia de Android Studio que se ejecuta en Projector Server. Hasta que intente mostrar los detalles del diseño y luego confundirlo con toda la pantalla IDE, todo está proporcionadamente. Esto hace que sea inverosímil dibujar todas las ventanas en todo el IDE. Puede retornar a dibujar un solo medio ambiente con un solo clic, pero no importa lo que haga, la pantalla visual Layout Inspector no aparecerá. Renovar la ventana del navegador no hace ninguna diferencia. Sin bloqueo, incluso cuando el Inspector de diseño todavía se está ejecutando, cerrar la ventana del Inspector de diseño puede restaurar todo a la normalidad. Es como detener al inspector mientras la ventana aún está abierta.
En epítome, cuando se ejecuta en una instancia de Projector Server, Layout Inspector no está apto en incondicional.
Otra campo de acción de daño es el emanación de una instancia de rival de AVD. Al intentar esta operación, se produjo un error: No se puede iniciar AVD. Hice varias correcciones para otorgar a los usuarios los siguientes permisos: /dev/kvm
Y luego intente iniciar el rival desde la semirrecta de comandos. Sin bloqueo, finalmente descubrí que el rival quería conectarse a un celador y no había ningún celador en mi caja Linux sin habitante. Incluso usando la ventana de Android Studio para encajar la instancia, parece que aún necesita estar conectado a una pantalla física para comenzar.
razón posible
El número popular en todos los problemas de rendimiento / capacidad de respuesta / representación de la interfaz de sucesor es que todas las funciones básicas dependen de adb. En mi caso, Logcat, debugger y LayoutInspector usan adb para comunicarse con dispositivos reales. La causa raíz puede ser adb o un compensador USB sustancial en mi máquina Debian. Sin bloqueo, intenté usar adb para hacer un puente a un dispositivo conectado a otra computadora (según la excelente explorador de instalación de Joaquim Verges), pero aún así obtuve el mismo rendimiento. Esto no utilizará el compensador USB nativo, por lo que parece estar excluido.
He mencionado que Android Studio se deriva de IntelliJ IDEA 2020.3.1, por lo que estos problemas menores pueden ser problemas de IDEA que se han resuelto en la interpretación presente. Por lo tanto, es posible que debamos esperar a que Android Studio migre a una interpretación más nuevo del código IDEA subyacente.
Autorenovar
Otro problema que encontré fue que el software de aggiornamento cibernética de Android Studio se rompió al usar el Proyector. Creo que eliminará la instancia presente de Android Studio y ejecutará el script de aggiornamento fuera del proceso de ejecución de Android Studio. Esto no se aplica a Projector, porque cuando finaliza el proceso de Android Studio, asimismo matará la instancia de Projector Server. Aunque es posible ejecutar el servicio del sistema para regenerar automáticamente el servicio del Proyector al finalizar, no ayuda. No estoy seguro de si la tarea de aggiornamento de Android Studio simplemente no se ejecuta en este entorno, o si se ejecuta pero se cancela cuando finaliza la instancia de Projector Servicer. De cualquier guisa, la aggiornamento no ocurrirá.
La forma de resolver el problema de aggiornamento es hacerlo desde la semirrecta de comandos. Descargue la interpretación de Android Studio para su sistema eficaz de servidor de compilación desde aquí. Luego descomprímalo en el directorio donde se encuentra la configuración del proyector de Android Studio. La próxima vez que inicie Projector Server, será la última interpretación de Android Studio.
en conclusión
Los problemas de Logcat y los puntos de interrupción lo ralentizan lo suficiente como para hacerlo incómodo, y Layout Inspector es un problema efectivo.
Creo que puedo prescindir de Layout Inspector, pero al realizar tareas de mejora comunes, otros factores ralentizarán la velocidad. El propósito de usar un servidor de compilación es acelerar el mejora reduciendo el tiempo de compilación. Si el costo de este beneficio se reduce en otros lugares, es posible que algunos desarrolladores no estén satisfechos. Personalmente, estoy muy frustrado con la yerro de respuesta y los problemas de recarga y no puedo usar Projector temporalmente con Android Studio.
Creo que la cooperación entre Android Studio y Projector es muy buena. Con suerte, pronto será totalmente compatible con Projector. Sin bloqueo, hasta ahora, me quedaré con Mirakle para ejecutar mi compilación de forma remota.