Aplicaciones Android

Proyector: Uso – Estilo Android

Es posible que los lectores habituales de Styling Android ya sepan que estoy a favor de usar un servidor de compilación para acelerar mis compilaciones. En el pasado, he documentado cómo uso mainframers y milagros. Tengo un i9 8950HK de 6 núcleos muy carnoso con 32 GB de RAM y un SSD de 512 GB con Debian 11 sin cabeza para mi servidor de compilación. ¡Lo cual es bastante rápido! Sin embargo, a veces hay problemas con los artefactos de compilación que no funcionan. Todavía no entiendo completamente por qué está sucediendo esto. Pero mi mejor suposición es que existen extraños problemas de compatibilidad entre Mirakle y el complemento Gradle de Android. Sin embargo, hay un nuevo chico en el bloque desarrollado por JetBrains llamado Projector.

En el artículo anterior instalamos Projector en mi Debian 11 Linux Build Server. El proceso fue mucho más fácil de lo que esperaba. Aunque la configuración fue lo suficientemente simple, ¿cómo funciona realmente cuando la estamos usando?

Dado que se basa en IntelliJ IDEA, funciona bien al principio. Sin embargo, no está exento de problemas. Esto puede deberse en parte a que las bifurcaciones de Android Studio están rezagadas con respecto a IntelliJ IDEA. Android Studio Artic Fox Canary 14 es una bifurcación de IntelliJ IDEA 2020.3.1, mientras que la última IDEA es 2021.1. Es muy posible que las pequeñas cosas con las que me he encontrado

El bueno

La primera vez que comienzas esto tienes un verdadero «¡No puedo creer que esto haya funcionado!» Momento. ¡Definitivamente lo hice! Su navegador tarda uno o dos segundos en cargar la página, pero está ahí. No tiene que esperar a la primera indexación, ya que sucedió tan pronto como iniciamos Projector Server desde la línea de comandos.

Publicaciones relacionadas

Por supuesto, las velocidades de compilación variarán según las especificaciones de la computadora que ejecuta Projector Server, pero en mi caso, obtengo compilaciones que toman la mitad del tiempo que mi MacBook Pro de alta especificación.

En el momento de escribir este artículo, la última versión canaria es Arctic Fox 2020.3.1 Canary 15. Mis experiencias se basan en esta versión y en algunas versiones anteriores.

El malo

Hay algunos problemas al ejecutar Android Studio que no he experimentado con una instancia de IntelliJ IDEA. El primero de ellos muestra la ventana de Logcat en Android Studio. Por alguna razón, hay un retraso real la primera vez que lo abre y su navegador puede recargarse varias veces. Esto generalmente se calma después de un rato, pero se ralentiza cuando ve Logcat por primera vez.

El segundo problema es cuando llega a un punto de interrupción durante la depuración. Una vez más, la interfaz de usuario deja de responder y el navegador puede volver a cargar la página varias veces.

Ambos son acoso, pero no destructivos. No hay riesgo de perder su trabajo al volver a cargar el navegador, ya que la instancia de Android Studio todavía se está ejecutando en el servidor del proyector. La recarga se produce porque se está restableciendo la conexión de red. Una vez que resuelve las cosas, todo vuelve a la normalidad. Sin embargo, es un poco frustrante.

El feo

Lo peor que encontré fue abrir la ventana del Inspector de diseño. Me refiero al nuevo inspector de diseño en tiempo real aquí. Encontré que era un poco quisquilloso de todos modos. Cuando funciona, es realmente agradable. Pero a veces parece un poco impredecible.

La apertura en una instancia de Android Studio que se ejecuta en Projector Server es incorrecta. Esto está bien hasta el punto en que intenta mostrar los detalles del diseño. Entonces toda la pantalla del IDE se estropea. Como resultado, la ventana completa no se dibuja en todo el IDE. Puede volver a dibujar elementos individuales haciendo clic en ellos. Sin embargo, el indicador visual del Inspector de diseño nunca aparece, no importa lo que haga. Actualizar la ventana del navegador no hace ninguna diferencia. Sin embargo, cerrar la ventana del Inspector de diseño hará que todo vuelva a la normalidad, incluso si el Inspector de diseño todavía se está ejecutando. Al igual que detener al inspector con la ventana aún abierta.

