FONTIC: Introducción al desarrollo en Android

Post on 12-Jun-2015

3.947 views 6 download

description

Charla práctica-Taller de "Introducción al desarrollo en Android", impartido en el Foro de Oportunidades y Negocios en las TIC" de Tenerife (2012): http://fontic.sitios.feull.org/ Descripción: Introducción a conceptos y teoría sobre Android (software, hardware y sistema), preparación y configuración del entorno de desarrollo y SDK y un repaso a la plataforma de distribución de aplicaciones Google Play, junto a una breve introducción a la rentabilización de una aplicación. Organiza EmprendeULL: http://www.emprende.ull.es/ Gestiona FEULL y ULL: http://www.feull.org/ - http://www.ull.es/ Impartido por José Román (Manz): http://www.emezeta.com/

Transcript of FONTIC: Introducción al desarrollo en Android

1. Introducción a Android 2. Entorno de desarrollo 3. Plataforma Google Play

Resumen

1. Introducción a AndroidConceptos de sistema y hardware

H A L

¿Qué es Android?

HAL: 3 capas

+ +

Hardware Android Launcher

Capa 1: Hardware

PROCESADOR

MEMORIA RAM

MEMORIA INTERNA

TIPO PANTALLA

Capa 1: Hardware

MARCA

CÁMARA

BATERÍA

PROCESADOR

MEMORIA RAM

MEMORIA INTERNA

TIPO PANTALLA

Capa 1: Hardware

Dispositivos

Dispositivos: Parrot Asteroid

Dispositivos: OUYA

Dispositivos: Sony TV

Dispositivos: Recon Instruments

Dispositivos: Samsung Galaxy Camera

16M

Domótica

Capa 2: Software (Android)

Capa 2: Software (Android)

2.3

4.0

4.1

Capa 2: Software (Android)

2.3

4.0

4.1

SISTEMA

Capa 3

BARRA INFERIOR

ICONOS

BARRA DE NOTIFICACIONES

Capa 3: Launcher

WIDGETS

CONTROL DE ENERGÍA

Capa 3: Launcher

Go Launcher EXGO LAUNCHER DEV TEAM

Capa 3: Launcher

HTC SenseHTC

Capa 3: Launcher

TouchWizSamsung

Capa 3: Launcher

Regina 3DNemus

Capa 3: Launcher

Launcher 7Timo Kujala

Capa 3: Launcher

LauncherAndroid Oficial (Vanilla)

¿Por qué Android?

BlackBerry iPhone Windows Phone Android

PRODUCTO

EMPRESAS

Ventas a nivel mundial

Fuente: Gartner & IDChttp://en.wikipedia.org/wiki/Mobile_operating_system

Diversidad

Diversidad

MIN1GBRAM

Diversidad

MIN1GHz CPU

Diversidad

MINANDROID

4 (ICS)

Proceso de preparación de actualización

ACTUALIZACIÓN DE ANDROID

Proceso de preparación de actualización

ACTUALIZACIÓN DE ANDROID

ADAPTACIÓNDEL FABRICANTE

Proceso de preparación de actualización

ACTUALIZACIÓN DE ANDROID

ADAPTACIÓNDEL FABRICANTE

ADAPTACIÓNDE LA OPERADORA

Proceso de preparación de actualización

ACTUALIZACIÓN DE ANDROID

ADAPTACIÓNDEL FABRICANTE

ADAPTACIÓNDE LA OPERADORA

CLIENTEDESESPERADO

Acuerdo de lanzamiento de actualizaciones

18 MESES

RootObtener permisos de administrador

Control total: Droidwall Cambiar ROM Actualizaciones Overclock Eliminar apps

Hardware

Procesador

Procesador

Quadrant Standard Ed.Aurora Softworks

Procesador

Procesador

Procesador

Memoria y almacenamiento

Memoria y almacenamiento

Particionado

Arquitectura

Arquitectura

Arquitectura

Arquitectura

Arquitectura

Liberación de memoria

MEM 30%

MODELO ERRÓNEO

TASK-KILLER

CACHÉ

Liberación de memoria

MODELO CORRECTO

MEM 90% AUTOMÁTICO

Seguridad

Malware

Malware en AndroidKaspersky

