cómo programar para android

15
Android 3.1 is here!

Upload: hector-figueroa

Post on 03-Jul-2015

2.481 views

Category:

Documents


0 download

DESCRIPTION

Investigación sobre los aspectos necesarios para programar en Android.

TRANSCRIPT

Page 2: Cómo programar para ANDROID

ÍNDICE

INTRODUCCIÓN ................................................................................................................ 3

GENERALIDADES Y CONCEPTOS ....................................................................................... 4

Mapa de arquitectura ................................................................................................... 4

Application Framework ................................................................................................ 5

Bloques de construcción de Aplicación ........................................................................ 6

ORÍGENES ......................................................................................................................... 7

Adquisición por parte de Google .................................................................................. 8

Estructura del Sistema Operativo Android. .................................................................. 8

REQUERIMIENTOS PARA DESARROLLO DE PROGRAMAS ................................................ 9

Desarrollo ..................................................................................................................... 9

Programación ............................................................................................................... 9

Arquitectura ................................................................................................................ 10

Diagrama de Android. ................................................................................................. 10

PROGRAMAS BÁSICOS .................................................................................................... 11

NadaList .......................................................................................................................... 12

ESQUELETO DE UNA APLICACIÓN PARA ANDROID ........................................................ 13

INSTALACIÓN DE APLICATIVOS ....................................................................................... 14

Como instalar el SDK de Android ................................................................................ 14

CONCLUSIÓN .................................................................................................................. 15

Page 3: Cómo programar para ANDROID

INTRODUCCIÓN

El siguiente trabajo ha sido creado para dar a conocer a sus lectores los aspectos

generales de la programación en Android, desde cómo instalar los aplicativos

necesarios para su funcionalidad, hasta cómo crear su primera aplicación.

También se darán a conocer algunos conceptos básicos, cómo fue su origen y cómo se

compone la estructura del sistema operativo Android.

Android es un sistema operativo basado en Linux para dispositivos móviles, como

teléfonos inteligentes (“Smartphones” en inglés) y las tablets que son básicamente

computadoras portátiles con pantalla táctil. En el cual, los programas están escritos en

el lenguaje de programación Java, es decir que para aprender a programar en

ANDROID se necesitan tener conocimientos del lenguaje JAVA.

Page 4: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

4

GENERALIDADES Y CONCEPTOS

Android es un sistema operativo basado en Linux para dispositivos móviles, como

teléfonos inteligentes y tablets. Fue desarrollado inicialmente por Android Inc., una

firma comprada por Google en el 2005. Es el principal producto de la Open Handset

Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y

operadores de servicio.

Las unidades vendidas de teléfonos inteligentes con Android se ubican en el primer

puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010, con una

cuota de mercado de 43,6% en el tercer trimestre.

Mapa de arquitectura

Los mapas de arquitectura tienen mucha importancia. Estos mapas explican las capas

de las que está formada el sistema y la dependencia entre ellas. Cada una de las capas

se encapsula y provee una interfaz de comunicación suficiente para que cada capa

cumpla con su requisito obviando las de la capa anterior. Además también muestra las

herramientas que te ofrece la arquitectura.

Pantalla inicial de Android 2.3

Page 5: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

5

En el caso de Android la capa inferior, Linux Kernel, es la encargada de gestionar el

Hardware. Un nivel más arriba, encontramos las librerías de sistema operativo

necesitan la abstracción que les provee el kernel. Al mismo nivel pero separas de las

librerías encontramos Android Runtime encargados de gestionar peticiones de las

aplicaciones y ejecutarlas. Por encima de estas dos encontramos la que nos interesa a

nosotros Application Framework, que nos da todas las clases, recursos necesarios para

que nuestras aplicaciones que corren en la capa Application pueda ser ejecutada en

Android.

En conclusión, el mapa de arquitectura es básico para saber dónde se sitúa nuestra

aplicación y que tenemos debajo.

Application Framework

Esta capa es la que nos interesa, proporciona los bloques de construcción que se utiliza

para crear aplicaciones. Las partes más interesantes de esta capa son los siguientes:

Activity Manager: Este controla el ciclo de vida de aplicaciones y mantiene un

"Backstack" para que el usuario pueda utilizar otras aplicaciones mientras otras

siguen ejecutandose.

Content providers: Estos objetos encapsular los datos que hay que compartidos

entre las aplicaciones, como los contactos.

Page 6: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

6

Resource Manager: Los recursos son algo que va con su programa que no es

código.

Location Manager: Android siempre sabe tu localización.

Notification manager: Eventos como mensajes recibidos, citas, alertas de

proximidad, las invasiones exóticas, y más se pueden presentar en una manera

discreta para el usuario.

Aunque tampoco hay que olvidar la gestión de llamadas, gestor de paquetes y el

