Conceptos basicos sobre
Android, para tener una idea general sobre los componentes y posibilidades que tiene
Android. y algunos enlaces a la documentación oficial para obtener mayor información.
Activity
Una
Activity es un solo elemento, enfocada que el usuario puede ver. casi todas las actividades en
Android pueden interactuar con el usuario, las actividades están conformadas por dos partes, gráfica y la lógica.
El área gráfica (
Layouts) es un o varios archivos XML, que tienen declarados las etiquetas similares a las de HTML. Estas etiquetas definen los elementos de la
interfaz como botones, cuadros de texto, listas, etc...
El área lógica que es el archivo .java donde se define la clase, interacciones con el entorno y responder a los eventos de los usuarios.
Intent
Fragment
Es una porción de un interfaz gráfica, que puede añadirse o eliminarse de una interfaz de forma independiente al resto de elementos de la actividad, y que por puede reutilizarse en otras actividades. esta caracteriztica nos permite manejar contenido de una aplicación sin tener que modificar la aplicación completa como tal sino definir y manipular zonas especificas.
Un
Fragment esta dentro de una
Activity por lo cual su ciclo de vida esta íntimamente relacionado a la misma.
Esto es sumamente útil para desarrollo de aplicaciones en
Android para tablet, donde tenemos mayor área aprovechable que en un teléfono y necesitamos poner diferentes modulos que interactuen entre si.
BroadcastReceiver
Un
BroadcastReceiver es un componente de
Android que permite recibir eventos del sistema y de nuestra propia aplicación.
Android posee muchos eventos dentro del sistema como por ejemplo: llego un sms o un correo, llamada entrante, se desconecto el cargador, bateria baja, etc, etc. Y un
BroadcastReceiver, nos permitirá saber cuando ocurre este tipo de eventos y generar una respuesta a ellos, ya sea crear una actividad, detener la sincronización, leer un mensaje, etc.
También lo podremos utilizar para comunicar componentes dentro de nuestra propia aplicación, como por ejemplo que un servicio averigüe si una actividad esta corriendo, o que le avise a dicha actividad que se termino de sincronizar algo, etc...
ContentProvider
Es un componente que permite compartir información entre aplicaciones. A través de los
ContentProvider podemos leer información de otras aplicaciones o también podemos dejar de manera accesible información a otras aplicaciones.
Esto es sumamente útil para leer por ejemplo los datos de los contactos de las personas que están en nuestro teléfono, leer información de la agendas, etc....
Service
Es un componente de la aplicación que puede correr operaciones largas y no poseen interfaz visual , las cuales corren en el proceso de fondo del sistema e inclusive sigue corriendo cuando el usuario cambia a otra aplicación.
Son sumamente útiles para procesos de sincronización largos, reproducir música, trabajar con sistemas de archivos, etc....
http://developer.android.com/guide/components/services.html
AndroidManifest
Tienen la información esencial de la aplicación y es obligatorio declarar cada componente aquí para poder utilizarlo, además de crearlo extendiendo de su clase correspondiente, es necesario definirlo en el AndroidManifest.xml. Este archivo es esencial en cualquier aplicación
Android.
http://developer.android.com/guide/topics/manifest/manifest-intro.html
Cada componente tiene su propia etiqueta xml:
- Para Activity.
- Para Service.
- Para BroadcastReceiver.
- Para ContentProvider.
Además se definen algunas otras cosas importantes de la aplicación, como el logo, nombre, versión de android que soportara, hardware que soporta la aplicación, etc...
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<compatible-screens />
<supports-gl-texture />
<application>
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data />
</activity-alias>
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<provider>
<grant-uri-permission />
<meta-data />
<path-permission />
</provider>
<uses-library />
</application>
</manifest>