Usuario:ManuelRomero/Manifest

Componentes en una aplicación Android

 * 1) ACTIVITY
 * 2) INTENT
 * 3) SERVICE
 * 4) BROADCAST RECEIVER
 * 5) CONTENT PROVIDER
 * 6) VIEW
 * 7) WIDGET
 * Los cuantro primeros son muy importantes
 * Casi siempre van a estar presente en una aplicación o desarrollo

Activity

 * Componente principal de la interfaz gráfica
 * Representa cada una de las pantalla de nuestra aplicación

Service

 * Son servicios o procesos ejecutados en segundo plano
 * No disponen de interfaz gráfica
 * Por ejemplo un objeto reloj o cargar información en una base de datos

Content Provider

 * Permite compartir datos entre aplicaciones
 * No necesitamos mostrar la forma en la que hacemos las cosas a otras aplicaciones

Broadcast Receiver

 * Detecta mensajes y eventos generados por el sistema y reacciona ante ellos
 * Pueden recibir mensajes de objetos Intends
 * Por ejemplo batería baja o se ha recibido un mensaje

View

 * Componentes básicos con los construimos nuestras aplicaciones
 * Existen muchos componentes de este tipo: Botones, Listas desplegables

Widget

 * Elementos visuales interactivos
 * Tienen comportamiento propio

Intent

 * Elementos u objetos que permiten que exista comunicación entre actividades de una aplicación
 * También se pueden comunicar otros objetos descritos anteriormente

El fichero Manifest

 * Referencia http://developer.android.com/guide/topics/manifest/manifest-intro.html


 * Cada proyecto tiene un fichero AndroidManifext.xml
 * Definiremos información sobre nuestra aplicación
 * 1) Datos de versionado y nombre de nuestra aplicacion
 * 2) Los componentes de nuestra aplicación y como reaccionan.
 * 3) Permisos
 * 4) Perfiles de Hardware
 * 5) Veriones de Android que soporta
 * Sirve para que el sistema antes de ejecutar la aplicación concozca los componentes que va a tener cargados
 * Es un fichero XML, por lo tanto tendrá elementos, atributos y valores para los atributos
 * Sólo se pueden incluir elementos definidos, el usuario no puede incorporar elementos propios (listados más abajo)
 * Al menos debe tener una etiqueta manifest y una aplication y éstas sólo pueden estar una vez

manifest

 * Es el nodo raiz del fichero manifest.xml
 * Sintaxis

Atributos del elemento manifest

 * xmlns
 * xml namespace
 * Define el namesapace de android y siempre debe tener el valor "http://schemas.android.com/apk/res/android"


 * pakage
 * Nombre del paquete raiz de nuestra aplicación
 * Este nombre tiene que ser único en el market
 * Se usa un nombre de dominio escrito al revés para evitar posibles conflictos con otros desarrollos


 * versionCode
 * Número que se debe incrementar cada vez que actualizamos nuestra aplicacion en el market
 * Este número es seguido por el market para ver la versión más reciente de una aplicación número más alto
 * Este número no se muestra al usuario en el market


 * versionName
 * Es lo que se muestra en el market
 * Podemos poner lo que queramos


 * sharedUserId
 * El nombre del ID de usuario de Linux que será compartido por otras aplicaciones
 * Quien es el propietario de este proceso


 * sharedUserLabel


 * installLocation
 * Donde debe ser instalada nuestra aplicación por defecto
 * solo funcionan en versiones 2.2 o superior las anteriores las ignora
 * Valores android:installLocation=["auto" | "internalOnly" | "preferExternal"]
 * auto : Puede ser instalado en el dispositivo externo, pero por defecto la almacenará en el dispositivo interno
 * internalOnly :Sólo se puede instalar en el dispositivo interno
 * preferExternal :Se instalará en el dispositivo externo (tarjeta SD)por defecto pero si hay problemas se puede instalar en el dispositivo interno.


 * Ejemplo

Elemento application

 * Sintaxis
 * Analizaremos sólo el atributo ico y label
 * Atributos cuyos valores son recursos del sistema

Atributos icon, label
Imagen:AtributosApplication.png
 * icon
 * Es el icono de la aplicación para el market
 * También será para lanzar nuestra aplicación en el emulador o móvil


 * label
 * String que se va a mostrar para nuestra aplicación en el lanzado de la aplicación
 * Barra de título de nuestra aplicación

Atributo debuggable

 * Lo normal es tener este atributo a true
 * Cuando se vaya a publicar en el market pasarlo a false

Activity

 * Una aplicación android por lo menos ha de tener un activity
 * Sintaxis
 * En nuestra aplicación aparece la siguiente información que de momento es la que vamos a analizar

Atributos de activity

 * name
 * Es el nombre de la clase activity
 * normalmente se especifica en crudo no referenciado al ficheor string.xml


 * label
 * El string que va a aparecer en la bara de título de la actividad
 * Será usado en junto con el icono del lanzador
 * Si no se especifica aparecería el label de la aplicación
 * screenOrientation
 * Valores deseados para ciertas activity son landscape o portrait esto obliga a que use esta orienteación
 * En otros casos o si se deja vacío la orientación cambiará indicado por el acelerómetro
 * Esto provocará que nuestra actividad se destuya y luego restaurada, cosa que seguramente no queremos que ocurra.

android:configChanges="keyboard|keyboardHidden|orientation"
 * configChanges
 * Esto también puede provocar un cambio en la pantalla
 * A la vez destruye y vuelve a recostruir nuestra actividad
 * En este caso estamos diciendo que cuando aparezca o desaparezca el teclado
 * O cuando cambie la orienteación estos cambios si se producen ejecutándose nuestra actividad
 * Los queremos gestionar nostros y no que el sistema destruya u luego recargue nuestra actividad.

Intent
esta activity va a ser un punto de entrada para nuestra aplicació´n que esta activity sea añadida con su icono al lanzador de aplicaciones
 * Sirve para especificar que activity o service inicia nuestra aplicación
 * intent-filter tenemos muchos
 * action
 * category
 * Ambos sólo tienen un atributo name
 * En ambos casos como name le pasamos un intent
 * Sólo una activity debe tener estas dos etiquetas

Lista de atributos
En este ficheros sólo pueden aparecer los siguientes elementos