Uso de Android Studio#

Android Studio es un entorno de desarrollo integrado (IDE) para el desarrollo de aplicaciones Android basado en IntelliJ. Compila tu código en un apk que luego se instala en el Robot Controller: el Control Hub o un teléfono Android legal.

Descarga de Android Studio#

Si ya has descargado Android Studio, puedes pasar al siguiente paso, que es configurar el SDK.

Los pasos para descargar y configurar Android Studio son:

  1. Compruebe que su sistema cumple los requisitos necesarios

  2. Instala la última versión de Android Studio desde https://developer.android.com/studio/index.html

  3. Ejecute el programa, siga el asistente de instalación y utilice todos los kits de desarrollo recomendados.

Configuración del SDK#

Ahora que tienes instalado Android Studio, vas a querer utilizar el SDK (kit de desarrollo de software) de la temporada actual, donde crearás el código de tu equipo.

Descarga del SDK#

El SDK se publica en un repositorio de GitHub cada temporada. El SDK de la temporada actual se encuentra en el repositorio FtcRobotController.

Descargar el archivo ZIP#

  1. Cuando estés en el repositorio, haz clic en el botón verde «código». A continuación, selecciona «Descargar ZIP».

    Haga clic en la opción Descargar ZIP
  2. A continuación, guárdelo en la ubicación deseada de su ordenador.

    El archivo ZIP debe llamarse FtcRobotController-master
  3. Una vez guardado, extraiga el contenido del ZIP y colóquelo en la ubicación que desee. Debería ver el contenido del SDK dentro de la ubicación de la carpeta.

Uso de GitHub Desktop#

  1. Instalar GitHub Desktop

  2. Abra el repositorio SDK en un navegador.

  3. Haz clic en el botón verde «código» y selecciona «Abrir con GitHub Desktop».

    Haz clic en la opción Abrir con GitHub Desktop
  4. Clona el proyecto.

    Clona el repositorio en tu carpeta de recursos

Desde la Línea de Comandos#

  1. Instalar git

  2. Abra la terminal (probablemente bash) en la ubicación de recursos deseada.

  3. Usa $ git clone https://github.com/FIRST-Tech-Challenge/FtcRobotController.git`

Abrir el SDK en Android Studio#

  1. Abre Android Studio. Si tienes otro proyecto abierto, ciérralo.

    Debería aparecer una pantalla con una opción para configurar los ajustes e importar un proyecto
  2. Buscar actualizaciones. Haz clic en el desplegable «configurar» y selecciona «buscar actualizaciones». Si no tienes la última versión, descarga las actualizaciones.

    Si no tiene nuevas actualizaciones, quiere decir que tiene instalada la última versión
  3. Seleccione «Importar proyecto». Navega hasta donde tengas el SDK guardado en tu ordenador. Elige el directorio que tiene el logo de Android.

    Seleccione sólo la carpeta con el logotipo de Android
  4. Cambie a la vista del proyecto. En la esquina superior izquierda debe haber un menú desplegable que le permite cambiar la forma en que está viendo su proyecto.

    Cambiar a vista de proyecto
  5. Espere a que Gradle complete la construcción. Este indicador debe estar situado en la parte inferior de la ventana por defecto.

    Una compilación Gradle en curso

Diseño#

Android Studio puede parecer intimidante a primera vista, pero sólo se necesitan unas pocas funciones para utilizarlo correctamente.

Diseño de Android Studio

Creación de clases#

Lo primero que hay que observar en la vista del proyecto es el desplegable con el nombre del proyecto. Si lo despliegas, verás todos los archivos y directorios de Gradle. Navega hasta la carpeta TeamCode. En la carpeta teamcode verás un paquete org.firstinspires.ftc.teamcode.

TeamCode > src > main > java > org.firstinspires.ftc.teamcode

