Hola, soy Luis y hoy les traigo este nuevo post.
Enlace a la parte 2: https://manualestutor.com/como-automatice-el-proceso-de-creacion-de-aplicaciones-para-android-parte-2/
Para empezar, tenemos que reemplazar las propiedades en la aplicación, como el nombre del paquete, el nombre de la aplicación, el icono de la aplicación, la URL de la base de datos, el color del tema, etc. Luego, generar un nuevo archivo de almacén de claves y luego publique el archivo apk. Se convierte en una gran molestia.
Pero bueno, ¿por qué no automatizamos el proceso de construcción? Podemos adquirir las propiedades necesarias para cambiar de una api. Luego, las propiedades se cambiarán en la aplicación y se publicarán automáticamente. Suena genial, ¿verdad? Bueno, entonces ¿Cómo lo vamos a hacer? Veamos qué podemos hacer.
Para este post, digamos que tenemos 2 empresas con las que tenemos un acuerdo, Google y Facebook. Entonces necesitamos 2 aplicaciones diferentes para ellos, con diferentes propiedades.
En esta parte, mostraré qué modificaciones se necesitan en la aplicación de Android. En la siguiente parte, mostraré cómo modificar las propiedades con un código Python.
Índice
Determine las propiedades
Primero, necesitamos determinar qué propiedades debemos cambiar cada vez. En esta aplicación de muestra, vamos a cambiar lo siguiente:
- Nombre del paquete
- Nombre de la aplicación
- Color del tema
- Icono de la aplicación
- Archivo de almacén de claves
Planifique cómo hacerlo antes de hacerlo

¿Cómo cambiar el nombre del paquete?
Ahora, primero piense en por qué necesitamos cambiar el nombre del paquete. En una aplicación de Android, la aplicación considera la identificación de la aplicación como el nombre del paquete del proyecto. Puedes comprobar el resultado del método context.getPackageName (); en cualquier archivo java para estar seguro. Cambiar la identificación de la aplicación en el nivel del módulo build.gradle , luego compile y ejecute el proyecto, y la salida de context.getPackageName (); también cambiará. Cada aplicación en Google Play Store debe tener un nombre de paquete separado. Así es como separan las aplicaciones. Es por eso que necesitamos cambiar la identificación de la aplicación para cada aplicación para cambiar el nombre del paquete fácilmente. Gracias a Google, si no nos dieran la posibilidad de cambiar el nombre del paquete simplemente cambiando la identificación de la aplicación, tendríamos que cambiar los nombres de las carpetas del paquete y el nombre del paquete en todos los archivos java para cambiar el nombre del paquete de todo el proyecto. . Sería una tarea enorme y dolorosa. Pero ahora no tenemos que hacer eso.
¿Cómo modificar recursos y otras propiedades?
La identificación de la aplicación se establece en el nivel del módulo build.gradle archivo, y podemos obtener esa identificación de aplicación desde cualquier lugar del proyecto usando context.getPackageName (); método. Por lo tanto, no necesitamos almacenar la identificación de la aplicación en ningún otro lugar. Pero tenemos que poner el nombre de la aplicación en el strings.xml file (también conocido como archivo de recursos de cadena), porque configuramos el nombre de la aplicación en el manifiesto desde el archivo de recursos de cadena. Nuevamente, tenemos que almacenar el color del tema en el colors.xml archivo (también conocido como archivo de recursos de color). Mira, tenemos que cambiar tantos archivos. 🙁
Pero, ¿qué pasa si almacenamos todas estas cosas en un solo lugar y luego usamos las propiedades de ese archivo? ¿Es posible crear recursos de cadena y color de forma dinámica desde otro archivo? ¡Sí lo es! Almacenaremos las propiedades en el gradle.properties archivar y generar variables de compilación y recursos a partir de ellos. Si no entiende de lo que estoy hablando, no se preocupe. Lo obtendrá cuando lo vea.
¿Cómo cambiar el icono?
Para el icono de la aplicación, no es necesario almacenarlo como un campo. Anularemos el archivo de icono con nuestro nuevo icono. Eso estará bien.
¿Cómo actualizar la información del almacén de claves?
Y, por último, almacenaremos la información del almacén de claves en un .properties y establezca la configuración de firma en el archivo build.gradle de nivel de módulo.
Estos son los cambios necesarios en la aplicación. Escribiremos algo de código Python en la siguiente parte para modificar las propiedades desde afuera. Hablaré sobre el plan del código Python más tarde.
Modificar el código de la aplicación
Mantendremos la mayor parte de la información de propiedades en el archivo gradle.properties y en el archivo build.gradle de nivel de aplicación .
Agregue las siguientes líneas en el archivo gradle.properties.
Hemos establecido los valores predeterminados para las propiedades. Tenga en cuenta que no hemos establecido el valor predeterminado para el icono de la aplicación. En realidad, no es necesario. Sobrescribiremos el icono de la aplicación anterior directamente.
A continuación, abra el nivel de la aplicación build.gradle expediente. Realice los siguientes cambios.
Archivo build.gradle de nivel de aplicación
Note que usamos resValue
para crear valor en los recursos. resValue "string", "app_name", APP_NAME
significa que esto creará un campo de recursos de cadena con el nombre app_name
, y su valor será el valor de la APP_NAME
campo de gradle.properties expediente. Similar, resValue "color", "colorPrimary", THEME_COLOR
crea un campo de recursos de color con nombre colorPrimary
y valor de THEME_COLOR
valor de campo.
Y mira el buildConfigField "String", "APP_NAME", ""$APP_NAME""
crea un campo constante BuildConfig. Hablaremos de esto en un momento.
Entonces, resValue
crea un nuevo campo de recursos. Por lo tanto, debe eliminar cualquier campo de recurso con el mismo nombre del recurso xmls. Quite las siguientes líneas del strings.xml y colors.xml. Si no lo hace, obtendrá Duplicate resources
error al crear la aplicación.


Ahora construya el proyecto desde Construir> Reconstruir Proyecto o Construir> Hacer proyecto.
Abierto AndroidManifest.xml y cambie la referencia del icono.
android:icon="@drawable/app_icon" android:roundIcon="@drawable/app_icon"
De hecho, nuestras principales modificaciones en la aplicación están hechas. Ahora tienes que usar las variables de compilación y los recursos que se generan. ¿Cómo usas? Sabes cómo utilizar las variables de recursos. Si no puedes recordar R.color.colorPrimary
es la forma de conseguir el colorPrimary
recurso. Borraste el colorPrimary
campo de recursos en el archivo colors.xml pero gradle generó automáticamente el colorPrimary
campo, porque lo dijiste en el archivo build.gradle ¿Y recuerdas que hablé del campo constante de BuildConfig? Vea el siguiente fragmento:
Aquí usamos BuildConfig.APP_NAME;
para acceder al APP_NAME
campo. Gradle creó este campo porque agregamos buildConfigField "String", "APP_NAME", ""$APP_NAME""
en el nivel de la aplicación build.gradle expediente. Aquí está el BuildConfig.java archivo que es generado automáticamente por gradle:
Ese APP_NAME
El campo constante, junto con otros campos, se genera automáticamente.
Así que ahora, básicamente, las modificaciones de nuestra aplicación están hechas, vayamos a la parte 2 para ver cómo podemos cambiar las propiedades desde fuera de la aplicación y luego construir la apk.
Gracias por leer.
Añadir comentario