Introducción a Android para desarrolladores Java
Upcoming SlideShare
Loading in...5
×
 

Introducción a Android para desarrolladores Java

on

  • 6,182 views

Pequeña introducción al desarrollo en Android orientada para programadores que ya conocen Java.

Pequeña introducción al desarrollo en Android orientada para programadores que ya conocen Java.

Statistics

Views

Total Views
6,182
Views on SlideShare
6,181
Embed Views
1

Actions

Likes
6
Downloads
252
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Presentación breve. Vista general de Android. No pretende ser un curso de programación en Android.
  • Apuntar que hay más dispositivos con Android (electrodomésticos, coches, netbooks, …). Dalvik optimizado para dispositivos con poca memoria. Dalvik no es exactamente una JVM porque no ejecuta Java bytecode. Pasa los .class a .dex
  • Apuntar que hay más dispositivos con Android (electrodomésticos, coches, netbooks, …). Dalvik optimizado para dispositivos con poca memoria. Dalvik no es exactamente una JVM porque no ejecuta Java bytecode. Pasa los .class a .dex
  • Destacar que en la Open Handset Alliance hay todo tipo de companías: hardware, software, telecomunicaciones, …
  • Kernel de Linux modificado, con optimizaciones y muchos drivers. Se supone que el desarrollo del kernel de Linux clásico y de Android terminarán convergiendo. Por debajo de las APIs que vamos a usar, se encuentran las librerías del core, muchas adicionales y Dalvik. Por encima las librerías con las que trabajaremos al programar una aplicación para Android. Las aplicaciones Android se apoyan sobre esta arquitectura igual que las que hagamos nosotros.
  • Java es el lenguaje más usado según varios estudios. Al contrario que en iOS, que sólo se puede con Mac. Ya hemos visto las APIs que ofrece. Ya veremos lo de los XML, emuladores y la integración. En general, Android ofrece un ecosistema de desarrollo bastante abierto (multiplataforma)y familiar para el desarrollador (Java, Eclipse, …).
  • Pasar rápido.
  • Destacar que RMI no está. La conectividad entre aplicaciones y/o servicios está planteada de otra forma, como se verá más adelante. Destacar también que no está ni AWT ni SWING. Nuevo framework para interfaces.
  • Bluez = Bluetooth Codecs multimedia. Añadir en el core características de uso común en dispositivos móviles. Importancia de la comunicación por servicios web con HttpClient (permite lanzar peticiones HTTP y obtener sus resultados) y el parser de JSON (formato muy usado en este tipo de comunicación).
  • Como dijimos antes, aparte de las librerías core, se añaden más librerías muy usadas en la programación de apps móviles. SQLite: Bases de datos en un fichero. Varias de red y además el motor de renderizado WebKit (usado por Chrome, Safari, …). Varias librerias de multimedia. Destacan las que nos permiten interactuar con las cámaras. Casi todos los dispositivos Android cuentan con GPS. Obviamente, librerías para interactuar con el teléfono.
  • Nuevos conceptos que introduce Android: Activities vienen a ser las ventanas en Android. Intents son básicos, ya que permiten ”abrir” una Activity desde otra. Muy flexibles y ofrecen muchas posibilidades. Es una interfaz de acceso a datos que ofrece una aplicación Android. Android lo usa en sus aplicaciones por defecto (obtener contactos, SMSs, historial de llamadas, …). No todo son Activities. Son muy importantes los Services (clientes de correo, Twitter, …).
  • Framework para hacer interfaces totalmente nuevo. Se definen las interfaces en un XML, tanto los componentes, como la distribución de estos (mediante Layouts, un poco al estilo de Swing). Forma de acceder a los componentes sencilla y limpia. Inspirado en JavaScript.
  • Se puede programar sólo con un editor de texto plano y una consola. Eclipse es la mejor opción: Integración perfecta en un IDE muy usado. NetBeans un paso por detrás. Para la preparación de esta charla no fui capaz de echarlo a andar. ”Nuevos” IDEs con características interesantes, como un builder para interfaces. Soporte en otros IDEs. Otros experimentos: AppInventor, una aplicación que te permite crear apps en Android visualmente. Escribes el código 1 vez en JavaScript y puedes obtener aplicaciones nativas para iOS, Android y Blackberry. Fuerte crecimiento, IDE propio en camino (basado en Aptana).
  • Emulador multiplataforma (viene con el SDK). No hace falta tener un Android para probar las aplicaciones. Permite configurar distintas versiones de la API, distintas características de nuestro dispositivo (p.e. con o sin GPS, tamaños de pantalla, …). Lo veremos más adelante.
  • Mostrar Eclipse, los emuladores, la estructura de carpetas, … Enseñar la aplicación Now. Enseñar ForvoDroid, especialmente la parte de la comunicación con la API REST de Forvo.
  • Mostrar Eclipse, los emuladores, la estructura de carpetas, … Enseñar la aplicación Now. Enseñar ForvoDroid, especialmente la parte de la comunicación con la API REST de Forvo.
  • Próximas versiónes tienen como objetivo mejorar la multitarea y solucionar la fragmentación que han provocado los fabricantes y compañías de telecomunicaciones. Android 3 ya en el mercado. Exclusivo para tablets, aunque hay gente que ha conseguido adaptarlo a teléfonos móviles. Comunicar dispositivos Android con hardware programado con una variante de Arduino. Controlar tu casa desde Android con electrodomésticos preparados para ello.
  • Documentación oficial de Android. Foro de programación. Libro de iniciación muy bueno. Contunuación del anterior. Muy famoso el último.