Aquí es donde crearás tu código para el robot. Para crear una nueva clase Java, haga clic con el botón derecho del ratón en el paquete, seleccione Nuevo y, a continuación, elija «Clase Java».

Nuevo > Clase de Java

Alternativamente, puede seleccionar la opción «Paquete» si desea crear una subcarpeta con fines de organización. A continuación, puede crear clases en esos paquetes.

Terminal y Logcat#

Cerca de la parte inferior izquierda de la aplicación, encontrarás pestañas para el terminal local y logcat. Son herramientas útiles para trabajar con tu programa.

Pestañas terminal y logcat en la parte inferior izquierda

Puede encontrar información útil sobre el uso de logcat aquí.

Nota

Puede construir su programa a través de la línea de comandos mediante el terminal local. Haga clic en la pestaña terminal y luego introduzca gradlew :TeamCode:clean :TeamCode:build. Esto borrará los archivos previamente compilados y construirá su módulo TeamCode.

Instalación del programa#

Para instalar su programa en el Robot Controller, utilice el botón de reproducción situado en la parte superior derecha de la ventana de la aplicación.

Botón de reproducción junto al menú desplegable de dispositivos

Junto a él verás un desplegable de dispositivos. Cuando conectes tu Robot Controller al ordenador (utilizando el cable correcto), el dispositivo debería aparecer en el desplegable al cabo de un rato. A continuación, haz clic en el botón de reproducción y tu programa se instalará en el dispositivo.

Truco

Ocasionalmente, la aplicación no se iniciará en el controlador del robot, dejando la estación del conductor en un estado desconectado. Si esto ocurre puedes abrir el terminal y ejecutar

adb shell am start -n com.qualcomm.ftcrobotcontroller/org.firstinspires.ftc.robotcontroller.internal.PermissionValidatorWrapper

para iniciar de forma remota la aplicación Robot Controller.

Si tiene algún problema con este proceso, consulte la documentación oficial de REV. Algunas páginas útiles del sitio REV son:

Si sigues atascado puedes pedir ayuda en el Discord de FTC: FTC|reg| Discord.

Gradle#

Gradle es una herramienta de compilación para el desarrollo de software. En el ámbito de FTC, se utiliza para construir y gestionar las dependencias de su proyecto.

Cuando actualices cualquiera de tus archivos Gradle tendrás que realizar una sincronización Gradle, que sincroniza tu proyecto con los cambios y lo reconstruye. En tu build.common.gradle, encontrarás información sobre cómo se construye tu aplicación de controlador de robot.

Reconstrucción#

Puedes reconstruir tu proyecto fácilmente con el desplegable de construcción.

El menú desplegable de construcción en la parte superior de la pantalla

Para reconstruir a partir de un proyecto limpio, pulse la opción de proyecto limpio. Esto elimina los archivos compilados antiguos de su proyecto para que pueda reconstruirlo completamente. Borra cualquier archivo de producción, archivos generados, etc. Esto es útil para asegurarse de que los viejos artefactos no rompen nada cuando se construye el código. La próxima vez que reconstruya su proyecto, lo hará desde cero sin archivos compilados antiguos a los que pueda hacer referencia. Para reconstruir tu proyecto, pulsa la opción reconstruir.

Invalidar y reiniciar#

A veces pueden aparecer errores después de mover cosas, refactorizar, etc. El primer paso es intentar limpiar el proyecto y hacer una reconstrucción. Si esto no funciona, es posible que hayas confundido Android Studio porque almacena en caché información sobre la estructura de tu proyecto.

La forma más común de solucionar estos errores es invalidar y reiniciar. En el menú desplegable de archivos, habrá una opción para esto y luego elegirás Invalidar y Reiniciar. Esto limpia la caché y reinicia tu Android Studio, que entonces debería realizar una reconstrucción de Gradle.

Añadir dependencias#

Si quieres añadir dependencias a tu proyecto, puedes hacerlo en el archivo build.gradle en el directorio TeamCode.