Malware

Malware en AndroidSophos

Permisos

Otras formas

Evitar Markets alternativos

Fragmentación

Versiones de Android

Android 1.5Cupcake

Teclado predictivo Soporte Bluetooth Widgets y carpetas Transiciones animadas

Android 1.6Donut

Android Market mejorado Búsqueda por voz mejorada Soporte para VPN y TTS Soporte para resoluciones WVGA

Android 2.1Eclair

Interfaz de usuario renovada Soporte para HTML5 Cámara mejorada: flash y zoom Teclado virtual mejorado

Android 2.2Froyo

Compilador JIT Motor Javascript V8 Tethering por USB Permite mover apps a SD

Android 2.3Gingerbread

Interfaz de usuario renovada Soporte para vídeos WebM/VP8 Soporte para VoIP/NFC Sistema de archivos YAFFS a EXT4

Android 3.0HoneyComb

Soporte para tablets Videoconferencia (via Gtalk) Soporte para periféricos USB Widgets redimensionables

Android 4.0Ice Cream Sandwich

Multidispositivo (tablets, TV...) Interfaz Holo (Fuente Roboto) Aceleración gráfica por hardware Reconocimiento facial

Android 4.1Jelly Bean

Project Butter: Fluidez de sistema Dictado por voz (sin Internet) Notificaciones mejoradas Actualizaciones inteligentes

Problemas de la fragmentaciónCaracterísticas importantes no presentes

Versiones de Android

Versiones de Android

Pantallas y resoluciones

Pantallas y resoluciones

px (Píxel tradicional)

No compatible con varios dispositivos

dp (Píxel independiente densidad)

Compatible con varios dispositivos

sp (pixel independiente de la escala)

Ideal para fuentes

Pequeño

Mediano

Grande

Pequeño

Mediano

Grande

Pequeño

Mediano

Grande

Pantallas y resoluciones

OpenGL

Posibilidades de Android

2. Entorno de desarrolloPreparación/configuración del SDK

IDE Java SDK

Entorno de desarrollo

Eclipse+

Plugin ADT

Java SDK

Entorno de desarrollo

NetBeans+

Plugin nbandroid

Java SDK

Entorno de desarrollo

Intellij IDEA+

Plugin idea-android

Java SDK

Entorno de desarrollo

Máquina virtual Java

.javaCódigo fuente

.classBytecode compilado

JavaMáquina virtual

Máquina virtual Dalvik

.javaCódigo fuente

.dexBytecode compilado

DalvikMáquina virtual

Eclipse+

Plugin ADT

SDK

Entorno de desarrollo

Eclipse+

Plugin ADT

Entorno de desarrollo

Paso 1: Instalar Javahttp://www.java.com/es/

Paso 2: Instalar IDE Eclipsehttp://www.eclipse.org/downloads/

Paso 2: Instalar IDE Eclipsehttp://www.eclipse.org/downloads/

Europa, Ganymede, Galileo, Helios,

Indigo...

Juno (Eclipse 4.2)

Paso 3: Instalar SDK de Androidhttp://developer.android.com/sdk/

Paso 4: Instalar API de AndroidInicio / Android SDK Tools / SDK Manager

Paso 4: Instalar API de AndroidInicio / Android SDK Tools / SDK Manager

Paso 5: Instalar plugin ADTEclipse: Help / Install New Software

Paso 5: Instalar plugin ADTEclipse: Help / Install New Software

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

VirtualBoxhttps://www.virtualbox.org/

Android x86http://www.android-x86.org/

VirtualBoxhttp://developer.android.com/sdk/

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

ADB: Android Debug Bridge

Android SDK / platform-tools / adb

http://www.emezeta.com/articulos/10-operaciones-utiles-para-android-via-adb

ADB: Android Debug Bridge

Android SDK / platform-tools / adb

http://www.emezeta.com/articulos/10-operaciones-utiles-para-android-via-adb

ADB: Android Debug Bridge

Android SDK / platform-tools / adb

http://www.emezeta.com/articulos/10-operaciones-utiles-para-android-via-adb

DDMS: Dalvik Debug MonitorAndroid SDK / tools / ddms

DDMS: Dalvik Debug MonitorAndroid SDK / tools / ddms