gestor de pantallas.

Bloques de construcción de Aplicación

Activity

Una actividad es una sola, se centra en acciones que el usuario pueda hacer. Cuando

necesitas interaccionar con el usuario debes usar una actividad, esta se encarga de

crear una ventana y gestionarla. Para no dar el toston hablaré del más importante de

sus metodos y la idea de cómo funciona.

OnCreate: es donde se inicializa la actividad. Se suele llamar setContentView, con un

diseño del interfaz de usuario (definido en el xml) de recursos, y la utilización de

findViewById para recuperar los widgets en el que la interfaz de usuario que usted

necesita para interactuar con programación.

Views

Una visión es un objeto que sabe cómo aparecer en pantalla. Se usa cuando necesitas

crear algún gráfico diferente a los que vienen con el SDK.

Intents

Una intención es un mensaje simple objeto que representa una "intención" de hacer

algo. Por ejemplo, si su aplicación necesita para mostrar una página web, expresa su

"intención" para ver la URI de Intención mediante la creación de una instancia y que la

entrega fuera del sistema. El sistema detecta algún otro fragmento de código (en este

caso, el navegador) que sabe cómo manejar esa intención, y lo ejecuta. Intenta

también se puede utilizar para transmitir eventos interesantes (por ejemplo, una

notificación) en todo el sistema.

Page 7: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

7

Services

Un servicio es un conjunto de código que se ejecuta en segundo plano.

Notifications

Una notificación es un pequeño icono que aparece en la barra de estado. Los usuarios

pueden interactuar con este icono para recibir información. Los más conocidos son las

notificaciones de mensajes SMS, llamadas y correo de voz, pero las aplicaciones

pueden crear sus propias.

ContentProviders

Un ContentProvider es un almacén de datos que proporciona acceso a los datos en el

dispositivo. La aplicación puede tener acceso a datos de otras aplicaciones que tienen

creado su ContentProvider.

Hay que tener claro los tipos de bloques, su función para poder usarlos cuando sean

necesarios en la aplicación.

ORÍGENES

El anuncio del sistema Android se realizó el 5 de noviembre de 2007 junto con la

creación de la Open Handset Alliance, un consorcio de 78 compañías de hardware,

software y telecomunicaciones dedicadas al desarrollo de estándares abiertos para

dispositivos móviles.

Google liberó la mayoría del código de Android bajo la licencia Apache, una licencia

libre y de código abierto. Actualmente Android posee el 32,9% de cuota de mercado a

escala mundial de los teléfonos inteligentes, por delante de Symbian que tiene 30,6%.

En tercer lugar se sitúa Apple con cuota de mercado del 16%.

Page 8: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

8

Adquisición por parte de Google

En julio de 2005, Google adquirió Android Inc., una pequeña compañía de Palo Alto,

California. Entre los cofundadores de Android que se fueron a trabajar a Google están

Andy Rubin (co-fundador de Danger), Rich Miner (co-fundador de Wildfire

Communications, Inc.), Nick Sears (alguna vez VP en T-Mobile), y Chris White (quien

encabezó el diseño y el desarrollo de la interfaz en WebTV). En ese entonces, poco se

sabía de las funciones de Android, Inc. fuera que desarrollaban software para teléfonos

móviles. Esto dio pie a rumores de que Google estaba planeando entrar en el mercado

de los teléfonos móviles.

En Google, el equipo liderado por Rubin desarrolló una plataforma para dispositivos

móviles basada en el kernel de Linux que fue promocionado como a fabricantes de

dispositivos y operadores con la promesa de proveer un sistema flexible y actualizable.

Se informó que Google había alineado ya una serie de fabricantes de hardware y

software y señaló a los operadores que estaba abierto a diversos grados de

cooperación por su parte.

La especulación sobre que el sistema Android de Google entraría en el mercado de la

telefonía móvil se incrementó en diciembre de 2006. Reportes de BBC y The Wall

Street Journal señalaron que Google quería sus servicios de búsqueda y aplicaciones en

teléfonos móviles y estaba muy empeñado en ello. Medios impresos y en línea pronto

reportaron que Google estaba desarrollando un teléfono con su marca.

En septiembre de 2007, "InformationWeek" difundió un estudio de Evalueserve que

reportaba que Google había solicitado diversas patentes en el área de la telefonía

móvil.

Estructura del Sistema Operativo Android.

La estructura del sistema operativo Android se compone de aplicaciones que se

ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de

las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de

ejecución.

Page 9: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

9

Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica

(surface manager), un framework OpenCore, una base de datos relacional SQLite, una

API gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL,

SSL y una biblioteca estándar de C Glibc. El sistema operativo está compuesto por 12

millones de líneas de código, incluyendo 3 millones de líneas de XML, 2,8 millones de