Introducción a Android para desarrolladores Java Introducción a Android para desarrolladores Java Presentation Transcript

  • Introducción a Android para desarrolladores Java César Suárez Ortega
  • Índice
    • Introducción y conceptos básicos
    • Android VS. Java
    • Desarrollando en Android
    • Futuro de Android y cierre
  • Introducción & conceptos básicos
  • ¿Qué es Android?
    • Sistema operativo optimizado para dispositivos móviles.
      • Smartphones
      • Tablets
      • ...
    • Basado en Linux
      • Versión modificada del kernel de Linux.
    • Aplicaciones nativas programadas en Java .
      • Máquina virtual propia: Dalvik.
  • Historia de Android
    • 2003 : Se funda Android Inc., que comienza a desarrollar un OS para dispositivos móviles.
    • 2005 : Google compra Android Inc.
    • 2007 : Se crea la Open Handset Alliance para crear estándares abiertos para dispositivos móviles. Su primer proyecto es Android.
      • Google, Broadcom, HTC, Sony, Intel, Samsung, Texas Instruments, Vodafone, Nvidia, Motorola, …
    • 2008 : Se libera el código fuente de Android 1.0 (licencia Apache).
  • Arquitectura de Android
  • Desde el punto de vista del programador...
    • Java (¡aunque no se usa la JVM de Oracle!).
    • Posibilidad de programar en Linux, Mac y Windows.
    • Múltiples APIs para controlar diversas características comunes en los dispositivos Android programáticamente.
    • XML para definir interfaces de usuario.
    • Emuladores para probar nuestras aplicaciones.
    • Eclipse + Plugin Android = Integración perfecta.
  • Android VS. Java
  • Android VS. Java
      Paquetes estándar soportados :)
    java.io java.lang java.math java.net java.nio java.util javax.crypto javax.net javax.security javax.sound java.security java.sql java.text javax.xml.parsers org.w3c.dom org.xml.sax javax.sql
  • Android VS. Java
      Paquetes no soportados :(
    java.applet java.awt java.beans java.lang.management java.rmi javax.accessibility javax.activity javax.imageio javax.management javax.naming javax.print javax.rmi javax.security.auth.kerberos javax.security.auth.spi javax.security.sasl javax.swing javax.transaction java.xml org.ietf.* org.omg.*
  • Android VS. Java
    • Paquetes de terceros añadidos:
      • org.apache.commons.codec
      • org.apache.commons.httpclient
      • org.bluez
      • org.json
    • Soporta JDBC , pero apenas es usable:
      • Los drivers de Java no están soportados.
      • Drivers con soporte a Android incompletos.
      • Se recomienda recubrir nuestras BDs con web services.
  • Android VS. Java
    • Librerías extra
      • Almacenamiento ( SQLite ).
      • Internet ( WebKit ).
      • Multimedia ( Cámaras ).
      • GPS.
      • Servicios telefónicos (llamadas, SMS, …).
      • ¡Mucho más!
  • Nuevos conceptos
    • Activities (~= Ventanas).
    • Intents
      • Mensajes que invocan acciones (activities, services)
      • Categorizables y parametrizables.
    • Content providers
      • Cuando varias aplicaciones acceden a los mismos datos.
      • Ej. URI: content://com.example.transportationprovider/trains/122
    • Services : Aplicaciones en segundo plano.
    • Se pueden definir en XML (similar a Adobe Flex o Mozilla XUL).
    • Se pueden usar sólo con Java.
    • Se puede acceder a los elementos de forma similar a como se hace en Javascript en el DOM (Función Activiy.findViewById(int) ).
    UI Framework Código UI
  • Desarrollando en Android
  • Desarrollando en Android
    • Se puede programar sin IDE.
    • La mejor opción: Eclipse + Plugin Android.
    • Mala integración con NetBeans .
    • Nuevos IDEs: Meme IDE .
    • Plugins para muchos IDEs: JCreator , IntelliJ .
    • AppInventor : Hacer aplicaciones sin programar.
    • AppAccelerator : Framework JavaScript para aplicaciones par iPhone, Android y Blackberry.
  • Emulador
  • Y ahora algo práctico :)
  • Terminando...
  • El futuro de Android
    • Mejorando lo presente.
      • Multitarea.
      • Compatibilidad entre terminales móviles.
    • Android 3.X : Casi exclusivo para tablets.
    • Android 4.0 : Unificar Android 2.X y 3.X.
    • Open Accesory Library : Android + Arduino.
    • [email_address] : Android + Domótica.
  • Si queréis saber más...
    • http://developers.android.com
    • http://xda-developers.com
    • Beginning Android 2 de Mark Murphy.
    • Pro Android 2 de Dave MacLean.
    • Hello, Android: Introducing Google's Mobile Development Platform (Pragmatic Programmers) de Ed Burnette
  • FIN ¿Preguntas?