DDMS: Dalvik Debug MonitorAndroid SDK / tools / ddms

DDMS: Dalvik Debug MonitorAndroid SDK / tools / ddms

DDMS: Dalvik Debug MonitorAndroid SDK / tools / ddms

DDMS: Logcat (Registros)Android SDK / tools / ddms

DDMS: Logcat (Registros)Android SDK / tools / ddms

DDMS: Logcat (Registros)Android SDK / tools / ddms

DDMS: Logcat (Registros)Android SDK / tools / ddms

DDMS: Logcat (Registros)Android SDK / tools / ddms

DDMS: Logcat (Registros)Android SDK / tools / ddms

Paquete APKEstructura de una aplicación Android

Paquete APKEstructura de una aplicación Android

Crear máquinas virtualesInicio / Android SDK Tools / AVD Manager

Interfaz HoloConsejos y recomendaciones de diseño

http://developer.android.com/design/

ConsejosRecomendaciones para hacernos “fuertes”

www.emezeta.com

50KB

Compresión “on-the-fly”Obtener información rapidamente

www.emezeta.com

50KB

Compresión “on-the-fly”Obtener información rapidamente

Compressed HTML

9KB

www.emezeta.com

50KB

Compresión “on-the-fly”Obtener información rapidamente

50KB

BateríaReducir trabajo y mantener batería

Miliamperio-hora (mAh)

BateríaReducir trabajo y mantener batería

Capacidad de la batería.

Miliamperio (mA)Gasto de energía.

BateríasDependen del dispositivo y capacidad

iPhone3GS1219 mAh

Galaxy S21650 mAh

iPhone4S1420 mAh

Galaxy S32100 mAh

3G-150mA

Capacidad batería Energía Duración estimada

1500 mAh / 150 mA = 10 horas

WiFi-275mA

Capacidad batería Energía Duración estimada

1500 mAh / 275 mA = ~5 horas y media

Descarga de un MP3 (6 MB)

Transferencias cortasImplica ahorro de batería

Errores: FC y ANRTipos de errores en Android

FC (Forzar cierre)Errores de codificación en

la aplicación.

Errores: FC y ANRTipos de errores en Android

ANR (App no responde)App tarda demasiado

(+5seg) en thread “main”.

http://www.appinventor.es/

http://stackoverflow.com/

3. Plataforma Google PlayDistribución y publicación de apps

Android Market Google Play

Versión web Versión móvil

Google Play

- Precio- Icono de aplicación

- Votos (Total y media)

- Nombre de la aplicación- Autor

Google Play

- Banner de alta resolución

Google Play

- Información

Google Play

- Novedades

- Permisos

- Opiniones

Botones socialesGoogle+ o Twitter

Google Play

VotosTotal de votos y media

Google Play

Última actualizaciónFecha de la última versión

Google Play

Versión actualVersión disponible para descargar

Google Play

Versión de AndroidVersión mínima en la que funcionará la aplicación

Google Play

CategoríaGénero de la aplicación

Google Play

DescargasNúmero aproximado de descargas de la aplicación

Google Play

Actividad recienteEvolución de las descargas durante los últimos 30 días

Google Play

TamañoEspacio que ocupa la aplicación.

Google Play

PrecioPrecio de la aplicación

Google Play

ClasificaciónNivel de madurez (público)

Google Play

- Varias capturas de pantalla

Google Play

- Votos por calificación

- Valoración media- Total de votos

Google Play

- Votos por calificación

- Valoración media

- Total de votos

“Hordas de usuarios cabreados que puntúan con una estrella tu aplicación porque ...”

- Votos por calificación

- Valoración media

- Total de votos

...si la cierras, la aplicación deja de funcionar.

...si la cierras, la aplicación deja de funcionar.

...se ha caído el móvil al suelo y ya no funciona.

...si la cierras, la aplicación deja de funcionar.

...se ha caído el móvil al suelo y ya no funciona.

...la palabra “EXIT” no está traducida al español.

- Comentarios

- Versión de la app

- Puntuación para la app

Google Play

Educación: Clases virtuales

- Aplicaciones del autor

- Aplicaciones similares

- Aplicaciones instaladas

Google Play