Debería haber un bloque de dependencias al final del archivo.

// Include common definitions from above.
apply from: '../build.common.gradle'
apply from: '../build.dependencies.gradle'

dependencies {
     implementation project(':FtcRobotController')
     annotationProcessor files('lib/OpModeAnnotationProcessor.jar')
}

Algunas dependencias requieren cambios en otros archivos de Gradle. Asegúrate de leer las instrucciones de instalación de la dependencia que quieras añadir.

A continuación, añada una línea en el bloque de dependencias para implementar la dependencia. Esto se hace generalmente con :code:`implementation “com.package.name”.

dependencies {
    implementation project(':FtcRobotController')
    annotationProcessor files('lib/OpModeAnnotationProcessor.jar')

    implementation 'com.package.name:name:version'
}

Consulte las instrucciones de la biblioteca que esté utilizando para conocer el nombre y la versión correcta del paquete.

Por último, realice una sincronización Gradle.

Actualización a Java 8#

Por defecto, la versión de Java del SDK es la 7. Java 8 también es compatible. Es posible que desee actualizar su versión de Java de 7 a 8 si desea utilizar funciones como lambdas o genéricos. Algunas bibliotecas también pueden requerir que cambie su versión de Java.

Para actualizar a Java 8, vaya a su archivo build.common.gradle. Desplácese hacia abajo hasta encontrar este bloque:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

Cambia el 7 por 8, así:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

A continuación, realice una sincronización Gradle.

Puente de Depuración Android#

Nota

En macOS, Linux o usando PowerShell tendrás que cambiar cualquier comando que empiece por adb para que empiece por ./adb si estás en el directorio platform-tools.

Logcat#

Logcat es extremadamente útil para depurar problemas con tu código en tiempo de ejecución o para averiguar qué ha ido mal. Por ejemplo, si la actividad de tu aplicación se bloquea y consultas el registro y ves 5000 líneas con el mismo error, ¡probablemente haya una recursividad infinita en tu código!

Para utilizar logcat, conecta tu dispositivo (o conéctalo mediante ADB). A continuación, selecciona la aplicación de la que quieres ver los registros. La ventana debería tener este aspecto.

Un dispositivo y una aplicación seleccionados con los mensajes de error

Si tienes un problema que no entiendes, puedes hacer una captura de pantalla del registro o seleccionar y copiar el error y hacer una pregunta en el Discord de FTC: FTC discord.

Comunicación Inalámbrica#

Android Debug Bridge (ADB) es una herramienta de línea de comandos que permite la comunicación inalámbrica entre el controlador del robot (teléfono o Control Hub).

ADB debería venir con las herramientas de plataforma en Android Studio. Navega a tu archivo local.properties en la raíz de tu proyecto y deberías ver una ruta al SDK de Android en tu ordenador, como C:`Users\Woodie\AppData\Local\Android\Sdk. A continuación, vaya a platform-tools y una aplicación llamada adb debería estar allí. Para usarlo, abra CLI (como PowerShell o símbolo del sistema) y ejecute adb devices o ./adb devices.

Para más información sobre ADB, puede consultar la página para desarrolladores.

Configuración de ADB#

  1. Asegúrate de que la depuración USB está activada en tu dispositivo y de que está en modo desarrollador.

  2. Asegúrate de que tienes ADB instalado. Si no lo tiene, siga las instrucciones de este enlace

Nota

Puede utilizar logcat a través de ADB con el comando adb logcat. Esto es extremadamente útil para la depuración, ya que le permite ver los registros de forma inalámbrica, lo que ahorra tiempo. Recuerda, logcat es la mejor manera de depurar tu software.

Añadir ADB a PATH#

Añadir variables a PATH:

Si quieres usar ADB desde cualquier directorio, añádelo a PATH. Sigue un tutorial online para añadirlo al PATH y establece el PATH al directorio platform-tools. Una vez hecho esto, podrás ejecutar comandos ADB desde cualquier parte de tu sistema.