En resumen, Layout Inspector es completamente inutilizable cuando se ejecuta en una instancia de Projector Server.

Otra área defectuosa es iniciar instancias de emulador de AVD. Cuando intento hacer esto, aparece un mensaje de error: AVD no pudo iniciarse. Pasé por varias correcciones para dar permiso al usuario. /dev/kvmy luego intente iniciar el emulador desde una línea de comando. Sin embargo, finalmente descubrí que el emulador estaba tratando de conectarse a una pantalla y no hay una en mi caja Linux sin cabeza. Incluso si se usa una ventana de Android Studio para alojar la instancia, parece requerir una conexión a una pantalla física para iniciarse.

Posibles Causas

El factor común en todos los problemas de rendimiento, capacidad de respuesta y representación de la interfaz de usuario es que todas las funciones subyacentes dependen de adb. En mi caso, Logcat, Debugger y LayoutInspector usan adb para comunicarse con un dispositivo real. Es muy posible que adb o los controladores USB subyacentes en mi caja Debian sean la causa principal. Sin embargo, intenté usar adb para cerrar la brecha con un dispositivo conectado a otra computadora (según la excelente guía de instalación de Joaquim Verges) y aún obtuve el mismo rendimiento rezagado. Esto no usó los controladores USB locales, por lo que parece excluirse como una causa.

Mencioné anteriormente que Android Studio difiere de IntelliJ IDEA 2020.3.1, por lo que estos problemas pueden ser problemas de IDEA que se han solucionado en la versión actual. Por lo tanto, es posible que tengamos que esperar a que Android Studio migre a una versión más nueva del código IDEA subyacente.

Autoactualizador

Otro problema que tuve fue que el autoactualizador de Android Studio se rompió al usar el proyector. Creo que cerrará la instancia actual de Android Studio y ejecutará un script de actualización fuera del proceso de ejecución de Android Studio. Esto no funciona con Projector porque si el proceso de Android Studio muere, la instancia de Projector Server también terminará. Es posible ejecutar un servicio del sistema para reiniciar automáticamente el servicio del proyector cuando se apaga, pero esto no ayuda. No estoy seguro de si la tarea de actualización de Android Studio simplemente no se ejecutará en este entorno, o si se ejecuta pero se detiene al salir de la instancia de Projector Servicer. En ambos casos, la actualización simplemente no se lleva a cabo.

La solución para el problema de actualización es hacerlo desde la línea de comandos. Descargue la versión de Android Studio para su sistema operativo de servidor de compilación aquí. Luego extráigalo al directorio en el que se encuentra la configuración de su proyector para Android Studio. La próxima vez que inicie el servidor del proyector, será la última versión de Android Studio.

Conclusión

Los problemas de logcat y breakpoint lo ralentizan lo suficiente como para ser irritantes, y el inspector de diseño es un problema real.

Creo que podría vivir sin el Inspector de diseño, pero los otros problemas ralentizan las cosas cuando se trata de realizar tareas generales de desarrollo. El uso de un servidor de compilación se trata de acelerar el desarrollo al reducir los tiempos de compilación. Es posible que algunos desarrolladores no estén contentos si el costo de este beneficio se reduce en otros lugares. Personalmente, estoy demasiado frustrado con la falta de respuesta y los problemas de recarga para continuar usando Projector con Android Studio por ahora.

No creo que Android Studio esté tan lejos de funcionar muy bien con Projector. Esperemos que no tarde demasiado en ser totalmente compatible con el proyector. Pero por ahora me quedo con Mirakle para ejecutar mis compilaciones de forma remota.

© 2021, Mark Allison. Reservados todos los derechos.

Copyright © 2021 Estilo para Android. Reservados todos los derechos.

Para saber cómo reutilizar o volver a publicar este trabajo, visite http://blog.stylingandroid.com/license-information.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba