Upload
phamdang
View
220
Download
0
Embed Size (px)
Citation preview
Desarrollo de aplicaciones
para dispositivos móviles (2)M.C. Ana Cristina Palacios García
Introducción (1)
Los Smartphones y otros dispositivos móviles basados en touch están de
moda en estos días.
Su popularidad se debe a su habilidad para ejecutar apps.
Aunque los iPhone y iPads son líderes en el mercado con su creciente
colección de aplicaciones basadas en Objective-C, los smartphones
basados en Android con su colección de aplicaciones basadas en Java
están siendo un fuerte competidor [1].
No solo los desarrolladores de iPhone/iPad están haciendo dinero con sus
aplicaciones, muchos desarrolladores Android también lo están haciendo
al vender aplicaciones similares.
Introducción (2)
Según Tech websites (www.theregister.co.uk/), algunos desarrolladores Androidestán haciendo mucho dinero.
El pensamiento actual según el clima económico podría llevarnos aconvertirnos en un desarrollador Android y ganar dinero.
Si tienes buenas ideas, perseverancia, y talento artístico (o conoces del talento dealgunos individuos), te encuentras en el camino hacia alcanzar ese objetivo.
Nota: Una buena razón para considerar desarrollar aplicaciones para Androidrespecto a desarrollar aplicaciones para iPhone/iPad tiene que ver con loscostos iniciales.
No es necesario comprar una Mac en la cual desarrollar aplicaciones Android, yaque la Mac es requerida para desarrollar aplicaciones para iPhone/iPad.
La computadora con la que se puede trabajar puede tener instalado Windows, Linuxo Unix para desarrollar aplicaciones Android.
Introducción (3)
La parte más importante, es que se requiere tener una comprensión sólida
del lenguaje de programación Java y de sus APIs antes de pasar a
Android.
Lo anterior se debe a que las aplicaciones Android se escriben en Java e
interactúan con muchos de los estándares de las APIs de Java (como APIs para
threading, input/output).
Iniciando con Java
Android es una pila de software de Google que incluye un sistema
operativo y middleware.
Con la ayuda de Java, el sistema operativo ejecuta las aplicaciones
específicamente diseñadas, conocidas como Android apps.
¿Qué es java?
Java es un lenguaje y una plataforma desarrollada por Sun Microsystems.
Es un lenguaje en el que los desarrolladores expresan código fuente (programas
en texto).
Es una sintaxis (reglas para combinar símbolos dentro de las características del
lenguaje).
Surge después de C y C++ para reducir la curva de aprendizaje de los
desarrolladores de C/C++.
Sun organizo a Java en tres ediciones principales:
Java SE
Java EE
Java ME
Java es una plataforma (1)
Java es una plataforma para ejecutar programas.
En contraste con las plataformas que consisten en procesadores físicos(como el procesador Intel) y un sistema operativo (como Linux), laplataforma Java consiste en una máquina virtual y un entorno deejecución asociado.
La máquina virtual es un procesador basado en software que presenta supropio conjunto de instrucciones.
El entorno de ejecución asociado consiste en un conjunto de librerías paraprogramas de ejecución, e interactúa con el sistema operativo.
Incluye un amplio conjunto de librerías que realizan tareas comunes, como:operaciones matemáticas (trigonometría) y comunicaciones por red.
A la librería se le conoce como estándar class library.
Java es una plataforma (2)
El Java compiler es un programa especial que traduce el código fuente a
instrucciones (y a datos asociados) que serán ejecutadas por la máquina
virtual.
A esas instrucciones se les conoce como bytecode.
Java SE, Java EE, Java ME y Android
(1)
Los desarrolladores usan diferentes ediciones de la plataforma Java para crearprogramas en Java que se ejecuten en computadoras de escritorio, webbrowsers, dispositivos móviles, y en dispositivos embebidos.
Java Platform, Standard Edition (Java SE):
Plataforma Java para desarrollar aplicaciones que se ejecutan en equipos deescritorio independientes (stand-alone programs).
También se utiliza para desarrollar applets, que son programas que se ejecutan en elcontext de un web browser.
Java Platform, Enterprise Edition (Java EE):
La plataforma de Java para desarrollo de aplicaciones y servlets orientados a laempresa, los cuales son programas para servidores que incluyen la API de Java EEllamada Servlet API.
Se construyó sobre Java SE.
Java SE, Java EE, Java ME y Android
(2)
Java Patform, Micro Edition (Java ME):
Plataforma Java para desarrollar MIDlets, que son programas que se ejecutan
en dispositivos de información móviles, y Xlets, que son programas que corren en
dispositivos embebidos.
Los desarrolladores usan una edición especial creada por Google para
crear aplicaciones Android que se ejecuten en dispositivos habilitados con
Android.
A esta edición se le conoce como Android platform.
La plataforma de Google para Android consiste en un conjunto amplio de
librerías de Java (basadas principalmente en Java SE) y de una máquina
virtual conocida como Dalvik.
Instalar y Explorar el JDK (1)
Java Runtime Environment (JRE):
Implementa la plataforma Java SE y hace posible el ejecutar programas de
Java.
JRE (público) puede descargarse desde la página web:
http://java.sun.com/javase/downloads/index.jsp.
JRE público no permite desarrollar programas Java, para ello, es necesario
descargar e instalar el Java SE Development Kit (JDK), que contiene las
herramientas de desarrollo (incluye el compilador de Java) y una versión
privada de JRE.
11
Instalar y Explorar el JDK (2)
El instalador del JDK instala el JDK en un directorio, y es posible instalar el
JRE en otro directorio.
Es probable que después de instalar el JDK, sea necesario el agregar el
directorio bin a la variable de entorno PATH de la computadora, lo cual
permitirá ejecutar las herramientas JDK desde cualquier directorio en tu sistema
de archivos.
Una vez instalado el JDK el directorio principal contendrá varios archivos:
README.html, que proporciona información sobre el JDK.
src.zip, que proporciona las librerías de clases estándar (código fuente).
Directorio bin, que contiene varias herramientas JDK, incluyendo la herramienta
del compilador de Java.
Directorio jre, que contiene la copia privada del JRE, tal que permite ejecutar
programas Java sin tener instalado el JRE público.
Directorio lib, que contiene los archivos de biblioteca usados por la herramienta
JDK.
12
Instalar y Explorar el JDK (3)
Algunas de las herramientas más usadas del directorio bin son:
javac, es el compilador de Java. Herramienta que inicia la máquina virtual.
java, el que carga aplicaciones Java.
javadoc, generador de documentación Java.
jar, java archive creator, updater and extractor (crea, actualiza y extrae
archivos Java).
13
14
15
Instalación y exploración de dos IDEs
populares
Para proyectos pequeños puede funcionar el trabajar en línea decomandos usando la herramienta JDK, sin embargo, eso no resultaconveniente para proyectos grandes, ya que resulta complejo manejarlossin la ayuda de un entorno integrado de desarrollo (IDE – IntegratedDevelopment Environment).
Un IDE consiste de:
Un manejador de proyectos para llevar el control de los archivos del proyecto.
Un editor de texto para capturar y editar código fuente.
Un debugger para detectar errores.
Entre otras características.
IDEs populares:
NetBeans.
Eclipse.
16
IDE de NetBeans
IDE de NetBeans es de código abierto (open source), basado en Java
para desarrollar programas en Java y en otros lenguajes (como PHP, Ruby,
C++, Groovy y Scala).
Para descargar e instalar el IDE es necesario considerar lo siguiente:
Seleccionar el IDE apropiado en función del Lenguaje (Inglés).
Seleccionar la plataforma (Windows).
17
18
Introducción (1)
Los MIDlets se ejecutan en la máquina virtual de Java, abstraen el hardware ypermiten a los desarrolladores el crear aplicaciones que se ejecutan en unaamplia variedad de hardware que soporta Java.
Desafortunadamente, la conveniencia de usar los MIDlets genera como resultadouna restricción en cuanto al acceso al hardware del dispositivo.
En el desarrollo móvil, se considera normal para aplicaciones desarrolladas porterceras partes el recibir accesos distintos al hardware y derechos de ejecuciónvariables, comparado con aplicaciones nativas desarrolladas por losfabricantes de los móviles.
La introducción de los MIDlets de Java ha incrementado la cantidad dedesarrolladores, pero la carencia en cuanto al acceso a bajo nivel sobre elhardware y sobre el espacio de ejecución ha hecho que la mayoría de lasaplicaciones móviles sean programas de escritorio diseñados para ejecutarseen pequeñas pantallas, y no toman ventaja de la movilidad inherente de laplataforma portátil.
19
Introducción (2)
Android se ubica sobre una ola de sistemas operativos móviles diseñados para incrementar el potencial del hardware.
Windows Mobile y los iPhones de Apple proporcionan un entorno de desarrollode aplicaciones simplificado y rico en características.
Se desarrollan en sistemas operativos propietarios que priorizan el uso de aplicacionesnativas sobre aquellas aplicaciones creadas por terceras partes, y restringen lacomunicación entre aplicaciones y datos nativos del teléfono.
Android ofrece nuevas posibilidades para aplicaciones móviles, ofrece unentorno de desarrollo abierto para construir aplicaciones y está basado en unkernel libre de Linux.
El hardware es accesible para todas las aplicaciones a través de una serie de librerías(API’s) y aplicaciones de interacción.
En Android todas las aplicaciones tienen la misma jerarquía.
Los usuarios pueden eliminar o reemplazar cualquier aplicación nativa con unadesarrollada por alternos.
20
Lo que es y no es Android
Las aplicaciones de Android están escritas usando Java, pero no se
ejecutan dentro de la máquina virtual de Java ME, y las clases compiladas
en Java y sus ejecutables no se ejecutan naturalmente en Android.
Android se ejecuta sobre un kernel de Linux.
Además, contiene la descripción completa del software del sistema
operativo, librerías API, y las aplicaciones mismas.
Incluye las referencias de los fabricantes de los teléfonos móviles y ha sido
diseñado para dar soporte a muchos dispositivos alternos.
Android es software libre producido y soportado por Open Handset
Alliance y diseñado para trabajar en cualquier dispositivo móvil que
cumpla con los requerimientos.
21
Android es una plataforma abierta para
desarrollo de aplicaciones móviles
Android se compone de varias partes necesarias y dependientes incluyendo:
Referencia del diseño del hardware, que describe las capacidades requeridas de undispositivo móvil para dar soporte al software.
Sistema operativo Linux, que proporciona una interfaz de bajo nivel con el hardware,con el manejo de la memoria, y el control de procesos, todo optimizado paradispositivos móviles.
Librerías de código abierto para el desarrollo de aplicaciones incluyendo SQLite,WebKit, OpenGL, y un manejador de medios.
Un run time empleado para ejecutar y hospedar aplicaciones Android, incluye lamáquina virtual Dalvik y librerías que proporcionan una funcionalidad especifica aAndroid.
El run time es desarrollado para ser pequeño y eficiente para ser usado en dispositivos móviles.
Un framework usado para hospedar y cargar aplicaciones.
Un kit de desarrollo de software para crear aplicaciones, incluye herramientas, plug-ins, y documentación.
22
Aplicaciones nativas de Android
Algunas son:
Un cliente de e-mail compatible con Gmail.
Una aplicación para el manejo de SMS.
Un manejador de información personal, que incluye calendario y lista de contactos,
Google Maps (Street View, bussines finder, driving directions, satellite view y trafficconditions).
Un navegador web.
Un cliente para mensajes instantáneos.
Reproductor de música y visor de imágenes.
Android Marketplace.
Amazon MP3.
…
23
Características del SDK de Android (1)
No es necesaria una licencia o pago de cuotas por desarrollar aplicaciones.
Acceso al hardware Wi-Fi.
Redes GSM, EDGE y 3G para telefonía o transferencia de datos, permiten elhacer y recibir llamadas o mensajes, o enviar y recibir datos entre redesmóviles.
APIs para manejar servicios de localización como el GPS.
Control completo del hardware de multimedia (playback, grabar usando lacámara y el micrófono).
APIs para el acelerómetro y el compas.
Tiendas de datos compartidos.
WebKit-based browser.
24
Características del SDK de Android (2)
Soporte completo para aplicaciones que integran control de Mapas como
parte de sus interfaces.
Soporte P2P (Peer-to-peer) para Google Talk.
Hardware para optimizar gráficos integrado incluye la librería 2D y soporte
para gráficos 3D usando OpenGL ES.
Librerías multimedia para reproducir y grabar audio y video.
Framework que permite reutilizar componentes de aplicaciones y
reemplazar aplicaciones nativas.
25
El acceso al hardware incluye
Cámara, GPS y Acelerómetro
Android incluye librerías para simplificar el desarrollo de aplicaciones que
involucra dispositivos del hardware.
Con estas librerías no es necesario hacer implementaciones específicas
para cada dispositivo, de tal forma que las aplicaciones funcionen en
cualquier hardware que soporte el software de Android.
El SDK de Android incluye APIs para manejar la localización (como el GPS),
cámara, conexiones a internet, Wi-Fi, Bluetooth, acelerómetros, touch
screen, y manejo de batería.
26
La maquina virtual Dalvik
Es uno de los elementos clave de Android.
Diseñada para asegurar que las múltiples instancias se ejecutan
eficientemente en un solo dispositivo.
Dalvik VM usa el kernel de Linux para manejar la funcionalidad a bajo nivel
incluyendo, seguridad, hilos, procesos y manejo de memoria.
Es posible escribir aplicaciones C/C++ que se ejecuten directamente en el
sistema operativo.
Aún cuando se pueda hacer esto, en la mayoría de los casos no hay razón para
hacerlo.
27
Referencias
[1] Jeff “JavaJeff” Friesen (2010). Learn Java for Android Development.
Apress.
28