Android Manifest, una introducción.

Cuando uno se encuentra con su primer proyecto Android o con los posteriores, va a encontrar un archivo suelto entre todo el árbol de paquetes, carpetas y otras hiervas. Ese archivo que tanto llama la atención y que se denomina AndroidManifest.xml, es uno de los archivos más importantes de nuestra aplicación.

Antes de comenzar a profundizar sería bueno refrescar una serie de conceptos introductorios del mundo Android.

Android feliz

Este XML se genera automáticamente al crear un proyecto y en él se declaran todas las especificaciones de nuestra aplicación. Cuando hablamos de especificaciones hacemos mensión a las Activities utilizadas, los Intents, bibliotecas, el nombre de la aplicación, el hardware que se necesitará, los permisos de la aplicación, etcétera. Tal como diría Brian Marick:- “An example would be handy right about now”, por ende manos a la obra con un buen ejemplo.

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android = “http://schemas.android.com/apk/res/android&#8221;
android:versionCode = “11” android:versionName = “1.5.1” package = “com.bipgeeks.miaplicacion”>
<application android:icon = “@drawable/icon”>
<activity android:name = “.UnActivity”
android:label = “@string/app_name” android:theme = “@style/Theme.NoBackground”
android:configChanges = “orientation|keyboardHidden”
android:screenOrientation = “portrait”>
<intent-filter>
<action android:name = “android.intent.action.MAIN” />
<category android:name = “android.intent.category.LAUNCHER” />
</intent-filter>
</activity>

<activity android:name = “OtroActivity”
android:label = “@string/app_name” android:theme =”@style/Theme.NoBackground”
android:configChanges = “orientation|keyboardHidden”
android:screenOrientation = “portrait”>
</activity>

<!– Elementos para la publicidad–>
<meta-data android:name = “com.mobclix.APPLICATION_ID”
android:value = “insert-your-application-id” />
<activity android:name = “com.mobclix.android.sdk.MobclixBrowserActivity” />
</application>

<supports-screens android:largeScreens = “false”
android:normalScreens = “true” android:smallScreens = “false”
android:anyDensity = “true”>
</supports-screens>

<!–     Permisos que se exigen para mostrar la publicidad –>
<uses-permission android:name = “android.permission.INTERNET”></uses-permission>
<uses-permission android:name = “android.permission.GET_TASKS”></uses-permission>
<uses-permission android:name = “android.permission.READ_PHONE_STATE”></uses-permission>
<!– Permisos en General –>
<uses-permission android:name = “android.permission.VIBRATE”></uses-permission>
<!– Version mínima de androide soportada por la aplicacion –>
<uses-sdk android:minSdkVersion = “3” />
</manifest>

Ahora vamos por partes.

<manifest>: Dentro de este tag encontramos los siguientes atributos.

  • android:versionCode = “11”: Hace referencia al número de versión de desarrollo de nuestro programa, cada versión final que se desea publicar debe tener un versionCode distinto.
  • android:versionName = “1.5.1”: Este es el número de versión de nuestro programa.
  • package = “com.bipgeeks.miaplicacion”: Es el paquete de nuestro programa y con el cual se referencia nuestra aplicación en el Android Market y el teléfono.

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

  • <activity> Se tendrá un activity por cada pantalla de nuestra aplicación y dentro de él van sus atributos y los distintos Intents para comunicarse. En nuestro ejemplo, nos encontramos con los siguientes atributos.
    • android:name = “.UnActivity”: Este es el nombre de la clase de nuestra Activity.
    • android:label = “@string/app_name”: Es el texto que aparecerá en la barra superior de nuestra Activity.
    • android:theme = “@style/Theme.NoBackground”: En Android uno puede crear Themes (conjuntos de estilos) para reutilizar en una aplicación y de esa manera poder mantener la coherencia en el diseño de la aplicación.
    • android:configChanges = “orientation|keyboardHidden”: Este atríbuto establece que la Activity no detectará los cambios de orientación y por ocultación del teclado físico.
    • android:screenOrientation = “portrait”: Determinando esta propiedad le decimos a nuestra Activity que sólo tendrá disposición en modo portrait (el teléfono puesto verticalmente y recordemos que “landscape” significa el teléfono puesto horizontalmente).

<supports-screens>: Este tag es utilizado para describir las pantallas soportadas por nuestra aplicación. Entre los atributos podemos encontrar:

  • android:largeScreens = “false”: Especifica si se van a soportar pantallas del tipo large (tabs, netbooks, etc.) con nuestra aplicación.
  • android:normalScreens = “true”: Realiza lo mismo que el largeScreens pero haciendo referencia a las pantallas normal, prácticamente todos los celulares del tamaño similar al T-Mobile G1.
  • android:smallScreens = “false”: Lo mismo que los anteriores pero para dispositivos con pantalla pequeña.
  • android:anyDensity = “true”: Este atributo sirve para determinar que nosotros nos encargaremos de escalar las pantallas para las distintas densidades y que el teléfono no tendrá que hacerse cargo de adaptarlas automáticamente.

<uses-permissions>: Mediante este Tag especificamos los permisos que va a necesitar nuestra aplicación para poder ejecutarse, además son los que deberá aceptar el usuario antes de instalarla. Por ejemplo, si se desea utilizar funcionalidades con Internet o el vibrador del teléfono, hay que indicar que nuestra aplicación requiere esos permisos.

<uses-sdk>: En este tag determinamos las distintas versiones Android que va a utilizar nuestra aplicación, tanto sobre qué versiones va a correr como qué versión fue utilizada para realizar nuestras pruebas. Mediante el atributo android:minSdkVersion establecemos a partir de qué versión de Android nuestra aplicación podrá correr.

Tener la información del Manifest actualizada, correcta y ordenada ayudará mucho a la hora de mantener nuestra aplicación y su correcto funcionamiento, pero por sobre todas las cosas ayudará a que sea visible en el Android Market el cual, muestra a los teléfonos las aplicaciones sólo si estos cumplen con los requisitos de hardware y software especificados por la aplicación en su manifest. Es decir, si tenemos mal la información del manifest nuestra aplicación en el mejor de los casos podrá ser descargada por dispositivos que no la pueden ejecutar correctamente dando como resultado puntuaciones y comentarios negativos o directamente no aparecerá para ser descargada.

 

Una respuesta a “Android Manifest, una introducción.

  1. Pingback: 1.4. Puntos en la Programación « JC Del Valle

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s