Estructura de proyectos de Android Studio (frente a la estructura de proyectos de Eclipse)
Estoy tratando de aprender desarrollo android y estoy inicialmente confundido por las diferentes estructuras de proyecto entre Eclipse y Android Studio. Esto dificulta seguir los tutoriales diseñados para Eclipse. ¿Podría alguien decirme por qué existen estas diferencias? ¿Deberían existir?
Por ejemplo, si yo fuera a localizar el archivo R.java en los dos IDEs diferentes, las rutas se vería así:
Eclipse: app\gen\com.example.app\R.java
Android Studio: appbuild\source\r\debug\com.example.app\R.java
¿Por qué estas rutas son diferentes? ¿Por qué mi R.java se encuentra en una carpeta de depuración en Android Studio? Esto llevó a algunos errores al principio, y si alguien tiene alguna idea de estas diferencias se lo agradecería.
108
3
El misterio: Android Studio's Project Structure and Build System
No sé si esto se debe al sistema de compilación Gradle (apuesto a que sí), pero os contaré lo que he entendido hasta ahora. Actualización 4: 2014/09/11 Añadida Hoja de trucos para
BuildTypes
,Flavors
yVariants
(por fin me siento con confianza para escribir esto :D) Actualización 3: 2014/09/11 Actualizados los espacios de trabajo y proyectos de comparación para ser precisos. Actualización 2: 2014/04/17 Añadido más detalles a la estructura del proyecto AS Actualización 1: 2013/07/29 Añadido IntelliJ estructura del proyecto La estructura de proyecto de IntelliJ's (mostrada al final) es para IntelliJ con el plugin android. El Android Studio, sin embargo, tiene una estructura de proyecto dividido así:Estructura: Proyectos y Módulos
module en Android Studio es como un project en Eclipse. un proyecto en Android Studio es como un espacio de trabajo en Eclipse (para ser precisos, un espacio de trabajo con proyectos interdependientes) De [la documentación][1] (Android Studio está basado en Intellij IDEA) :
¿Por qué estas rutas son diferentes? ¿Por qué mi R.java se encuentra en una carpeta de depuración en Android Studio? Esto llevó a algunos errores al principio, y si alguien tiene alguna idea de estas diferencias se lo agradecería.
En pocas palabras, Android Studio está configurado para construir una depuración Build Type en su sistema.
Eclipse/ADT está diseñado para soportar una sola compilación a la vez (por lo que puedo decir). Uno de los principales objetivos del nuevo sistema de construcción (de la guía del usuario):
Así que mientras Eclipse/ADT podría generar un archivo
R.java
, Android Studio soporta múltiples. ElR.java
generado se encuentra en la carpetadebug
porque por defecto el nuevo sistema de compilación soporta los tipos de compilacióndebug
yrelease
. Si cambiaste tu variante de compilación (botón, esquina inferior izquierda de AS) a release AS generaráR.java
en el directoriorelease
.Esto puede no significar nada para proyectos simples, pero el soporte de Build Variants significa una simplificación drástica del proceso de compilación para muchos desarrolladores, incluyendo el proyecto en el que estoy trabajando.
Nuestro proyecto soporta 4 sabores con 2 tipos de compilación (debug y release), para soportar un total de 8 combinaciones diferentes de APK. Y cada una de esas combinaciones tienen configuraciones ligeramente diferentes, por lo que este sistema de construcción realmente funcionó para nosotros. Mi android studio está instalado en una máquina diferente, pero si la memoria no me falla el archivo
R.java
existe enbuild/source//r//package/R.java
. Cuando nuestro servidor CI construye los archivos APK utiliza cada uno de estos archivosR.java
para generar paquetes separados.Así que lo mejor para la herramienta de desarrollo de Android para Android Studio sólo para todo el futuro apoyo de Android M ---