líneas de lenguaje C, 2,1 millones de líneas de Java y 1,75 millones de líneas de C++.

REQUERIMIENTOS PARA DESARROLLO DE PROGRAMAS

Desarrollo

Android, al contrario que otros sistemas operativos para dispositivos móviles como iOS

o Windows Phone, se desarrolla de forma abierta y se puede acceder tanto al código

fuente como al listado de incidencias donde se pueden ver problemas aún no resueltos

y reportar problemas nuevos.

El que se tenga acceso al código fuente no significa que se pueda tener siempre la

última versión de Android en determinado móvil, porque el código para soportar el

hardware (controladores) de cada fabricante normalmente no es público, así que

faltaría un «trozo» básico del firmware para poder hacerlo funcionar en dicho

terminal, y porque que las nuevas versiones de Android suelen requerir más recursos,

por lo que los modelos más antiguos quedan descartados por razones de memoria

(RAM), velocidad de procesador, etc.

Programación

En la actualidad existen más de 200.000 aplicaciones para Android y se estima que

sobre 300.000 teléfonos móviles se activan diariamente.

La tienda de aplicaciones Android conocida como «Android market» retribuye a los

desarrolladores el 70% del precio de su aplicación. Asimismo, el desarrollo de

aplicaciones para Android no requiere aprender lenguajes complejos de programación.

Todo lo que se necesita es conocimiento aceptable de Java y estar en posesión del kit

de desarrollo de software o «SDK» provisto por Google el cual, se puede descargar

gratuitamente.

Page 10: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

10

Arquitectura

Los componentes principales del sistema operativo de Android (cada sección se

describe en detalle):

Aplicaciones: las aplicaciones base incluyen un cliente de correo electrónico, programa

de SMS, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones están

escritas en lenguaje de programación Java.

Marco de trabajo de aplicaciones: los desarrolladores tienen acceso completo a los

mismos APIs del framework usados por las aplicaciones base. La arquitectura está

diseñada para simplificar la reutilización de componentes; cualquier aplicación puede

publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas

capacidades (sujeto a reglas de seguridad del framework). Este mismo mecanismo

permite que los componentes sean reemplazados por el usuario.

Diagrama de Android.

Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas por varios

componentes del sistema. Estas características se exponen a los desarrolladores a

través del marco de trabajo de aplicaciones de Android; algunas son: System C library

(implementación biblioteca C estándar), bibliotecas de medios, bibliotecas de gráficos,

3D y SQLite, entre otras.

Runtime de Android: Android incluye un set de bibliotecas base que proporcionan la

mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java.

Cada aplicación Android corre su propio proceso, con su propia instancia de la

máquina virtual Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr

múltiples máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato

Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina

Virtual está basada en registros y corre clases compiladas por el compilador de Java

que han sido transformadas al formato .dex por la herramienta incluida "dx".

Núcleo Linux: Android depende de Linux para los servicios base del sistema como

seguridad, gestión de memoria, gestión de procesos, pila de red y modelo de

controladores. El núcleo también actúa como una capa de abstracción entre el

hardware y el resto de la pila de software.

Page 11: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

11

PROGRAMAS BÁSICOS

1. NadaList. Un programa para gestionar notas en el teléfono donde podemos

categorizarlas, ponerles una prioridad, listar, filtrar, etc.

2. TableDB. Una librería en Java para Android mediante la cual podremos administrar

nuestra base de datos del programa de una manera sencilla y eficaz, todo a través

de archivos XML donde se escribe la estructura de las tablas.

Mediante esta librería se podrá gestionar una base de datos SQLite dentro Android

de una manera sencilla. Simplemente tendremos que crear un archivo XML y la librería

se encargará de crear las tablas y ofrecernos una API mediante la cual podremos crear,

modificar y eliminar registros de una manera sencilla y eficaz en nuestra aplicación. A

continuación se explica cómo integrar esta librería dentro de nuestro proyecto y algunos

ejemplos de cómo podemos usarla:

Guardar la estructura en archivos XML

Con TableDB no tenemos que crear las sentencias SQL para creación de tablas, los archivos

XML se encargan de esta tarea. El sistema se encargará, la primera vez que se abre la

aplicación, de crear la base de datos y las tablas, además de tener la posibilidad de realizar

una primera carga de registros en las tablas.

Page 12: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

12

Para ello TableDB trabaja con dos archivos XML que deben de ser guardados dentro de los

recursos de la aplicación en la carpeta "xml" con un nombre específico. Estos son:

"tables.xml": contiene la estructura de las tablas

"initialvalues.xml": contiene los registros que queremos que se cargen la primera

vez en las tablas

NadaList

NadaList es una pequeña utilidad mediante la cual podremos guardar notas en nuestro

