====== Configuración del Entorno de Desarrollo ====== ===== Requisitos del sistema ===== ==== Hardware mínimo ==== * **CPU**: Intel i5 / AMD Ryzen 5 o equivalente * **RAM**: 8 GB (recomendado 16 GB) * **Almacenamiento**: 50 GB SSD libre (Android SDK + emulador) * **GPU**: GPU integrada suficiente ==== Software ==== * **OS**: Windows 10+, macOS 10.15+, o Linux (Ubuntu 20.04+) * **JDK**: OpenJDK 17 (requerido por Android) ===== Instalación ===== ==== 1. Instalar JDK 17 ==== === Windows === # Descargar desde adoptopenjdk.net o usar chocolatey choco install openjdk17 # Verificar java -version # openjdk version "17.0.x" === macOS === brew install openjdk@17 # Configurar JAVA_HOME echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc source ~/.zshrc === Linux === sudo apt-get install openjdk-17-jdk java -version ==== 2. Instalar Android Studio ==== Descargar desde [[https://developer.android.com/studio|developer.android.com/studio]] **Primera ejecución**: 1. Welcome → Next 2. Standard Installation (recomendado) 3. Seleccionar path de Android SDK (Típicamente: ~/Android/sdk o %APPDATA%\Android\sdk) 4. Descargar componentes (Android 15, emulador, etc.) ==== 3. Configurar Android SDK ==== === Abrir SDK Manager === Android Studio → Settings → Appearance & Behavior → System Settings → Android SDK === Instalar componentes necesarios === * **API 27-36**: Compilación + testing * **Emulador**: si se va a usar * **Build-tools 36.0.1**: para compilar * **Git**: para control de versiones **Instalación vía CLI**: # Aceptar licencias yes | sdkmanager --licenses # Instalar específicos sdkmanager "platforms;android-36" sdkmanager "build-tools;36.0.1" sdkmanager "system-images;android-36;google_apis;arm64-v8a" ==== 4. Instalar Git ==== === Windows === Descargar de [[https://git-scm.com|git-scm.com]] git --version === macOS === brew install git git --version === Linux === sudo apt-get install git git --version ===== Configuración de Android Studio ===== ==== Configurar JDK ==== Settings → Build, Execution, Deployment → Gradle → Gradle JDK: Configurado por IDE (17) O especificar manualmente: GRADLE_JDK=17 ==== Gradle wrapper ==== El proyecto incluye gradle wrapper: # Windows gradlew.bat --version # macOS / Linux ./gradlew --version # Gradle 8.0 (recomendado) ==== Memory para Gradle ==== gradle.properties (crear si no existe): org.gradle.jvmargs=-Xmx4g org.gradle.parallel=true org.gradle.workers.max=8 ==== Plugins recomendados en Android Studio ==== Settings → Plugins: - Kotlin - Git - GitHub Copilot (opcional) - Detekt (linting) - ktlint (formatting) ===== Clonar repositorio ===== ==== SSH (recomendado) ==== # Generar clave SSH (si no existe) ssh-keygen -t ed25519 -C "tu_email@example.com" # Agregar a GitHub cat ~/.ssh/id_ed25519.pub # Copiar a GitHub → Settings → SSH Keys # Clonar git clone git@github.com:AdaCompanyTeam/PAE.git cd PAE ==== HTTPS (alternativa) ==== git clone https://github.com/AdaCompanyTeam/PAE.git cd PAE ===== Configurar proyecto en Android Studio ===== ==== 1. Abrir proyecto ==== File → Open → seleccionar directorio PAE Android Studio sincronizará automáticamente. ==== 2. Sync y build inicial ==== # Manualmente ./gradlew clean build # O desde Android Studio Build → Clean Project Build → Rebuild Project ==== 3. Crear local.properties ==== # local.properties (en raíz del proyecto) sdk.dir=/path/to/Android/sdk # Ejemplos: # Windows: C:/Users/USERNAME/AppData/Local/Android/sdk # macOS: /Users/USERNAME/Library/Android/sdk # Linux: /home/USERNAME/Android/sdk ===== Emulador Android ===== ==== Crear AVD (Android Virtual Device) ==== === Terminal === # Listar imágenes disponibles sdkmanager --list # Crear AVD avdmanager create avd \ --name "Nexus_5_API_36" \ --package "system-images;android-36;google_apis;arm64-v8a" \ --device "Nexus 5" # Listar AVDs creadas avdmanager list avd === Android Studio === Tools → AVD Manager → Create Virtual Device → Nexus 5 (compatibilidad) → API 36 (lat versión) → Finish ==== Ejecutar emulador ==== # Listar emuladores emulator -list-avds # Ejecutar emulator -avd Nexus_5_API_36 # Con opciones emulator -avd Nexus_5_API_36 -no-audio -gpu auto ==== Acelerar emulador ==== # Habilitar KVM (Linux) sudo apt-get install qemu-kvm # Hardware acceleration emulator -avd Nexus_5_API_36 -accel on -gpu auto # En gradle.properties android.enableEmulatorDisplay1=true android.qemuid.display_type=FRAME ===== Conectar dispositivo físico ===== ==== Vía USB ==== === Habilitar Developer Mode (Dispositivo Android) === Settings → About phone → Tap "Build number" 7 veces → Developer options aparecen → Settings → Developer options → USB debugging: ON === Conectar === # Windows / macOS / Linux adb devices # Si pide permiso, aceptar en dispositivo adb devices # Listar conectados # emulator-5554 device # 192.168.x.x:5555 device ==== Vía WiFi (Network ADB) ==== # En dispositivo: Settings → Developer options # → TCP/IP debugging: puerto 5555 # En host adb connect 192.168.x.x:5555 # Verificar adb devices ===== Ejecutar app ===== ==== Debug en emulador ==== # Via Android Studio Run → Run 'Machine' (o RutaPAE) → Seleccionar emulador/dispositivo # Via terminal ./gradlew :Machine:installDebug adb shell am start co.ada.paemachine/.MainActivity ==== Debug en dispositivo físico ==== # Mismo proceso: detecta dispositivo automáticamente ./gradlew :Machine:installDebug ==== Run con logs ==== # Terminal 1: seguir logs adb logcat # Terminal 2: run app ./gradlew :Machine:installDebug adb shell am start co.ada.paemachine/.MainActivity ===== Herramientas útiles ===== ==== adb (Android Debug Bridge) ==== # Información dispositivo adb shell getprop ro.build.version.release # Android version # Instalar APK adb install app-debug.apk # Desinstalar adb uninstall co.ada.paemachine # Shell interactivo adb shell > pm list packages > ls /data/data/co.ada.paemachine/ # Forward puerto adb forward tcp:8080 tcp:8080 # Pull archive adb pull /data/data/co.ada.paemachine/files/photo.jpg # Push archivo adb push photo.jpg /data/data/co.ada.paemachine/files/ ==== Android Device Monitor ==== # File system explorer Device File Explorer (Android Studio) Tools → Device File Explorer # Screenshots adb shell screencap -p /sdcard/screenshot.png adb pull /sdcard/screenshot.png ==== Logcat ==== # Filtrar por tag adb logcat | grep "StateManager" # Filtrar por nivel adb logcat *:E # Solo errores # Con timestamp adb logcat -v threadtime # Exportar a archivo adb logcat > logs.txt 2>&1 # Limpiar logs adb logcat -c ===== Variables de entorno ===== ==== Windows ==== REM Agregar a Environment Variables: JAVA_HOME=C:\Program Files\openjdk-17 ANDROID_SDK_ROOT=%APPDATA%\Android\sdk ANDROID_HOME=%APPDATA%\Android\sdk PATH=...;%JAVA_HOME%\bin;%ANDROID_SDK_ROOT%\platform-tools;%ANDROID_SDK_ROOT%\emulator REM Verificar echo %JAVA_HOME% echo %ANDROID_HOME% ==== macOS / Linux ==== # En ~/.bashrc, ~/.zshrc, o ~/.profile: export JAVA_HOME=/usr/libexec/java_home -v 17) # macOS export JAVA_HOME=/usr/lib/jvm/java-17-openjdk # Linux export ANDROID_SDK_ROOT=$HOME/Android/sdk export ANDROID_HOME=$ANDROID_SDK_ROOT export PATH=$PATH:$JAVA_HOME/bin export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools export PATH=$PATH:$ANDROID_SDK_ROOT/emulator export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin # Aplicar cambios source ~/.bashrc # o source ~/.zshrc ===== Verificación de setup ===== #!/bin/bash # setup-check.sh echo "=== Verificar Setup PAE ===" echo -n "Java version: " java -version 2>&1 | head -1 echo -n "Git version: " git --version echo -n "Gradle version: " ./gradlew --version echo -n "Android SDK: " [ -d "$ANDROID_SDK_ROOT" ] && echo "OK" || echo "NOT FOUND" echo -n "JAVA_HOME: " echo $JAVA_HOME echo -n "Emulator: " emulator -version | head -1 echo "=== All set! ===" Ejecutar: chmod +x setup-check.sh ./setup-check.sh ===== Troubleshooting setup ===== ==== "gradle daemon stopped" ==== ./gradlew --stop # Limpiar caches rm -rf ~/.gradle/caches rm -rf .gradle ==== "SDK path corrupted" ==== Android Studio → Settings → Appearance & Behavior → System Settings → Android SDK → Edit → Seleccionar ruta correcta → Apply ==== "Java version incompatible" ==== # Forzar JDK 17 export JAVA_HOME=/usr/libexec/java_home -v 17 # macOS export JAVA_HOME=/usr/lib/jvm/java-17-openjdk # Linux java -version # Debe mostrar 17.x ===== IDE Tips ===== ==== Keyboard shortcuts (Android Studio) ==== ^ Comando ^ Windows/Linux ^ macOS ^ | Run | Shift+F10 | Ctrl+R | | Debug | Shift+F9 | Ctrl+D | | Build | Ctrl+F9 | Cmd+F9 | | Gradle sync | (manual) | (manual) | | Search | Ctrl+F | Cmd+F | | Replace | Ctrl+H | Cmd+H | | Go to class | Ctrl+N | Cmd+O | | Go to file | Ctrl+Shift+N | Cmd+Shift+O | | Go to line | Ctrl+G | Cmd+G | ==== Code generation ==== Posicionarse en clase: → Code → Generate... → Getters/Setters → Equals/HashCode → toString() → Constructor ===== CI/CD Local ===== ==== Ejecutar todos los checks ==== # Clean + build + test ./gradlew clean build connectedCheck # O por partes ./gradlew test # Unit tests ./gradlew connectedAndroidTest # Android tests ./gradlew lint # Lint check ./gradlew :Machine:assembleDebug # Build debug