Alta (Google)Gratuita

Alta (Checkout)Gratuita

Alta (Google play)25$ ó 20€

http://play.google.com/apps/publish/

Google Play DeveloperFormato antiguo

Google Play DeveloperFormato nuevo

Google Play Developer

Datos de la aplicación

Título

Máx: 30 carácteres

Datos de la aplicación

Descripción

Máx: 4000 carácteres

Datos de la aplicación

Novedades

Actualización

Máx: 500 carácteres

Datos de la aplicación

Traducciones

Otros idiomas

Capturas de la aplicación

Capturas

Mín: 2 capturasMáx: 8 capturas

Capturas de la aplicación

Capturas

Mín: 2 capturasMáx: 8 capturas

Capturas de la aplicación

Logo (icono)

Icono de alta calidad

Capturas de la aplicación

Logo (icono)

Icono de alta calidad

Capturas de la aplicación

Banner

Formato largo

Capturas de la aplicación

Banner

Formato largo

Capturas de la aplicación

Video

Enlace a Youtube

Otros datos

Categorización

Tipo y subtipo

Otros datos

Categorización

Tipo y subtipo

Otros datos

Tipo de contenido

Nivel de madurez

Nivel de madurez

Violencia, alcohol,drogas, etc...

Acceder a ubicación

Acceder y compartir ubicación

Contenido generado por el usuario

Otros datos

Datos del autor

URLEmail

Teléfono (opcional)

Otros datos

Política de privacidad

URL

Precios y distribución

App gratuita

Excluir paísesExcluir operadoras

App pago

Diferentes precios

Servicios y APIs

Servicios

Google Cloud Messaging

Subir aplicación APK

Subir aplicación(máx: 50MB)

Versiones actualesVersiones previas

Subir aplicación APK

Subir aplicación(máx: 50MB)

Reactivar versiones antiguas

Subir aplicación APK

Pack expansión(hasta 4GB)

Subir packs de mayor tamaño

Subir aplicación APK

Compatibilidad

Excluir dispositivos

Subir aplicación APK

Productos“in-app”

Niveles, añadidos...

Suscripciones

Pago mensual (streaming)

Estadísticas

Estadísticas

Instalaciones activas

Estadísticas

Estadísticas

Instalaciones diarias

Estadísticas

Estadísticas

Instalaciones totales

Estadísticas

Estadísticas

Exportar en formato CSV

Estadísticas

Detallado por...

Versiones de Android

Estadísticas

Detallado por...

Dispositivo (móvil, tablet...)

Estadísticas

Detallado por...

País

(Ej: Orientado a España)

Estadísticas

Detallado por...

País

(Ej: Orientación global)

Estadísticas

Detallado por...

Idioma

Estadísticas

Detallado por...

Versión de la app

Estadísticas

Detallado por...

Operadora

Estadísticas

Estadísticas de...

- Tu propia app- Categoría de tu app- Top 10 de categoría

Comentarios y valoraciones

Comentarios

No siempre serán buenos

(de hecho, serán malos)

Comentarios y valoraciones

Comentarios

No siempre serán buenos

(de hecho, serán malos)

Comentarios y valoraciones

Aportaciones

- Media de votos- Proporción

- Total de votos

Comentarios y valoraciones

Aportaciones

- Comentarios- Dispositivo- Versión app

- Voto

Comentarios y valoraciones

Aportaciones

- Filtrar por voto- Filtrar por idioma- Filtrar por versión

Gestor de informes de errores

Informes

ErroresTraza del error

Gestor de informes de errores

Informes

Comentarios del usuario

Gestor de informes de errores

Informes

Comentarios del usuario

Gestor de informes de errores

Informes

Comentarios del usuario

Gestor de informes de errores

Informes

Comentarios del usuario

Gestor de informes de errores

Informes

Comentarios del usuario

Rentabilización

Rentabilizar app

Rentabilizar aplicación

App de pago App gratuita App gratuita+ Publicidad

Freemium Demostración Añadidos

Modelo de negocio

Redes publicitarias

Redes publicitarias

VisitaRegistroCompra

DescargaProgramador

Usuario final

Anunciantes

Google

Ingresos

Ingresos

Tipo de publicidad