Android Gradle Es
Android Gradle Es
Android Gradle Es
#android-
gradle
Tabla de contenido
Acerca de 1
Observaciones 2
Que es android-gradle 2
Principales características 2
Visión general 2
plugin android-gradle 3
Módulos 4
El envoltorio de Gradle 5
Enlaces externos: 6
Examples 6
Envoltura Gradle 7
Examples 8
Examples 9
Observaciones 12
Examples 12
Parámetros 16
Observaciones 17
Documentación oficial: 17
Examples 17
Observaciones 19
Documentacion oficial 19
Examples 19
Examples 24
Examples 28
Examples 30
Creditos 32
Acerca de
You can share this PDF with anyone you feel could benefit from it, downloaded the latest version
from: android-gradle
It is an unofficial and free android-gradle ebook created for educational purposes. All the content is
extracted from Stack Overflow Documentation, which is written by many hardworking individuals at
Stack Overflow. It is neither affiliated with Stack Overflow nor official android-gradle.
The content is released under Creative Commons BY-SA, and the list of contributors to each
chapter are provided in the credits section at the end of this book. Images may be copyright of
their respective owners unless otherwise specified. All trademarks and registered trademarks are
the property of their respective company owners.
Use the content presented in this book at your own risk; it is not guaranteed to be correct nor
accurate, please send your feedback and corrections to [email protected]
https://riptutorial.com/es/home 1
Capítulo 1: Empezando con android-gradle
Observaciones
Que es android-gradle
android-gradlees un complemento de gradle mantenido oficialmente por el equipo de
desarrolladores de Google Tools y es la herramienta de compilación oficial desde el anuncio el 16
de mayo de 2013 en Google I / O.
Principales características
Las principales características del Android Gradle Plugin son:
• Gestión de la dependencia
• Proyectos modulares con bibliotecas.
• Variantes a través de sabores y tipos de construcción
• IDE construcciones independientes
Visión general
1. Descarga e instala Android Studio
2. Ábrelo y crea un nuevo proyecto con todas las configuraciones predeterminadas.
https://riptutorial.com/es/home 2
plugin android-gradle
Un proyecto de Gradle generalmente se divide en subproyectos o módulos, cada uno de los
cuales contiene un script de compilación dedicado.
buildscript {
// maven repositories for dependencies
repositories {
jcenter()
}
// build script dependencies
dependencies {
// this is the dependency to the android build tools
classpath 'com.android.tools.build:gradle:2.1.2'
https://riptutorial.com/es/home 3
}
}
allprojects {
// maven repositories for all sub-project / modules
repositories {
jcenter()
}
}
En este ejemplo, la versión del plugin android-gradle es 2.1.2 como se puede ver en esta línea:
classpath 'com.android.tools.build:gradle:2.1.2'
Módulos
El proyecto se divide en módulos, cada uno de los cuales contiene una build.gradle comandos
build.gradle dedicada. El archivo settings.gradle enumera estos módulos:
include ':app'
Para utilizar el complemento, debe aplicarse en la parte superior del archivo build.gradle de cada
módulo ( app en el ejemplo).
android {
// gradle-android plugin configuration
}
https://riptutorial.com/es/home 4
android {
// setup which version of the SDK to build against and
// with what version of the build tools
compileSdkVersion 23
buildToolsVersion "23.0.2"
// app dependencies
dependencies {
// any jar file in the libs folder
compile fileTree(dir: 'libs', include: ['*.jar'])
// test dependency
testCompile 'junit:junit:4.12'
// runtime dependency on the support library
compile 'com.android.support:appcompat-v7:24.0.0'
}
Configure su compilación con Gradle y aprenda las configuraciones y opciones más avanzadas
de Android Gradle Plugin y profundice en el significado de esta configuración.
También debe aprender más sobre cómo declarar las dependencias . Como ves, la etiqueta de
dependencies está fuera de la de android : esto significa que no está definida por el complemento
de Android, pero es estándar de gradle .
https://riptutorial.com/es/home 5
El envoltorio de Gradle
Android Studio también instalará, de forma predeterminada, una envoltura de Gradle . Esta es
una herramienta que puede ejecutar directamente desde la línea de comandos y descargará una
versión local específica de gradle la primera vez que la ejecute.
Linux / Mac:
./gradlew assemble
Windows:
gradlew assemble
Enlaces externos:
• Documentación oficial de Android Build Tools
• Documentación oficial de Android Gradle Plugin
• Documentación Gradle Stackoverflow
• Documentación oficial de gradle.
Examples
Configuración inicial con Android Studio
• Java
• gradle
• la estructura de carpetas del proyecto Android
• un manifiesto de Android
• configuración inicial del plugin
https://riptutorial.com/es/home 6
adicionales del complemento gradle)
2. Descargar e instalar Android Studio
3. Cree un nuevo proyecto (si necesita ayuda, vea Crear un nuevo proyecto )
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
}
}
Envoltura Gradle
Por ejemplo:
...
distributionUrl = https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
...
https://riptutorial.com/es/home 7
Capítulo 2: Cómo incluir archivos aar en un
proyecto en Android
Examples
¿Cómo agregar la dependencia .aar en un módulo?
En un módulo (biblioteca o aplicación) donde necesita el archivo aar que tiene que agregar en su
build.gradle el repositorio:
repositories {
flatDir {
dirs 'libs'
}
}
y añadir la dependencia:
dependencies {
compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
}
Preste atención a la ruta relativa de la carpeta libs que está utilizando en el módulo.
El archivo aar no contiene las dependencias transitivas y no tiene un archivo pom que
describa las dependencias utilizadas por la biblioteca.
Esto significa que, si está importando un archivo aar utilizando un repositorio de flatDir , tiene
que especificar las dependencias también en su proyecto .
Esto funciona con las bibliotecas aar que se publican en un repositorio local o remoto de Maven.
En su caso, parece que la biblioteca no se publicará ni siquiera en un repositorio de maven local.
No puedo encontrar ninguna información definitiva sobre si funcionará en tus circunstancias, pero
deberías intentarlo.
https://riptutorial.com/es/home 8
Capítulo 3: Configurar ajustes de firma
Examples
Configurar el build.gradle con la configuración de firma
Puedes definir:
Usted tiene que definir las signingConfigs bloquean para crear una configuración de firma:
android {
signingConfigs {
myConfig {
storeFile file("myFile.keystore")
storePassword "myPasswork"
keyAlias "aKeyAlias"
keyPassword "myAliasPassword"
}
}
//....
}
android {
buildTypes {
release {
signingConfig signingConfigs.myConfig
}
}
}
Por ejemplo, puede definir estas teclas (puede usar sus nombres favoritos):
STORE_FILE=myStoreFileLocation
STORE_PASSWORD=myStorePassword
https://riptutorial.com/es/home 9
KEY_ALIAS=myKeyAlias
KEY_PASSWORD=mykeyPassword
android {
signingConfigs {
release
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
Luego puede introducir algunos controles para evitar problemas de gradle en el proceso de
construcción.
//------------------------------------------------------------------------------
// Signing
//------------------------------------------------------------------------------
def Properties props = new Properties()
def propFile = file('../signing.properties')
if (propFile.canRead()) {
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
} else {
android.buildTypes.release.signingConfig = null
}
} else {
android.buildTypes.release.signingConfig = null
}
signingConfigs {
release {
storeFile file(System.getenv("KEYSTORE"))
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
https://riptutorial.com/es/home 10
keyPassword System.getenv("KEY_PASSWORD")
}
}
La forma más sencilla y limpia de agregar una configuración externa es a través de un archivo
Gradle separado
construir.gradle
keystore.gradle
ext.keystore = [
storeFile : "/path/to/your/file",
storePassword: 'password of the store',
keyAlias : 'alias_of_the_key',
keyPassword : 'password_of_the_key'
]
Normalmente, es una buena idea ignorar este archivo del sistema de control de versiones como
git si está ubicado dentro de su repositorio.
https://riptutorial.com/es/home 11
Capítulo 4: Configurar los sabores del
producto
Observaciones
Los sabores de producto admiten las mismas propiedades que defaultConfig esto se debe a que
defaultConfig realmente pertenece a la clase ProductFlavor. Esto significa que puede
proporcionar la configuración básica para todos los sabores en el bloque defaultConfig {} , y cada
sabor puede anular cualquiera de estos valores predeterminados, como el pplicationId .
Examples
Cómo configurar el archivo build.gradle
android {
...
defaultConfig {...}
buildTypes {...}
productFlavors {
demo {
applicationId "com.example.myapp.demo"
versionName "1.0-demo"
}
full {
applicationId "com.example.myapp.full"
versionName "1.0-full"
}
}
}
Puede usar gradle para tener constantes de BuildConfig y valores de res por sabor. Simplemente
agregue el valor al sabor que desea admitir.
android {
defaultConfig {
resValue "string", "app_name", "Full App"
buildConfigField "boolean", "isDemo", "false"
}
productFlavors {
demo {
resValue "String", "app_name", "Demo App"
buildConfigField "boolean", "isDemo", "true"
}
full {
// use default values
}
}
}
https://riptutorial.com/es/home 12
Gradle hará toda la fusión / anulación por usted. El código generado también le permitirá ver de
dónde provienen los valores, por ejemplo,
Cuando la aplicación se basa en más de un criterio, en lugar de crear muchos sabores, puede
definir las dimensiones del sabor.
Las dimensiones del sabor definen el producto cartesiano que se utilizará para producir variantes.
Ejemplo:
flavorDimensions("dimA", "dimB")
productFlavors {
row1 {
...
dimension = "dimA"
}
row2 {
...
dimension = "dimA"
}
row3 {
...
dimension = "dimA"
}
col1 {
...
dimension = "dimB"
}
col2 {
...
dimension = "dimB"
}
col3 {
...
dimension = "dimB"
}
}
Esta configuración producirá 18 (3 3 2) variantes (si tiene los 2 tipos de compilación estándar:
https://riptutorial.com/es/home 13
debug y release ). Se crearán las siguientes variantes de compilación:
row1-col1-debug
row1-col2-debug
row1-col3-debug
row1-col1-release
row1-col2-release
row1-col3-release
row2-col1-debug
row2-col2-debug
row2-col3-debug
row2-col1-release
row2-col2-release
row2-col3-release
row3-col1-debug
row3-col2-debug
row3-col3-debug
row3-col1-release
row3-col2-release
row3-col3-release
El orden de la dimensión está definido por android.flavorDimensions y las unidades cuyo sabor
reemplaza al otro , lo que es importante para los recursos cuando un valor en un sabor
reemplaza un valor definido en un sabor de prioridad más baja.
La dimensión de sabor se define con mayor prioridad primero. Así que en este caso:
También hay una carpeta de origen de "combinación de sabor" disponible cuando se utiliza más
de una dimensión de sabor. Por ejemplo src/flavor1Flavor2/ .
• Tenga en cuenta que esto es para todas las combinaciones de todas las dimensiones.
• Su prioridad es más alta que los conjuntos de fuentes de un solo sabor, pero más baja que
los tipos de compilación.
android {
...
productFlavors {
flavor1 {
//.....
}
flavor2 {
//.....
}
}
https://riptutorial.com/es/home 14
}
...
dependencies {
compile 'com.android.support:appcompat-v7:24.2.0'
productFlavors {
// Define separate dev and prod product flavors.
dev {
// dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
// to pre-dex each module and produce an APK that can be tested on
// Android Lollipop without time consuming dex merging processes.
minSdkVersion 21
}
prod {
// The actual minSdkVersion for the application.
minSdkVersion 15
}
}
https://riptutorial.com/es/home 15
Capítulo 5: Configurar tipos de compilación
Parámetros
Parámetro Detalle
https://riptutorial.com/es/home 16
Parámetro Detalle
------ --------
Método Detalle
setProguardFiles
Establece los archivos de configuración de ProGuard.
(proguardFileIterable)
Observaciones
De forma predeterminada, el complemento de Android para gradle configura automáticamente el
proyecto para construir tanto una versión de depuración como una versión de lanzamiento de la
aplicación.
Documentación oficial:
http://google.github.io/android-gradle-
dsl/current/com.android.build.gradle.internal.dsl.BuildType.html
Examples
https://riptutorial.com/es/home 17
Cómo configurar los tipos de compilación en el build.gradle
android {
...
defaultConfig {...}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-
rules.pro'
}
debug {
applicationIdSuffix ".debug"
}
}
}
https://riptutorial.com/es/home 18
Capítulo 6: Configure su construcción con
Gradle
Observaciones
El sistema de compilación de Android compila los recursos de la aplicación y el código fuente, y
los empaqueta en archivos APK que puede probar, implementar, firmar y distribuir. Android Studio
utiliza Gradle, un kit de herramientas de compilación avanzada, para automatizar y administrar el
proceso de compilación, mientras que le permite definir configuraciones de compilación
personalizadas y flexibles.
Documentacion oficial
https://developer.android.com/studio/build/index.html
Examples
¿Por qué hay dos archivos build.gradle en un proyecto de Android Studio?
Si usa otro módulo en su proyecto, como biblioteca local tendrá otro archivo build.gradle:
<PROJECT_ROOT>\module\build.gradle
El archivo build.gradle de nivel superior, ubicado en el directorio del proyecto raíz, define
configuraciones de compilación que se aplican a todos los módulos de su proyecto. De forma
predeterminada, el archivo de compilación de nivel superior utiliza el buildscript {} block para
definir los repositorios y dependencias de Gradle que son comunes a todos los módulos del
proyecto. El siguiente ejemplo de código describe la configuración predeterminada y los
elementos DSL que puede encontrar en el nivel superior de build.gradle después de crear un
nuevo proyecto.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
classpath 'com.google.gms:google-services:3.0.0'
}
https://riptutorial.com/es/home 19
}
ext {
compileSdkVersion = 23
buildToolsVersion = "23.0.1"
}
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
dependencies {
//.....
}
/**
* The buildscript {} block is where you configure the repositories and
* dependencies for Gradle itself--meaning, you should not include dependencies
* for your modules here. For example, this block includes the Android plugin for
* Gradle as a dependency because it provides the additional instructions Gradle
* needs to build Android app modules.
*/
buildscript {
/**
* The repositories {} block configures the repositories Gradle uses to
* search or download the dependencies. Gradle pre-configures support for remote
* repositories such as JCenter, Maven Central, and Ivy. You can also use local
* repositories or define your own remote repositories. The code below defines
* JCenter as the repository Gradle should use to look for its dependencies.
*/
repositories {
jcenter()
}
/**
* The dependencies {} block configures the dependencies Gradle needs to use
* to build your project. The following line adds Android Plugin for Gradle
* version 2.0.0 as a classpath dependency.
https://riptutorial.com/es/home 20
*/
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
}
}
/**
* The allprojects {} block is where you configure the repositories and
* dependencies used by all modules in your project, such as third-party plugins
* or libraries. Dependencies that are not required by all the modules in the
* project should be configured in module-level build.gradle files. For new
* projects, Android Studio configures JCenter as the default repository, but it
* does not configure any dependencies.
*/
allprojects {
repositories {
jcenter()
}
}
/**
* The first line in the build configuration applies the Android plugin for
* Gradle to this build and makes the android {} block available to specify
* Android-specific build options.
*/
/**
* The android {} block is where you configure all your Android-specific
* build options.
*/
android {
/**
* compileSdkVersion specifies the Android API level Gradle should use to
* compile your app. This means your app can use the API features included in
* this API level and lower.
*
* buildToolsVersion specifies the version of the SDK build tools, command-line
* utilities, and compiler that Gradle should use to build your app. You need to
* download the build tools using the SDK Manager.
*/
compileSdkVersion 23
buildToolsVersion "23.0.3"
/**
* The defaultConfig {} block encapsulates default settings and entries for all
* build variants, and can override some attributes in main/AndroidManifest.xml
* dynamically from the build system. You can configure product flavors to override
* these values for different versions of your app.
*/
https://riptutorial.com/es/home 21
defaultConfig {
/**
* applicationId uniquely identifies the package for publishing.
* However, your source code should still reference the package name
* defined by the package attribute in the main/AndroidManifest.xml file.
*/
applicationId 'com.example.myapp'
/**
* The buildTypes {} block is where you can configure multiple build types.
* By default, the build system defines two build types: debug and release. The
* debug build type is not explicitly shown in the default build configuration,
* but it includes debugging tools and is signed with the debug key. The release
* build type applies Proguard settings and is not signed by default.
*/
buildTypes {
/**
* By default, Android Studio configures the release build type to enable code
* shrinking, using minifyEnabled, and specifies the Proguard settings file.
*/
release {
minifyEnabled true // Enables code shrinking for the release build type.
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
/**
* The productFlavors {} block is where you can configure multiple product
* flavors. This allows you to create different versions of your app that can
* override defaultConfig {} with their own settings. Product flavors are
* optional, and the build system does not create them by default. This example
* creates a free and paid product flavor. Each product flavor then specifies
* its own application ID, so that they can exist on the Google Play Store, or
* an Android device, simultaneously.
*/
productFlavors {
free {
applicationId 'com.example.myapp.free'
}
paid {
applicationId 'com.example.myapp.paid'
https://riptutorial.com/es/home 22
}
}
}
/**
* The dependencies {} block in the module-level build configuration file
* only specifies dependencies required to build the module itself.
*/
dependencies {
compile project(":lib")
compile 'com.android.support:appcompat-v7:24.1.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Por ejemplo:
defaultConfig {
....
project.ext.set("archivesBaseName", "MyName-" + defaultConfig.versionName);
MyName-X.X.X-release.apk
https://riptutorial.com/es/home 23
Capítulo 7: Declarar dependencias
Examples
Cómo agregar dependencias
El siguiente ejemplo describe cómo declarar tres tipos diferentes de dependencias directas en el
archivo build.gradle la aplicación / módulo:
android {...}
...
dependencies {
// The 'compile' configuration tells Gradle to add the dependency to the
// compilation classpath and include it in the final package.
Para descargar dependencias, declare el repositorio para que Gradle pueda encontrarlas. Para
hacer esto, agregue un repositories { ... } al build.gradle la aplicación / módulo en el archivo de
nivel superior.
repositories {
// Gradle's Java plugin allows the addition of these two repositories via method calls:
jcenter()
mavenCentral()
maven {
credentials {
username 'xxx'
password 'xxx'
}
url 'http://my.maven
}
}
En una gradle build proyectos gradle build , puede tener una dependencia con otro módulo en su
https://riptutorial.com/es/home 24
compilación.
Ejemplo:
dependencies {
// Dependency on the "mylibrary" module from this project
compile project(":mylibrary")
}
Puede tener una dependencia con un solo archivo jar o varios archivos jar.
dependencies {
compile files('libs/local_dependency.jar')
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Si tiene módulos que requieren dependencias binarias locales, copie los archivos JAR para estas
dependencias en <moduleName>/libs dentro de su proyecto.
compile 'group:name:version'
Por ejemplo:
https://riptutorial.com/es/home 25
compile 'com.android.support:appcompat-v7:24.1.0'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
testCompile 'junit:junit:3.8.1'
configurations {
myconfig
}
Se pueden agregar dependencias para sabores de productos específicos de manera similar a las
configuraciones de compilación .
android {
...
productFlavors {
flavor1 {
//...
}
flavor2 {
//...
}
}
}
dependencies {
flavor1Compile 'com.android.support:appcompat-v7:24.1.1'
flavor1Compile 'com.google.firebase:firebase-crash:9.4.0'
flavor2Compile 'com.android.support:appcompat-v7:24.1.1'
}
android {
https://riptutorial.com/es/home 26
...
buildTypes {
release {
//...
}
debug {
//....
}
}
}
dependencies {
debugCompile 'com.android.support:appcompat-v7:24.1.1'
releaseCompile 'com.google.firebase:firebase-crash:9.4.0'
}
https://riptutorial.com/es/home 27
Capítulo 8: Gradle - Información de las
etiquetas
Examples
Gradle - Información de las etiquetas
Gradle: se utiliza para compilar cualquier software, es un lenguaje específico del dominio que se
usa para configurar y completar todos los complementos, las bibliotecas descargadas de los
repositorios.
Utilizar complementos:
repositories { }
dependencies {}
android {}
Los repositorios y las dependencias se utilizan para configurar los requisitos del código de la
aplicación. El bloque de Android se utiliza para agregar código o información específica de
Android a la aplicación. También generamos nuestras etiquetas personalizadas y definimos
nuestro propio código personalizado, biblioteca e información.
Build.gradle archivo funciona para todos los proyectos. Settings.gradle - define todos los
subdirectorios o proyectos incluidos en la aplicación.
repositories {
mavenCentral()
}
https://riptutorial.com/es/home 28
La etiqueta de los repositorios de arriba contiene mevenCentral() significa que todas las
dependencias se descargan de mevenCentral() También podemos usar jcenter() o cualquier otra
fuente. El bloque de dependencias contiene todas las dependencias de tiempo de compilación
que deben descargarse de los repositories .
dependencies {
compile ‘org.codehous.groovy:groovy-all:2.3.2’
}
groovy-all -> order fact id, ese es un nombre que Gradle utiliza para identificar la biblioteca.
Settings.gradle : es una etiqueta de inclusión para todos los subproyectos que se agrega al
proyecto.
https://riptutorial.com/es/home 29
Capítulo 9: Reducir el código y los recursos
Observaciones
Para hacer que su archivo APK sea lo más pequeño posible, debe habilitar la reducción para
eliminar el código y los recursos no utilizados en su versión de lanzamiento.
Examples
Reducir el código con ProGuard
Para habilitar la reducción de código con ProGuard, agregue minifyEnabled true al tipo de
compilación apropiado en su archivo build.gradle .
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile(‘proguard-android.txt'),
'proguard-rules.pro'
}
}
}
dónde:
android {
...
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Preste atención porque la reducción de recursos solo funciona junto con la reducción de código .
https://riptutorial.com/es/home 30
Puede personalizar qué recursos mantener o descartar creando un archivo XML como este:
Todas las bibliotecas vienen con recursos que no son necesarios para su aplicación. Por ejemplo,
Google Play Services incluye traducciones para los idiomas que su propia aplicación ni siquiera
admite.
Puede configurar el archivo build.gradle para especificar qué recurso desea conservar.
Por ejemplo:
defaultConfig {
// ...
https://riptutorial.com/es/home 31
Creditos
S.
Capítulos Contributors
No
Empezando con
1 Community, Daniele Segato, Gabriele Mariotti
android-gradle
Cómo incluir
2 archivos aar en un Gabriele Mariotti, JBirdVegas
proyecto en Android
Configurar ajustes
3 DArkO, Gabriele Mariotti
de firma
Configurar los
4 David Medenjak, Gabriele Mariotti, piotrek1543, Tarek El-Mallah
sabores del producto
Configurar tipos de
5 Gabriele Mariotti
compilación
Configure su
6 construcción con Gabriele Mariotti
Gradle
Declarar
7 4444, cricket_007, Gabriele Mariotti, jitinsharma
dependencias
Gradle - Información
8 Chetan Joshi
de las etiquetas
Reducir el código y
9 Gabriele Mariotti
los recursos
https://riptutorial.com/es/home 32