¡Ejecute CLion nativo en Android, deshágase de su escritorio!

 C Programming >> Programación C >  >> Tags >> CLion
¡Ejecute CLion nativo en Android, deshágase de su escritorio!

¿Con qué frecuencia lee artículos que afirman que las personas han reemplazado su computadora principal con un iPad y están completamente satisfechas? Ahora, ¿cuántos de esos artículos solo usan un servidor Linux (vps) en algún lugar con algunas aplicaciones nativas, pero principalmente SSH a ese servidor? Bueno, ¿y si le dijera que puede ejecutar un IDE completo, el mejor IDE para C++ que existe, CLion de JetBrains, en Android? ¿Incluyendo compilación, GCC nativo, CMake, GDB y todas las cosas a las que está acostumbrado? Solo por diversión, instalé CLion en una vieja Samsung Tab S2 que tenía por ahí, usando Ubuntu en un chroot. Funciona mucho mejor de lo que esperaba, con un teclado y mouse Bluetooth es casi como si estuviera en una computadora de escritorio. Me pregunto si podría ejecutar Android Studio y usar la tableta para compilar aplicaciones por sí mismo. Este artículo muestra algunas fotos, incluido un teclado mecánico, diferentes administradores de ventanas e instrucciones para replicar esta configuración.

En mi trabajo utilizo CLion como mi editor preferido. Todos nuestros desarrolladores de C++ (incrustado) lo hacen, con uno o dos que prefieren una herramienta diferente (nano). En casa también lo uso para mi entrenamiento, los katas de Codewars que suelo hacer y sobre los que a veces escribo.

Sin embargo, no siempre es posible utilizar una estación de trabajo tan grande y voluminosa. ¿Qué pasa si quieres una configuración más móvil? Tal vez una computadora portátil se adapte a tus necesidades, pero ¿y si pudieras usar una de esas viejas tabletas que probablemente tienes en un cajón acumulando polvo?

Obtengo unas 6 horas de duración de la batería, por lo que incluso eso es mejor de lo que esperaba de un dispositivo tan antiguo que ejecuta el software que consume muchos recursos de Jetbrains.

Dado que CLion es un software de Java, pensé, intentemos ponerlo en funcionamiento en una de mis tabletas más antiguas. También tenía un teclado bluetooth por ahí, combinación perfecta para algo de desarrollo en el sofá o en el tren.

Con un powerbank y un cable USB-OTG, incluso podría usar mi teclado CODE:

¿Quién no quiere eso en el tren todos los días camino al trabajo?

Mi hardware consta de un Samsung Galaxy Tab S2 de 2015, con una rom personalizada, LineageOS 16 y un teclado/ratón bluetooth genérico (Rapoo, china fluff).

Chroot, ¿fácil o difícil?

Mediante el uso de un entorno chroot, uno puede instalar casi cualquier distribución moderna de Linux a través de una aplicación GUI fácil de usar en Android, no se requiere root. Copie y pegue algunos comandos en Termux, inicie el servidor VNC y conéctese con una aplicación VNC, bVNC también es de código abierto y está en la distribución de Linux que elija.

Fácil

La manera fácil es usar una aplicación como AnLinux o Andronix. El último, Andronix, pedirá dinero para usar algunas de las funciones de la aplicación. No necesita pagar por una instalación básica de Ubuntu.

El primero, AnLinux, es de código abierto y un poco más espartano, pero funciona bien. Incluso ofrece IceWM como una opción sencilla. IceWM es mi administrador de ventanas heredado favorito, y en una tableta en un chroot, casi no usa recursos (almacenamiento/ram). Todos sabemos que los IDE de jetbrains usan todos los recursos que pueden obtener y algo más.

Para mi primer intento, usé Andronix. Funciona, instala XFCE, pero la configuración predeterminada está un poco apagada. Faltan iconos, firefox da un error de segmento, no pude ejecutar como un usuario no root y más de esas molestias menores. Sin embargo, la distribución es más reciente, proporcionan Ubuntu 19.10.

Aquí hay una captura de pantalla del entorno XFCE que proporciona Andronix, tenga en cuenta el texto más suave:

Para mi segundo y último intento, usé AnLinux. Ofrece Ubuntu 18.04, pero además de XFCE también tienen IceWM, que me gusta. Aquí hay una captura de pantalla de CLion y IceWM a través de AnLinux:

En anlinux, podría agregar un usuario normal y ejecutar firefox sin fallas de segmento. La versión GCC proporcionada por Ubuntu 18.04 es 7.3.0 y por Ubuntu 19.10 es 8.1.0.

Mi preferencia sería Anlinux debido a que la aplicación es menos intrusiva y todo el código fuente está disponible. Andronix parece un sitio turbio, con documentación incompleta, impulsando su versión premium y sus versiones de SO modificadas de pago.

Difícil

Puede configurar su propio chroot en Android. Cuando tuve mi primer teléfono Android, el primer HTC G1 (o HTC Dream fuera de T-Mobile), ya ejecutaba un entorno de escritorio a través de chroot. Vaya, estaba orgulloso de tener OpenOffice ejecutándose en la pequeña pantalla de mi teléfono.

El Wiki de Debian tiene un montón de información y una guía para un chroot manual. Debian debería funcionar tan bien como Ubuntu para CLion.

Herramientas de desarrollo

Una vez que haya instalado Ubuntu y esté funcionando con su GUI, debe usar el administrador de paquetes para instalar las herramientas de desarrollo. Las versiones CLion incluidas no funcionarán debido a la arquitectura diferente. Encienda termux u otra terminal, ingrese chroot/vnc e instale lo básico:

apt install openjdk-8-jre build-essential cmake gdb clang-format git wget sudo

Tenga en cuenta que no todo funcionará correctamente debido a que se inició en un chroot. Cualquier cosa relacionada con systemd fallará ya que systemd solo puede ejecutarse como PID1 (no en un chroot). Tampoco hay /proc/ por defecto, entonces ps auxf y top no funcionará.

Para nuestros propósitos de simplemente ejecutar CLion y un navegador para hacer katas de codewars, eso no es un gran problema.

Ahora debería considerar agregar un usuario normal. Puede ejecutar todo como root, pero es menos seguro.

adduser yourUserName

Habrá algunas preguntas sobre la información del usuario y una contraseña. Detenga el servidor VNC y reinicie (a través de Termux) como el usuario recién creado, por ejemplo:

sudo -u yourUserName vncserver-start

Instalación de CLion

Una vez que haya instalado los paquetes, continúe y descargue el archivo clion tar.gz. A través de su Other Versions página te evitas tener que introducir tu dirección de correo electrónico.

wget https://download.jetbrains.com/cpp/CLion-2019.3.2.tar.gz

Extraiga el archivo:

tar -xf  CLion-2019.3.2.tar.gz

Enciende clion a través de su script:

~/clion-2019.3.2/bin/clion.sh

La pantalla de bienvenida mágica y elegante ahora debería saludarte:

Depuración y pruebas unitarias

Quizás se pregunte qué tipo de binarios se compilan. En mi caso, para la arquitectura específica ARM de esta tableta:

/home/remy/CLionProjects/untitled/cmake-build-debug/untitled: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=2bce76cd5fbd36776f4023a3cb9c33049549e957, with debug_info, not stripped

Si ha instalado GDB, puede usarlo a través de CLion para depurar como está acostumbrado, puntos de interrupción, relojes, todo el tinglado:

Incluso GoogleTest y mi diseño para proyectos CMake funcionan sin problemas.


No