Conexión Inalámbrica a un Teléfono#

  1. Conecta el teléfono controlador del robot al ordenador.

  2. Ejecute el comando adb devices en el directorio platform-tools y compruebe si aparece el teléfono.

  3. Ejecute adb usb y luego adb tcpip 5555. A continuación, puede desenchufar el teléfono.

  4. Conéctese a la misma red WiFi que aloja o en la que se encuentra el dispositivo. La red WiFi directa creada por el teléfono debe llamarse «TEAMNUMBER-RC» o alguna pequeña derivación de eso. Puede incluir letras adicionales si tiene varios dispositivos por equipo. Consulte RS01 en Game Manual Part 1 para más detalles sobre el esquema de nomenclatura de redes.

  5. Conéctese al teléfono utilizando adb connect 192.168.49.1:5555. Si esto no funciona, vuelva a comprobar la dirección IP del teléfono e inténtelo de nuevo con esa dirección IP si es diferente.

Conexión Inalámbrica a un Control Hub#

  1. Conéctese al punto de acceso WiFi alojado en el Control Hub. El hotspot debe llamarse «TEAMNUMBER-RC» o alguna pequeña derivación de eso. Puede incluir letras adicionales si tiene varios dispositivos por equipo. Consulte RS01 en Game Manual Part 1 para más detalles sobre el esquema de nomenclatura de la red.

  2. Una vez conectado a la red de un Control Hub, sólo tienes que conectarte a él utilizando adb connect 192.168.43.1:5555.

Una vez establecida la conexión, debería aparecer en el desplegable de dispositivos de Android Studio.

Configuración Inalámbrica#

Puede establecer una configuración en la estación del conductor o en el controlador del robot de la forma habitual. Sin embargo, también puedes crear un archivo XML de configuración válido en TeamCode/src/main/res/xml. Puedes encontrar tus archivos de configuración en la carpeta /sdcard/FIRST como un archivo XML con el mismo nombre que la configuración.

Para obtener estos archivos XML de forma inalámbrica, puede utilizar adb pull /sdcard/FIRST/config.xml /fully/qualified/path/res/xml.

Si hay un archivo XML de configuración válido en res/xml, aparecerá como una configuración que puede utilizar para el robot cuando lo envíe al controlador del robot o a un Control Hub.

Gestor de SDK#

Puedes encontrar el gestor de SDK en la esquina superior derecha de tu Android Studio.

Una caja con una flecha hacia abajo

Aceptación de Licencias#

Si recibes un aviso quejándote de que no se aceptan licencias, sigue estos pasos:

  1. Vaya al gestor de SDK y en Plataformas SDK.

  2. Seleccione la versión con el nivel de API especificado por la advertencia.

  3. Haga clic en «Aplicar» y espere a que se instalen los componentes.

  4. Una vez que esto termine, presione «Finalizar» y luego «Ok». Espera a que Android Studio indeque si es así.

  5. Reinicia Android Studio.

Instalación de las herramientas del SDK#

Para instalar cualquier herramienta del SDK, como herramientas de plataforma o herramientas de compilación, abra el gestor del SDK y vaya a Herramientas del SDK. Seleccione las herramientas que desee instalar e instálelas del mismo modo que lo haría para las plataformas SDK.

Control de Versiones#

El control de versiones es una herramienta extremadamente útil. Permite consultar (y revertir) versiones anteriores del código, facilitar la colaboración, disponer de varias versiones del código que pueden fusionarse, etc.

En cuanto a los sistemas de control de versiones, recomendamos encarecidamente git, especialmente cuando se utiliza con una interfaz gráfica de usuario como las herramientas VCS integradas en Android Studio o Github Desktop. Mientras que un tutorial de git está fuera del alcance de Game Manual 0, aquí hay algunos recursos de git: