Iniciación a Android

11,260 views

Published on

Conceptos e iniciación para un programador de Java a Android.

Published in: Education, Technology
1 Comment
19 Likes
Statistics
Notes
No Downloads
Views
Total views
11,260
On SlideShare
0
From Embeds
0
Number of Embeds
2,860
Actions
Shares
0
Downloads
0
Comments
1
Likes
19
Embeds 0
No embeds

No notes for slide
  •  Android es un sistema operativo y una plataforma de desarrollo Open Source para dispositivos de movilidad.
  •  Un URI es una cadena corta de caracteres que identifica inequívocamente un recurso (servicio, página, documento, dirección de correo electrónico, enciclopedia, etc.). Normalmente estos recursos son accesibles en una red o sistema.
  •  La curva de aprendizaje para un desarrollador Java no es para nada demorada. En caso de no saber Java, aumentaría considerablemente ya que primero tendría que familiarizarse con el lenguaje.
     
    Para un desarrollador Java con una experiencia media, puede tardar entre 2 semanas y 1 mes en dominar de forma básica el desarrollo en Android. Ese dominio básico es suficiente para producir aplicaciones de una calidad más que aceptable, como muchas de las que se venden a buen ritmo hoy en día en el Android Market.
     
    La documentación abundante que se puede encontrar por la red, unida a los numerosos foros y blogs especializados aportan gran información y ejemplos prácticos sobre funcionalidades y aplicaciones.
  • NetBeans da la posibilidad de instalar el plugin de desarrollo Android para trabajar con dicho entorno.
    El IDE Eclipse es uno de los más utilizados del mercado y en este caso es el que utilizamos en Alea Technology para el desarrollo Android.
    En dicha url podemos encontrar las versiones más recientes de la SDK, tanto para Windows, Mac y Linux, además de un tutorial bastante explícito de como realizar la instalación en Eclipse.

  • Recientemente GoogleLabs ha sacado a la luz “App Inventor for Android”, que tiene como objetivo que cualquier usuario pueda desarrollar una aplicación Android, dando la posibilidad de arrastrar componentes predefinidos, editar parámetros de layouts, ejecutar la aplicación, etc.
     
    Para más información: http://appinventor.googlelabs.com/about/
     
    Para el diseño de layouts de forma visual, también tenemos disponible una herramienta interesante, sobretodo para entender la lógica de los XML de Android.  
    En la url http://droiddraw.org/ encontramos una aplicación web para arrastrar los componentes que nos interesen hasta la pantalla y ver en tiempo real su aspecto. Al finalizar podemos generar los XML para nuestra aplicación.
  • Para el diseño de layouts de forma visual, también tenemos disponible una herramienta interesante, sobretodo para entender la lógica de los XML de Android.  
    En la url http://droiddraw.org/ encontramos una aplicación web para arrastrar los componentes que nos interesen hasta la pantalla y ver en tiempo real su aspecto. Al finalizar podemos generar los XML para nuestra aplicación.

  • Herramientas profiling son herramientas que miden el rendimiento de la aplicación en ejecución.

    La "Dalvik Debug Monitor Service" es un herramienta integrada con la "Dalvik Virtual Machine", y nos permite administrar los procesos que corren en una instancia de emulador/dispositivo y nos asiste en la depuración de ellos. Podemos usar esta herramienta para terminar la ejecución de un proceso, seleccionar un determinado proceso para depurar, generar reportes a partir de información de bitácoras, examinar el "heap" y la información de "thread, tomar fotografías de la pantalla del emulador/dispositivo y mucho más.

  • Herramientas profiling son herramientas que miden el rendimiento de la aplicación en ejecución.

    La "Dalvik Debug Monitor Service" es un herramienta integrada con la "Dalvik Virtual Machine", y nos permite administrar los procesos que corren en una instancia de emulador/dispositivo y nos asiste en la depuración de ellos. Podemos usar esta herramienta para terminar la ejecución de un proceso, seleccionar un determinado proceso para depurar, generar reportes a partir de información de bitácoras, examinar el "heap" y la información de "thread, tomar fotografías de la pantalla del emulador/dispositivo y mucho más.
  • Esta gráfica muestra el próximo terminal que elegirán los usuarios en función de la plataforma actual en la que se encuentran.
     
    Según el estudio, un 21% de los usuarios de Android se cambiarían a un iPhone, mientras que el 71% de los usuarios de Android quiere seguir en la plataforma. Es decir, un nivel de satisfacción bastante alto teniendo en cuenta la juventud del sistema y la cantidad de versiones que hay en el mercado (personalizaciones de las compañías).
     
    También vemos que un 6% de los usuarios de iPhone y un 21% de los usuarios de Blackberry se cambiarían a Android.
     
  • Según el mismo estudio, Android ha superado al iPhone en cuota de mercado, justamente por ser un sistema flexible, posibilitando que terminales de diversas características lo lleven instalado. Hay más de un centenar de dispositivos Android en el mercado, llegando a un mayor número de clientes.
  • En la actualidad el sis tema Symbian ocupa casi el 50% de los teléfonos móviles en el mundo, mientras que el sistema Android cuenta sólo con menos del 2%. Se espera que en el año 2012 la cuota de terminales con el sistema Symbian baje hasta aproximadamente un 39% y la cuota de Android suba hasta ponerse en un 14%.
  • Las descargas son gratuitas debido al :
    - 82% dicen que es por el diseño del market.
    - 43% el uso del checkout de google muy complicado
    - 46% están preocupados por la fragmentación del s.o android.
  • A la hora de introducir una aplicación en el Android Market, tenemos que elegir una de las categorías disponibles, lo que no siempre es tarea fácil. Echamos de menos algunas categorías mostradas de forma más explícita, como Educación por ejemplo. Suponemos que estos pequeños fallos se arreglarán en futuras versiones de Android.
     
    Podemos clasificar las aplicaciones en dos niveles: Aplicaciones y Juegos
  • Registro: Rellenando unos cuantos formularios, tarea que no nos llevará más de unos minutos
  • Según la gráfica las aplicaciones de redes sociales, mapas y multimedia fueron las más utilizadas en junio de 2010 en las plataformas más importantes del mercado
  • Según la gráfica las aplicaciones de redes sociales, mapas y multimedia fueron las más utilizadas en junio de 2010 en las plataformas más importantes del mercado

    Hay juegos como Robo Defense, a 2,99$ y más de 250 mil descargas
  • Android Market
    A través del Android Market tenemos un mercado potencial enorme, dado el número de usuarios con terminales Android que acceden a diario. Google tiene la política de quedarse con el 30% de las ganancias, siendo el 70% restante para el desarrollador.

    Markets Alternativos
    Hay otros markets alternativos, tales como SlideMe, con políticas de distribución de ganancias similares a las de Google. Ambas opciones no son excluyentes, así que podemos estudiar siempre la posibilidad de colgar una aplicación en varios markets a la vez.

    Directamente al cliente
    Esta opción es posible gracias a que los terminales Android permiten la instalación de aplicaciones sin la necesidad de pasar por el Market
  • Motorola Droid supera en ventas al iPhone durante los primeros dos meses y  medio (1.05 millones Vs. 1 millón). Nexus One un poco más de una decima parte de los anteriores (135 mil)
  • Mientras más usuarios iPhone buscan juegos que aplicaciones (64% juegos, 36% aplicaciones).
  • Al contar con programadores Java con años de experiencia, tanto en J2SE como en J2ME, no tardamos demasiado en poder programar en Android. De hecho pasaron 3 semanas desde que nos pusimos a ello hasta tener un prototipo funcional de la aplicación que queríamos desarrollar.
    Quizás lo que más tiempo nos llevó fue entender el flujo de las aplicaciones Android y el funcionamiento de las Activities. Una vez comprendido esto, lo demás no tuvo más complicación.
  • C2. Blind
    El proyecto Blind nació como una iniciativa de Alea Technology dentro de su departamento de I+D+i. Fue nuestro primer contacto con Android.
    Queríamos realizar una aplicación Android para que las personas con deficiencias visuales pudiesen utilizar un móvil con pantalla táctil y acceder a todas sus funcionalidades. Nos basamos para ello en las librerías TTS de Google e implementamos funciones como Lista de Contactos, Galería musical, Reconocimiento de colores primarios a través de la cámara, Localización de la posición actual a través del GPS, Sistema de mensajería de voz con grabación de archivos de audio y posterior envío a un servidor de Alea Technology, etc.
    En este proyecto han participado 2 programadores y se ha tardado en total 1 mes.
    C3. Find2Take
    Es una aplicación Android cuyo objetivo es geolocalizar empresas, mostrarlas en un mapa y ofrecer sugerencias a los usuarios según sus gustos. Es decir, el usuario crea un perfil de lo que más le gusta y las tiendas que tengan artículos que puedan interesarle y que estén cerca de él aparecerán en su mapa. El usuario puede así ver solamente aquellos artículos que le puedan interesar.
    En te proyecto ha intervenido 1 programador, con un tiempo de desarrollo de 1 mes y medio.
     
    C4. Moviltest
    Moviltest es una aplicación orientada a la educación. Con ella los usuarios pueden realizar cualquier tipo de test en un móvil Android, con una interfaz intuitiva y con funciones interesantes, tales como Creación de Test con preguntas aleatorias, Historial de test realizados, Gráfica de evolución, Creación de Test con las preguntas más falladas y Corrección al finalizar cada test.
  • Las APIs de desarrollo proporcionadas por Google también juegan un papel interesante. Podemos utilizar los mapas de Google en nuestras aplicaciones, el calendario y muchas otras opciones. Si utilizamos el calendario por ejemplo, y la empresa tiene el calendario en Google Calendar, podemos utilizarlo para las notificaciones, próximas reuniones, etc.
    Los contactos también están integrados de forma genial en Android, teniendo una sincronización perfecta entre nuestro móvil Android y nuestra cuenta de Google.
    Próximamente sacarán una aplicación nativa para GDocs, lo que hará que la gestión de documentos sea aún más sencilla.
    Todo ello puede ser aprovechado para el ámbito empresarial, haciendo que Android sea una alternativa atractiva para todo el que quiera renovar las comunicaciones en su negocio.
  • Iniciación a Android

    1. 1. El camino de Java a Android / José E. Villena
    2. 2. El camino del programador Java a Android Distribución y canales de venta Nuestra experiencia Ámbito empresarial con Android
    3. 3. El camino de Java a Android  Android y Java son dos plataformas diferentes que comparten lenguaje, así como las bibliotecas básicas de programación.  El programador Java utilizará un conjunto de nuevos paquetes y deberá comprender la arquitectura de una aplicación en Android (Activities, Services, Content providers, Intent) • El diseño de la interfaz también es conceptualmente distinto.
    4. 4. El camino de Java a Android  Estructura de ficheros. Paquetes Imágenes Manifest (Muy Importante) Layouts
    5. 5. El camino de Java a Android  Estructura de ficheros. /res/drawable/. Contienen las imágenes de la aplicación /res/layout/. Contienen los ficheros de definición de las diferentes pantallas de la interfaz gráfica. /res/anim/. Contiene la definición de las animaciones utilizadas por la aplicación. /res/values/. Contiene otros recursos de la aplicación como por ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), etc.
    6. 6. El camino de Java a Android  Estructura de ficheros. Esta clase R contendrá en todo momento una serie de constantes con los ID de todos los recursos de la aplicación incluidos en la carpeta /res/
    7. 7. El camino de Java a Android  Android GUI (Componentes) Botones Label
    8. 8. El camino de Java a Android  Android GUI (Componentes) Caja de Texto Checkbox Imágenes
    9. 9. El camino de Java a Android  Android GUI (Componentes) Desplegable Galería Radio Group
    10. 10. El camino de Java a Android  Android GUI (Componentes) Temporizador Barra de Carga Reloj
    11. 11. El camino de Java a Android  Tipos de Layout Lineal Layout Table Layout Relative Layout Absolute Layout
    12. 12. El camino de Java a Android  Tipos de Layout Frame Layout Frame Layout 1 2
    13. 13. El camino de Java a Android  Estructura básica de Android. Activities: Equivale a una ventana de la interfaz de usuario. Pueden recibir valores y devolverlos Intents & intentsFilters: es un objeto mensaje y que, en general, describe que quiere hacer una aplicación. IntentReceivers: Receptores de alarmas y notificaciones. Pueden levantar un proceso si es necesario. Services: Clases sin interfaz corriendo en background. Content Providers: Permiten compartición de datos entre aplicaciones. Uso de SQLite.
    14. 14. El camino de Java a Android  Activities La aplicaciones en Android solo tienen un primer plano que ocupa toda la pantalla Las aplicaciones están formadas por activities Existe una pila de activities en Android
    15. 15. El camino de Java a Android  Activities Muestran los controles de la interfaz de usuario y reacciona ante las interacciones del mismo. Las actividades se declaran en el archivo AndroidManifest.xml Cada pantalla se implementa como una actividad Moverse a la siguiente actividad supone llamar al método startActivity() startActivityForResult()
    16. 16. El camino de Java a Android  Activities
    17. 17. El camino de Java a Android  Ciclo de vida de una actividad  Nuevo modelo de estados de una aplicación: OnCreate(),OnStart(),OnPause(),  OnFreeze(), OnResume(),OnStop(),  OnQuit()
    18. 18. El camino de Java a Android  Intents Los Intents en Android permiten lanzar las actividades. Para el paso de variables entre Actividades tendremos que usar: lt.putExtra(“clave", valor); getIntent().getExtras().getString(“clave"); );
    19. 19. El camino de Java a Android  Content Providers  Content Providers son gestores de contenido, que nos abstraen de los datos con los que estamos trabajando.  Un Content Providers está pensado para que varias aplicaciones accedan a un mismo repositorio de datos a través de él.  Ya tiene incluidas bases de datos configuradas para obtener por ejemplo la lista de contactos, sms recibidos, llamadas enviadas/recibidas/perdidas, configuraciones del teléfono,…
    20. 20. El camino de Java a Android  Content Providers  Desacopla la aplicación de la capa de datos  Modelo URI (Uniform Resource Identifier) simple para operaciones CRUD (Crear, Leer, Actualizar y Borra)  Un Content Provider implementa la interfaz  query(Uri,String[],String,String[],String)  insert(Uri,ContentValues)  update(Uri,ContentValues, String, String[])  delete(Uri, String, String[])  getType(Uri)
    21. 21. El camino de Java a Android  Content Providers  Un Content Provider expone una URI pública, la cual identifica un conjunto de datos, “una tabla”. Uri contacts = "content://contacts/people/";
    22. 22. El camino de Java a Android  Consultando un Content Provider. Columnas a consultar String[] projection = new String[] { Contacts.People.NAME, Contacts.People.NUMBER, Contacts.People._ID }; Establecer URI para acceder a los contactos Uri contacts = "content://contacts/people/"; Lanzar consulta Cursor cursor = managedQuery( contacts, projection, null, null, Contacts.People.NAME + " ASC");
    23. 23. El camino de Java a Android  Utilización de SQLite Android incluye una librería de SQLite  Open source  Proporciona capacidades de una base de datos relacional La SQLiteOpenHelper es una clase que extiende nuestra clase de BBDD para crear nuestras tablas en la base de datos  La usa Apple en su Iphone, el ipad, etc… Todas las bases de datos se crean en la carpeta: /data/data/<package-name>/databases
    24. 24. La Curva de aprendizaje  Un desarrollador Java con una experiencia media, puede tardar entre 2 semanas y 1 mes en dominar de forma básica el desarrollo en Android  Hay mucha documentación, web, foros y blogs que aportan gran información y ejemplos prácticos.
    25. 25. Herramientas disponibles  Android pone a disposición de los desarrolladores su SDK, descargable desde la dirección URL http://developer.android.com/sdk/index.html.
    26. 26. Herramientas disponibles  App Inventor for Android.  Cualquier usuario pueda desarrollar una aplicación Android, con sólo arrastrar componentes predefinidos, editar parámetros de layouts, ejecutar la aplicación, etc…
    27. 27. Herramientas disponibles  DroidDraw.  Una aplicación web para el diseño de los Layouts de forma visual, y sobretodo para entender la lógica de los XML de Android. http://www.droiddraw.org
    28. 28. Creando un proyecto con Eclipse IDE  Crear un nuevo proyecto
    29. 29. Eclipse IDE  Crear un nuevo proyecto Debe estar en nuestro espacio de trabajo
    30. 30. Eclipse IDE  Seleccionamos la versión SDK de Android
    31. 31. Eclipse IDE  Propiedades
    32. 32. Eclipse IDE  Estructura de las actividades
    33. 33. Eclipse IDE Layout de las actividades
    34. 34. Eclipse IDE AndroidManifest.xml Nombre de la actividad
    35. 35. Eclipse IDE AVD (Android Virtual Device) Nos muestra los emuladores disponibles
    36. 36. Eclipse IDE AVD (Android Virtual Device)
    37. 37. Eclipse IDE Dalvik Debug Monitor Service (DDMS)  Proporciona información del estado de una instancia Android  Podemos ver la estructura de directorio de nuestro móvil y la base de datos  Examinar Threads y Procesos, control emulador para eventos específicos...
    38. 38. SQLite Database Browser  Aplicación para manejar la base de datos de nuestro programa http://sqlitebrowser.sourceforge.net/ Exportar BBDD
    39. 39. El camino del programador Java a Android Distribución y canales de venta Nuestra experiencia Ámbito empresarial con Android
    40. 40. Crecimiento de usuarios y terminales en el mercado  Tendencia de los usuarios.
    41. 41. Crecimiento de usuarios y terminales en el mercado  Tendencia de los usuarios.
    42. 42. Crecimiento de usuarios y terminales en el mercado  Terminales Android  Según el CEO de Google, Eric Shmidt, se activan 200 mil terminales Android al día. Con una cifra de 6 millones al mes.  Según previsiones de Gartner Inc., compañía de análisis tecnológico líder en el mundo, Android será el segundo sistema operativo móvil del mundo en 2012, tan sólo por detrás de Symbiam.  En cifras de terminales vendidos se cuenta con que Symbian tenga 203 millones de dispositivos vendidos, Android 76 millones, Iphone con 71,5 millones y Windows Mobile con 66,8 millones en el año 2012
    43. 43. Crecimiento de usuarios y terminales en el mercado  Terminales Android  La fragmentación de las versiones de Android también parece encaminado a una solución, ya que actualmente cerca del 60% de los terminales Android cuentan con la versión 2.1
    44. 44. Android Market  Descargas gratuitas o de pago  Un estudio indica que el 98% de las descargas de android market son de aplicaciones gratuitas.
    45. 45. Tipos de aplicaciones  Las aplicaciones que podemos encontrar en el Android Market son similares a los encontrados en la App Store.  Compras Sociedad  Comunicación Temas  Cómics Viajes  Deportes Biblioteca soft.  Estilo de vida Demostración  Finanzas Arcade y acción  Herramientas Casuales  Multimedia Juegos de Carta  Noticias y tiempo Puzzle  Ocio  Productividad  Referencia  Salud
    46. 46. Zona para desarrolladores  El registro en la zona de desarrolladores de Android es bastante sencilla e intuitiva.  En la zona de desarrollador puedes controlar número de descargas, reseñas de usuarios, valoraciones, etc…
    47. 47. Aplicaciones más vendidas  Utilidades gratuitas como Barcode Scanner o RingDroid son muy demandadas por los usuarios de Android, alcanzando más de 250 mil descargas.  Un juego Angry Birds con más de 5 Millones de descarga en 1 semana.  Los primeros puestos están ocupados por aplicaciones y utilidades, no por videojuegos.
    48. 48. Aplicaciones más vendidas  Android Market tiene los precios que oscilan desde los 0 a los 160,00€. La media real de precios ronda los 3,00€.  De las aplicaciones de pago más descargadas, podemos mencionar DocumentsToGo, que tiene un precio de 14,99$ y lleva más de 50 mil descargas  También podemos hablar de EasyTether, a 9,95$ y más de 50 mil descargas.
    49. 49. Canales de Venta  Market oficial de Google, los markets alternativos y directamente al cliente o empresa.  Android Market.  Google tiene la política de quedarse con el 30% de las ganancias y 70% desarrollador.  El Android Market está abierto a Australia, Austria, República Checa, Francia, Alemania, Italia, Países Bajos, Polonia, Singapur, España, Reino Unido y Estados Unidos. Se espera la incorporación inminente de México, Brasil, Bélgica, Finlandia, Hong Kong, Israel, Polonia, Rumania, Rusia, Eslovaquia, Singapur, Argentina y Sudáfrica.  Market alternativos.(SlideMe)  Política de distribución similar a Google.  Directamente al cliente
    50. 50. Publicidad móvil  Se pueden obtener beneficios mediante la publicidad en aplicaciones Android.  Google compró AdMob por 750 millones de dólares siendo la mayor plataforma de publicidad móvil del mercado.  Advanced Task Manager ha ganado 30.000$ con la versión gratuita con publicidad.
    51. 51. Conclusiones  Android está teniendo un crecimiento bastante rápido con más de 200 mil terminales de venta al día.  Android Market alcanza más de 70.000 aplicaciones  Alrededor del 60% de las aplicaciones Android son gratuitas comparado con el 25% de aplicaciones en el iPhone  El promedio del precio de las aplicaciones Android es 3.00 €
    52. 52. Conclusiones  Estados Unidos representa el 65% del mercado de los dispositivos Android  Mas usuarios iPhone tienden a comprar aplicaciones en comparación con los usuarios Android (50% Vs. 21%)  Los usuarios Android buscan mas aplicaciones que juegos (17% juegos, 83% aplicaciones).  Los desarrolladores más brillantes de Android como PolarBit con más de 1 millón de descargas y Edward Kim recibe US$13.000 mensuales por ventas de sus aplicaciones
    53. 53. El camino del programador Java a Android Distribución y canales de venta Nuestra experiencia Ámbito empresarial con Android
    54. 54. Nuestra experiencia  Curva de aprendizaje en Alea Technology  Nuestros programadores de J2ME y J2SE tardaron unas 3 semanas en tener ya una aplicación funcional.  El mayor tiempo se perdió en entender bien el flujo de las aplicaciones Android y el funcionamiento de las Activities.
    55. 55. Nuestra experiencia  Aplicaciones propias de Alea Technology
    56. 56. El camino del programador Java a Android Distribución y canales de venta Nuestra experiencia Ámbito empresarial con Android
    57. 57. Ámbito empresarial con Android  Un gran abanico de aplicaciones y servicios en el mundo empresarial  Terminales con conexión permanente a internet  Aplicaciones de gestión para mostrar datos en tiempo real de clientes, pedidos, geolocalización y seguimientos de pedidos.  En el market podemos encontrar ERP, CRM, software de contabilidad,…  Las Api de desarrollo proporcionada por Google juegan un papel interesante. http://code.google.com/p/google-api-java-client/
    58. 58. Ámbito empresarial con Android  Gestión de cuentas  Sincronización para múltiples cuentas  Soporte en Email de Exchange.  Gestión de mensajería con búsquedas de dentro de SMS y MMS  Navegador con flash y html5 integrado
    59. 59. Muchas Gracias Email: jvillena@aleatechnology.es

    ×