El archivo AndroidManifest.xml es uno de los archivos más importantes del proyecto que se encarga de definir un gran número de parámetros y condiciones para que un proyecto de desarrollo android pueda funcionar correctamente en un smartphone o tablet Android. Cuando creamos un nuevo proyecto, lo primero que nos pide es rellenar un pequeño asistente donde describiremos las características elementales de nuestra aplicación. Tras ello, mientras se generan los archivos de código elementales, también se crea este archivo AndroidManifest.xml donde se definen todas las especificaciones de nuestra aplicación, por ejemplo, las Activities, los Intents, las bibliotecas y dependencias, el nombre de la aplicación, el hardware necesario o los permisos que necesitará la aplicación para funcionar correctamente

El archivo AndroidManifest.xml se divide en varias etiquetas, las cuales vamos a ver a continuación.

<manifest>: Dentro de esta etiqueta vamos a encontrar definidos:

  • android:versionCode = “2” – Nos permite indicar un número de versión de desarrollo interno.
  • android:versionName = “1.0.1” – La versión actual de nuestra aplicación de cara al usuario.
  • package = “es.movilzona.app” – El nombre del paquete de nuestra aplicación.

<application>: Aquí adentro van todas las Activities, Services, Providers, Receivers y las bibliotecas que se usan en nuestra aplicación.

  • <activity> Cada Activity, como hemos dicho, es cada una de las pantallas de nuestra aplicación. En este apartado se definirán sus propiedades:
    • android:name = “.UnActivity” – El nombre de la Activity.
    • android:label = “@string/app_name” – El texto que aparecerá en la barra de título de la Activity.
    • android:theme = “@style/Theme.NoBackground” – El tema utilizado en la Activity.
    • android:configChanges = “orientation” – Nos permite configurar si queremos, o no, que la Activity detecte los cambios de orientación.
    • android:screenOrientation = “portrait/landscape” – Nos permite elegir si la actividad funcionará solo en vertical/horizontal

<supports-screens>: Nos permite describir las pantallas permitidas.

  • android:largeScreens = “false” – Nos permite definir si nuestra aplicación es compatible con pantallas del tipo “large”.
  • android:normalScreens = “true” – Nos permite definir si nuestra aplicación es compatible con pantallas del tipo “normal”.
  • android:smallScreens = “false” – Nos permite definir si nuestra aplicación es compatible con pantallas del tipo “small”.
  • android:anyDensity = “true” – Nos permite indicar a Android que nosotros escalaremos las aplicaciones a todas las densidades.

<uses-permissions>: Nos permite definir los permisos que tendrá nuestra aplicación. Para que una aplicación funcione debe tener sus permisos correctamente definidos de manera que tanto Android como el propio usuario sepan a qué elementos del sistema podrá acceder la aplicación. Profundizaremos en este aspecto en el siguiente tema.

<uses-sdk>: Nos permite definir las versiones de Android, o SDK, utilizados en las pruebas y necesarios para el correcto funcionamiento de la aplicación.

  • android:minSdkVersion – Nos permite definir la versión mínima de SDK necesaria para que la aplicación se ejecute y funcione.
  • android:targetSdkVersion – La versión óptima para la que ha sido diseñada la aplicación.
  • android:maxSdkVersion – La versión máxima de Android para la que ha sido diseñada la aplicación. Debemos utilizar esto con precaución.

Android Studio - AndroidManifest.xml

Gradle incluye algunas de las funciones de AndroidManifest.xml

Con la implementación de Gradle, algunos de estos parámetros de AndroidManifest.xml han pasado a estar obsoletos, habiendo que declararlos en el apartado correspondiente dentro de los scripts de Gradle.

Por ejemplo, dentro de Gradle Scripts > build.gradle podemos ver cómo nos aparece la compilación, información sobre el SDK y las dependencias, entre otra información.

Android Studio - Gradle

Profundizaremos en el tema de Gradle y las posibilidades que nos ofrece este elemento en el desarrollo Android más adelante.

Si tienes alguna duda, pásate por el Foro de MovilZona donde hemos creado un post para las consultas al respecto de este tema para el curso de desarrollo Android, como venimos haciendo para cada uno.

Enlaces