móvil con Android. Este programa nace como una ampliación del Tutorial

Oficial de Android mejorando las posibilidades de ese ejemplo,

además de hacer uso de TableDB para la gestión de la Base de

Datos en SQLite.

Actualmente en las notas podemos guardar la siguiente

información:

Título

Descripción de la nota

Categoría. Podremos crear nuestras propias categorías en el

programa

Prioridad. Se le podrá dar una prioridad a las notas del 1 al 5

Geolocalizar las notas. Podemos buscar la posición GPS en cualquier momento

y añadirla como información a una nota. Posteriormente podremos ver en un

mapa la posición.

En el programa podemos acceder a las notas mediante un listado que podremos filtrar

por categorías y que podemos ordenar por diferentes criterios.

Podrás instalar el programa en el emulador. Simplemente entra en el directorio "tools" del

SDK desde línea de comandos y escribe:

$ adb install directorio_programa/NadaList.apk

Page 13: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

13

ESQUELETO DE UNA APLICACIÓN PARA ANDROID

Una aplicación de Android tiene el siguiente esqueleto básico, que hay que

comprender para saber adónde ir cuando quieres crear alguna app:

Directorio Assets: En este directorio se ponen cualquier tipo de fichero externo que

sea necesario en cualquier momento por la aplicación por ejemplo: HTML para el Web

Browser sin necesidad de conexión, tipografias, jar’s de terceros. Es un repositorio de

archivos.

Directorio Bin: Los binarios compilados de la aplicación.

Directorio Res: Los recursos (resources), formada por 3 carpetas:

Drawable: ficheros de imágenes.

Layout: Ficheros de diseño de las interfaz de usuario. Ficheros xml que describen las

interfaces.

Values: definición de variables. Ficheros xml en cada uno de ellos constantes, se

agrupa por temática, es decir: definición de colores, definición de texto, etc.

Directorio Src: Aquí va todo el código Java de la aplicación.

.project,.classpath: ficheros necesarios para abrir el proyecto con Eclipse.

AndroidManifest.xml: es un archivo requerido para cada aplicación. Describe los

valores globales de su paquete, incluida la aplicación, componentes (actividades,

servicios, etc), las clases para cada uno de los componentes, qué tipo de datos puede

manejar cada uno, y donde puede ser lanzado.

Page 14: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

14

INSTALACIÓN DE APLICATIVOS

Como instalar el SDK de Android

Instalaremos el SDK de Android sobre la plataforma de desarrollo Eclipse. Esto puede

realizarse con todas las plataformas MAC, WIN, LINUX. Ya que Eclipse va sobre Java.

1. Instalar Eclipse: http://www.eclipse.org/downloads/

Con descargar la versión Eclipse IDE for Java Developers (85 MB) es suficiente.

Una vez descargado, extraer el zip en la carpeta deseada.

2. Asegurarse de tener instalado Java en la máquina, sino Eclipse no funcionará. Se

puede Descargar acá: http://java.sun.com/javase/downloads/index.jsp

3. Instalar el plugin de Android para Eclipse:

3.1- Añadir Site a instalar plugin: Ir al menu Help/Software Updates aparecerá una

ventana ir a la pestaña Avaliable Updates, Add site y añadir la siguiente

dirección: https://dl-ssl.google.com/android/eclipse/ (Estos pasos dependen de la

versión de Eclipse)

3.2- Instalar el plugin: Una vez añadido la url, podrás seleccionar Developer Tools y

darle a instalar.

IMPORTANTE: Una vez instalado tienes que reiniciar Eclipse para aplicar los

cambios.

3.3- Descargar SDK Android: http://developer.android.com/sdk/1.5_r2/index.html

IMPORTANTE: El paso 3.4 es fundamental o Eclipse dará el siguiente error

3.4- Añadir la ruta del SDK en eclipse: Ir al menu Window/Preferences y en la

ventana que aparecerá, apartado Android añadir la ruta.

4. Ahora Ya puedes crear un proyecto de Android con Eclipse

Page 15: Cómo programar para ANDROID

Programación en ANDROID. UFG – Ingeniería y Arquitectura.

Héctor A. Alvarenga. Ingeniería de Software I.

15

CONCLUSIÓN

Se puede concluir que Android es uno de los sistemas operativos para teléfonos

inteligentes más usados y el de mayor popularidad en el mundo.

Programar para Android puede parecer algo fácil, pero en realidad tiene su

complejidad como todos los lenguajes de programación.

Se puede considerar a Android como una de las industrias que más dinero da, ya que

cada día se pueden observar más teléfonos móviles con una tecnología muy avanzada,

también los gadgets, como los iPad, iPod Touch, TabletsPC, etc. Y la mayoría de estos,

utilizan el sistema operativo Android.