Components d'una aplicació

Per a facilitar la reutilització de codi i agilitar el procés de desenvolupament, les aplicacions d'Android es basen en components. Els components poden ser de quatre tipus:

  1. Activitats (activity). Com hem vist són interfícies visuals que esperen alguna acció de l'usuari. Una aplicació pot tenir una activitat o més, i des d'una activitat se'n poden invocar d'altres i tornar a l'original. Totes les activitats estenen la classe activitat. El contingut visual de cada activitat el proporcionen una sèrie d'objectes derivats de la classe View. L'Android proporciona molts d'aquests objectes predissenyats, com botons, selectors, menús, etc.
  2. Serveis (services). Els serveis no tenen interfície gràfica; són processos que s'executen en segon pla per a fer accions de llarga durada.
  3. Exemple de serveis
    Un exemple és la reproducció d'una cançó. Per a una aplicació reproductora podríem tenir diverses activitats per a mostrar llistes de cançons o un reproductor amb botons, però l'usuari esperarà que la cançó continuï sonant encara en sortir de l'aplicació (acabar l'activitat), per la qual cosa aquesta aplicació haurà de controlar un servei perquè es reprodueixi la música. Qualsevol servei estén la classe Service.
  4. Proveïdors de continguts (content providers). Permet que una aplicació posi certes dades a disposició d'altres aplicacions; aquestes dades poden estar desades en el fitxers, en una base de dades SQLite, en el Web o qualsevol altre lloc que sigui accessible. Per mitjà d'això altres aplicacions poden modificar aquestes dades o preguntar-hi.
  5. Per exemple, un enregistrador de sons pot compartir aquestes dades amb un reproductor de música. Aquestes dades es poden emmagatzemar en el sistema de fitxers o en bases de dades. Per a proveir continguts, s'ha d'estendre la classe ContentProvider.
  6. Receptors d'esdeveniments (broadcast receivers). Aquests components simplement estan escoltant que es produeixin determinats esdeveniments (bateria baixa, canvi de l'idioma del dispositiu, baixada d'una imatge nova, etc.). Qualsevol aplicació pot tenir tants receptors per a tants esdeveniments com vulgui, i cadascun ha d'estendre la classe BroadCastReceiver.
  7. Un exemple és una galeria d'imatges que indexa en l'aplicació qualsevol imatge que l'usuari baixi mitjançant el navegador o una altra aplicació, per la qual cosa està escoltant l'esdeveniment de baixada d'imatge.

Com es pot veure hi ha diverses maneres d'accedir a una aplicació, i comunicar-se entre les aplicacions. Aquest punt és sens dubte un dels punts forts de les aplicacions de l'Android. Per a poder comunicar-se entre aplicacions, i com que s'executen en processos amb permisos diferents, no es pot fer directament, i per a això s'utilitzen les intencions o intents.