Ir al contenido principal

Conceptos básicos de programación para Android [#AndroidDev]

Android Dev

Android combina la ubicuidad de los teléfonos celulares, la emoción del software de código abierto y el respaldo corporativo de empresas como Google, Samsung, HTC, Verizon, China Mobile y AT&T. El resultado de esto es una plataforma móvil que no te puedes permitir no aprender.

Afortunadamente, comenzar a desarrollar para Android es fácil. Incluso ni siquiera es necesario tener acceso a un dispositivo con Android instalado, únicamente necesitas tener una computadora en la cual puedas instalar las herramientas de desarrollo y un emulador.

Los Conceptos

Ahora que ya tenemos una idea de lo que es Android, es necesario entender cómo funciona. Algunos de los conceptos te serán familiares, como el kernel de Linux, SQL, etc. Algunos otros completamente extraños, como la idea de Android del ciclo de vida de una aplicación. Ahondemos un poco.

Arquitectura del sistema de Android [Arquitectura de Android]

El kernel Linux

Android está construido sobre el kernel de Linux. Linux provee la capa de abstracción de hardware para Android permitiendo que este sea transferido / portado a una gran variedad de plataformas en el futuro.

Internamente, Android utiliza Linux para su manejo de memoria, control de procesos, trabajo con redes y otros servicios relativos al sistema operativo. El usuario de un teléfono Android jamás verá Linux en su dispositivo y los programas que desarrolles nunca podrán utilizar sus comandos directamente. Como desarrollador tú debes saber que ahí está.

Las librerías nativas

Las librerías nativas son contenidas en la capa inmediata superior al kernel de Linux. Estas librerías compartidas están escritas en C o C++, fueron compiladas para la arquitectura de hardware utilizada por el dispositivo y preinstaladas en él por el proveedor del mismo.

Algunas de las más importantes son:

  • Surface Manager: Es el  manejador de ventanas compuesto para Android (similar a Metro, Vista o Compiz).
  • Gráficos en 2D y 3D: Elementos de dos y tres dimensiones que pueden ser combinados en una sola interfaz de Android.
  • Media codecs: Utilizada para grabación y reproducción de diversos formatos de medios (como AAC, AVC, H.564, MP3, MP4, etc)
  • Base de datos SQL: Android incluye el motor de base de datos SQLite que puede ser utilizado para almacenar datos en el dispositivo.
  • Motor de navegación: Para mostrar el contenido HTML, Android utiliza la librería WebKit.

La máquina virtual

Al mismo nivel que las librerías nativas encontramos la máquina virtual Dalvik que es la implementación Java de Google optimizada para los dispositivos móviles. Todo el código que escribas en Android será escrito en Java que a su vez se ejecutará en Dalvik.

Application Framework

Por encima de las librerías nativas y de la máquina virtual se encuentra el Application Framework. Esta capa provee los bloques de construcción que se utilizan para crear las aplicaciones. Este framework viene preinstalado con Android pero puede ser expandido agregando componentes personalizados.

Las partes más importantes de este framework son:

  • Activity Manager: Controla el ciclo de vida de la aplicación.
  • Content providers: Encapsulan datos que se comparten entre aplicaciones.
  • Resource manager: Todo lo que viene con una aplicación que no sea código (imágenes, videos, etc).
  • Location manager: Para saber en qué ubicación geográfica se encuentra el dispositivo (GPS, servicios de ubicación).
  • Notification manager: Eventos tales como la llegada de un mensaje de texto, citas, alertas, etc.

Aplicaciones y Widgets

La capa más alta en la arquitectura de Android es la que contiene las aplicaciones y widgets. Los usuarios finales verán únicamente estos programas, sin darse cuenta de todo lo que pasa tras bambalinas.

Las aplicaciones son programas que pueden abarcar toda la pantalla e interactuar con el usuario. Por otra parte, los widgets son programas que operan únicamente en una pequeña parte de la pantalla principal.

Cuando una persona adquiere un teléfono con Android, este viene con un serie de aplicaciones por defecto tales como las siguientes:

  • Marcador de teléfonos
  • Mensajes de texto
  • Correo electrónico
  • Contactos
  • Agenda
  • Google Play
  • etc

¿Qué tengo que hacer para comenzar a escribir aplicaciones para Android?

Ya que tienes claros los conceptos básicos de la arquitectura de Android estás a sólo un paso de comenzar a escribir aplicaciones. Este paso es la preparación del entorno de desarrollo.

El entorno

Antes de poner las manos sobre el código es necesario preparar el entorno completo que consta de las siguientes partes:

  1. Java Development Kit (JDK)
  2. Eclipse IDE
  3. Android SDK Tools
  4. Plugin ADT para Eclipse
  5. Configuración de un dispositivo virtual (AVD)

En Cristalab hay un excelente artículo que te lleva paso a paso en la instalación y configuración de todo lo anterior por lo que te recomiendo que lo visites. Aquí el link: 


Herramientas para comenzar a programar para Android

Hasta aquí llegamos en este artículo. Si tienes dudas, preguntas o comentarios te invito a que lo compartas al final del artículo en la sección de comentarios.

Si la información te fue útil te invito a que me ayudes a difundirla desde los botones sociales (Twitter, Facebook, Google+).

De igual manera puedes suscribirte al blog original feed  para que los nuevos artículos lleguen a tu bandeja de correo o lector de Feeds favorito.

Comentarios

Entradas más populares de este blog

3 sencillos pasos para tramitar la ayuda por desempleo de la AFORE

¿Tienes dinero ahorrado en tu AFORE y en este momento no estás trabajando o estás trabajando pero no tienes seguro social?
Si respondiste sí a la pregunta anterior entonces hay una buena noticia para ti: puedes retirar una parte del dinero que tienes ahorrado. Y lo mejor, es muy sencillo.
En este artículo te diré paso a paso qué hacer para obtener ese dinero, sin tecnicismos legales ni nada por el estilo, simple y sencillamente lo que necesitas saber.
Paso Número 1: Obtener los últimos 2 estados de cuenta de tu Afore
Esto en la mayoría de los casos es sumamente sencillo ya que dichos estados de cuenta llegan directamente al domicilio del ahorrador, si este es tu caso puedes saltar lo restante en este punto y continuar con el paso número 2, en caso contrario sigue leyendo…

Si no tienes tus estados de cuenta debes ponerte en contacto con la empresa encargada de administrar tu ahorro para que te los proporcione, normalmente te van a pedir una identificación oficial, comprobante de domici…

Conectar una base de datos en MySQL con NetBeans

NetBeans es una plataforma para el desarrollo de aplicaciones de escritorio usando Java y a un Entorno integrado de desarrollo (IDE) desarrollado usando la Plataforma NetBeans.

Si eres un programador y desarrollas tus aplicaciones en Java seguramente necesitarás conectar una base de datos tipo MySQL a este entorno algún día, bueno, si lo necesitas ahora, he aquí una explicación paso a paso de cómo conectar ambas herramientas.

4 extraordinarias aplicaciones espía para Android

Le andas haciendo al James Bond y necesitas grabar video, voz o tomar fotos desde tu dispositivo Android sin ser notado? Aquí 4 excelentes aplicaciones que facilitarán tus hazañas de 007 en menos de lo que canta un gallo.

Conexión, consulta y ejecución de sentencias en MySQL con Java

Anteriormente escribí este mismo artículo pero para bases de datos en Oracle. En este artículo prácticamente me copio y pego para explicar paso a paso cómo realizar la conexión a MySQL en Java, así como la forma de realizar consultas a los registros existentes y ejecutar sentencias de inserción, borrado y actualización de datos.Al final del artículo tendremos una clase que encapsulará todos los procedimientos necesarios para trabajar con la base de datos.

c606 c6nf5g4r6 e3 tec3ad6 [Como configurar el teclado]

¿Problemas al escribir con el teclado? ¿Tratas de escribir la letra ‘o’ y sale el número ‘6’ o algo por el estilo? La solución puede ser más simple de lo que parece.

La solución a tu problema tras el salto...