presentacion plataformas moviles

56
Plataformas Moviles Plataformas Moviles Edwin Hernandez, PhD Edwin Hernandez, PhD Tegucigalpa, 10 de agosto de 2010 Tegucigalpa, 10 de agosto de 2010 SEPLAN FUNDACION FUNDACION SALVADOR MONCADA SALVADOR MONCADA PARA EL AVANCE DE PARA EL AVANCE DE LA CIENCIA LA CIENCIA

Upload: edwin-hernandez

Post on 29-Nov-2014

3.848 views

Category:

Technology


0 download

DESCRIPTION

Esta presentacion incluye oportunidades de mercado de aplicaciones moviles, A su vez, conceptos de desarrollo movil, utiles para Android, Blackberry, Android, y iPhone.This presentation contains market opportunities for mobile applications, and an introduction to techniques and demos on application development for Android, Blackberry, and Android.

TRANSCRIPT

Page 1: Presentacion Plataformas moviles

Plataformas MovilesPlataformas MovilesEdwin Hernandez, PhDEdwin Hernandez, PhD

Tegucigalpa, 10 de agosto de 2010Tegucigalpa, 10 de agosto de 2010

SEPLAN

FUNDACION FUNDACION

SALVADOR MONCADASALVADOR MONCADAPARA EL AVANCE DE PARA EL AVANCE DE LA CIENCIALA CIENCIA

Page 2: Presentacion Plataformas moviles

• Introduccion• Mercado Movil de Aplicaciones• Desarrollo en Android• Desarrollo en BlackBerry (J2ME)• Desarrollo en iPhone• Brainstorming

TemarioTemario

Page 3: Presentacion Plataformas moviles

Dr. Edwin Hernandez

Page 4: Presentacion Plataformas moviles

Areas de mercado, evolucion de Smartphones, posibles aplicaciones.

Page 5: Presentacion Plataformas moviles

Reportes de Admob

Page 6: Presentacion Plataformas moviles

El caso de HondurasUso de “mensajería” de texto y multimediaGran cantidad de “Smartphones” Costo bajo de 3G ($15/mes)Hay en realidad un mercado de aplicaciones

móviles?

Page 7: Presentacion Plataformas moviles

¿Que se puede hacer con los Smartphones de Hoy?Blackberry, Android, iPhone

Soporte multimedia (MP3, AAC, tiempo real, Video)

GPS y Localización (Quizás Wifi-based no funcione en Honduras)

Almacenamiento, SD Card, 2GB? O mas?Memoria: 64MB hasta 1GBProcesador : Qualcomm’s 1GHz Soporte de WiFi, Bluetooth, CameraInternet, Redes Sociales, …..

Oportunidades de Monetizacion

Page 8: Presentacion Plataformas moviles

Caso: Encontrar mi teléfonoProblema: “Yo necesito encontrar algo, utilizo

mi teléfono para detectar su localización” GPS disponible en 99% de unidadesAplicaciones residentes y corriendo en el

backgroundEs posible que se necesite un “servidor” que

tenga un web service para localizar el dispositivo.

Tengo una idea novedosa para esto……

Page 9: Presentacion Plataformas moviles
Page 10: Presentacion Plataformas moviles

Investigación de Aplicaciones similares en (App Store):

Phone Tracker: locate any mobile phone ! Dworld Services Phone Tracker: locate any mobile phone !Cell Phone Tracker Pro Federal Bureau of Apps Cell Phone Tracker ProCell Phone Tracker Reza Alizadeh Cell Phone TrackerCell Phone Tracker Pro FREE Reza Alizadeh Cell Phone Tracker Pro FREEFriend Tracker ( locate any mobile phone ) Ying Mobile Friend Tracker ( locate any mobile phone )Mobile Locator Jaja & Co Mobile LocatoriTrack Phone Locator - Find any mobile phone location icoderz iTrack Phone Locator - Find any mobile phone locationPhone Tracker Presselite Phone TrackerGPS Phone Tracker FREE Patrick Giudicelli GPS Phone Tracker FREECell Phone Tracker Free Inner Four, Inc. Cell Phone Tracker FreeStolen Phone Tracker : Passwords Trap Nuvus Software LLC Stolen Phone Tracker : Passwords TrapGPS Phone Tracker Pro Patrick Giudicelli GPS Phone Tracker ProCell Phone Tracker - Phone Locator Krysis LLC Cell Phone Tracker - Phone LocatorPhoneTrace Design7 PhoneTraceBar Heist : Stolen iPhone Tracker Venkatramanan Krishnamani Bar Heist : Stolen iPhone TrackerAll phone GPS Tracker Global Agent Inc All phone GPS TrackerAll Phone Tracker Pro Global Agent Inc All Phone Tracker ProPhone Tracker Elite Sean Taylor Phone Tracker EliteMobile Tracker - Track any cell phone! JG Applications Ltd Mobile Tracker - Track any cell phone!Cell Usage Tracker iLegendSoft Cell Usage TrackerAAA phone GPS Tracker2 Free Global Agent Inc AAA phone GPS Tracker2 FreeStolen Phone Tracker: Bank Info Trap Nuvus Software LLC Stolen Phone Tracker: Bank Info TrapMyLove Tracker: keep an eye on your boyfriend! Palooza MyLove Tracker: keep an eye on your boyfriend!Phone Locator Palooza Phone LocatorSticker Collection Kaufcom GmbH Sticker CollectionAll Phone Tracker (Track Any Mobile Phone) Global Agent Inc All Phone Tracker (Track Any Mobile Phone)GPS Phone Tracker Patrick Giudicelli GPS Phone TrackerPeople/Phone Tracker Serenity Integration, LLC People/Phone TrackerAAA Phone GPS Tracker2 Pro Global Agent Inc AAA Phone GPS Tracker2 ProThe phone tracker intergoldex llc The phone trackerPhone Tracker Plus Sean Taylor Phone Tracker PlusMyLove Tracker: keep an eye on your girlfriend! Palooza MyLove Tracker: keep an eye on your girlfriend!Track Me + : Get Cordenates - Altitude - Current Location EmpoweredDesignApps Track Me + : Get Cordenates - Altitude - Current LocationWhere is it? Locate a phone number with your iphone jes6mac Where is it? Locate a phone number with your iphonemyMCLE California Law On My Phone myMCLE CaliforniaGPS Phone Marker Servin Corporation GPS Phone MarkermyCLE New York Law On My Phone myCLE New YorkWake Me There Lite Moshe Shitrit Wake Me There LitemyMCLE Louisiana Law On My Phone myMCLE LouisianamyMCLE Texas Law On My Phone myMCLE TexasWake Me There Moshe Shitrit Wake Me TheremyCLE Florida Law On My Phone myCLE FloridaNell McAndrew's Royal Parks Foundation Half Marathon Tips Content Podcasts Nell McAndrew's Royal Parks Foundation Half Marathon TipsMobilme MyphoneGoogle maps click to call

¿Parece que ya lo pensaron muchos?

Page 11: Presentacion Plataformas moviles

“Zooming In”GPS Phone Tracker FREE Patrick Giudicelli GPS Phone Tracker FREE

Cell Phone Tracker Free Inner Four, Inc. Cell Phone Tracker FreeStolen Phone Tracker : Passwords Trap

Nuvus Software LLC

Stolen Phone Tracker : Passwords Trap

GPS Phone Tracker Pro Patrick Giudicelli GPS Phone Tracker Pro

Cell Phone Tracker - Phone Locator Krysis LLC Cell Phone Tracker - Phone Locator

PhoneTrace Design7 PhoneTrace

Bar Heist : Stolen iPhone TrackerVenkatramanan Krishnamani Bar Heist : Stolen iPhone Tracker

All phone GPS Tracker Global Agent Inc All phone GPS Tracker

All Phone Tracker Pro Global Agent Inc All Phone Tracker Pro

Page 12: Presentacion Plataformas moviles
Page 13: Presentacion Plataformas moviles

Dirigido a Ingenieros de Software y otros entusiastas

Page 14: Presentacion Plataformas moviles

RequisitiosAndroid

Mac, Linux o WindowsEmulador incluido para desarrolloEntendimiento de Linux para el kernelJava

BlackberryWindows, Mac (hack), Linux (compilacion) Emulador incluido para desarrolloJava, y J2ME o Java Microedition.

Page 15: Presentacion Plataformas moviles

Plataforma de Desarrollo

Page 16: Presentacion Plataformas moviles

Contenido de la PresentaciónIntroducción a la architectura de AndroidFormas de trabajar en Android

Android SDK : Desarrollar ApplicacionesAndroid NDK: Desarrollar librerias nativasMyDroid: Codigo entero que corre en el

emulador o en el telefono.

Page 17: Presentacion Plataformas moviles

AndroidAndroid es un “middleware” un software

stack para sistemas móviles que incluye: Una Máquina Virtual: DALVIK-VM (Comprado

por Google y Optimizado) Serie de Librerías y Recursos escritos en Java:

JDK, Jars, JNI, Reflexión KERNEL: LINUX 2.6-* que se continua

actualizando Cada “release” tiene nombres de postres,

“cupcake”, “donut”, “eclaire”, etc

Page 18: Presentacion Plataformas moviles

Logica para programa en Android

Codigo en JAVA+C/C+

+

Recursos en XML

Compilacion a

.class

Generacion .DEX con

Optimizacion

Archivo APK

Page 19: Presentacion Plataformas moviles
Page 20: Presentacion Plataformas moviles

ModemGSM/3G/

CDMAAP

Android Runtime

Linux Kernel2.6.x

Modem Link

Page 21: Presentacion Plataformas moviles

Application/Activity

Middleware/Native ServiceBSP Component

Java Native Interface

JNI (Java)

Android Service

Page 22: Presentacion Plataformas moviles

Otras partes de AndroidFramework en Java con muchos objetos y clases

para utilizarDalvik virtual machine: Dalvik-VM Integrated browser based on the open source

WebKit engineGráficos con OpenGL ESSQLite para almacenar datosMultimedia: audio, video, e imagenes (MPEG4,

H.264, MP3, AAC, AMR, JPG, PNG, GIF)Telefonia (GSM, CDMA)GPS, Bluetooth, WiFi, y mas, derivados de Linux

Page 23: Presentacion Plataformas moviles

Ahora vamos a LinuxLinux: Uso del “driver model,” open source,

Abstraccion de Hardware (HAL), manejo de memoria, seguridad

Librerias Nativas: Manejo de Superficies via OpenGL y otras librerias nativas como: Packet Video, SQL Lite, WebKit.

EL “Android Runtime”: Dalvik VM. DEX file support, .class files are converted are runtime y mapeadas a procesos nativos Linux

Page 24: Presentacion Plataformas moviles

Productos a Desarrollar en AndroidPrimero: Aplicaciones, son archivos “APK”

Desarrollo via Eclipse o MOTODEV, hasta “vi”.Android SDK (Reciente version 2.2)

Segundo: Librerias nativas para Android, muchos para mejorar rendimiento y para funcionalidad que no esta en el “framework” las agregan locales (NDK)

Tercero: Crear imagines, se podria hacer un acuerdo de colaboración con un proveedor de hardware y su BSP y crear telefonos inteligentes

Page 25: Presentacion Plataformas moviles

Que mas necesitamos para hacer una aplicación?

Mucha creatividad!Bajar todas las herramients

Todas las herramientas son gratuitas! Diseñar el flow y empezar a probarlo en el

emulador

Page 26: Presentacion Plataformas moviles

Ambiente de DesarrolloEclipse/MotoDevBajar el SDK de

http://source.android.com/source/download.htmlSeguir instrucciones de Google para instalar SDK

Important componentsADB: Android Debug Build DDMS: Debug Data Management System Android script: Para crear AVDs (Android Virtual

Device)Emulator: QEMU para simular el telefonoDX: Converte los .class a DEX

Page 27: Presentacion Plataformas moviles

Eclipse

Page 28: Presentacion Plataformas moviles

Android Script

Page 29: Presentacion Plataformas moviles

DDMS

Page 30: Presentacion Plataformas moviles

Emulator

Page 31: Presentacion Plataformas moviles

ADB: Android Debug Bridge

Page 32: Presentacion Plataformas moviles

DroidDraw

Page 33: Presentacion Plataformas moviles

SDK Demo utilizando Eclipse y APIDemos

Page 34: Presentacion Plataformas moviles

Componentes de un APKActivity: Es la “actividad.” Muchos crean un

“Application” con muchas “actividades”Intent: Mecanismo utilizado para activar

componentes y comunicarse entre actividades. Broadcast Receiver: Estan diseñados para

registrarse a leer “Intents” y recibirlosContent Providers: Proveen datos a todo el

sistema, acceso a Contactos, Listado de Mensajes, DRM

Services: No tienen UI, y por lo general correr en el “background”

Page 35: Presentacion Plataformas moviles

Estados de una Aplicacion en Android

Page 36: Presentacion Plataformas moviles

Service

Page 37: Presentacion Plataformas moviles

ActivityUnidad Principal. Una actividad es lo que se

ejecuta y es manejado por el Dalvik-VM en un “life-cycle”.

Una aplicacion puede tener varias actividades entrelazadas, pero solamente una es la que se lanza del icono principal

El UI se define via el archivo “Manifest,” DroidDraw o un XML Editor

El Archivo Manifest, contiene importantes definiciones para la “Actividad,” UI, filtros de intents, otras actividades, permisos de acceso.

Page 38: Presentacion Plataformas moviles

ServiceUn servicio, probablemente no tiene UI

Generalmente utliza Noticaciones y el Toolbar para presentar actualizaciones

Generalmente se comiena y se manaja en el background

Tratar de utilizar la clase AsyncTask para correr procesos en el “background”

Page 39: Presentacion Plataformas moviles

IntentMecanismo de comunicación entre

actividades (Activities)Puede ser implicito, o explicito

Se puede hacer un Broadcast Intent, o se puede seleccionar la clase que se quiere lanzar.

Se pueden definir nuevos intents, INTENT_WEBCONF si se desa via archivo manifest

Page 40: Presentacion Plataformas moviles

Broadcast ReceiverSe implementa para recibir un Intent, ya sea

que este en el sistema: e.g. ACTION_CALL o cualquier intent creado por una actividad

El BroadCast Reciever es util apra manejar eventos

Chequear los “Permissions” siempre, no todos los Intents pueden recibirse por una clases de este tipo

Page 41: Presentacion Plataformas moviles

Content Provider Es simplemente una abstraccion para accesar

una clase de datos, de una o varias tablas en SQLITE o en un archivo

El ContentProvider implementa el acceso a la clase, se puede utlizar de varias actividades y no se necesitan hacer uso de comandos tipo SELECT como en SQLITE

Muchos “Developers” no los utilizan

Page 42: Presentacion Plataformas moviles

Seguridad y PermisosCada aplicacion creada en /data/ tiene un UID

unicoCada aplicacion creada en /system es de otro UID

y generalmente no se puede borrar del sistemaLa seguridad de aplicaciones puede requerir

firmar el APK con una misma llave para verificar sea valido

A su vez, Certificados asociados con el “System” previenen ingreso no autoizado

En un “rooted” phone estos permisos son validos pero pueden ser reemplazados.

Page 43: Presentacion Plataformas moviles

Muchos otros servicios en AndroidLocation: GPS a travez de LocationProvidersMultimedia Mensajeria de Texto y MultimediaBusqueda Muchos mas localizados en:

http://developer.android.com/resources/index.html

Page 44: Presentacion Plataformas moviles

Veamos Ejemplo de “APIDemo”ViewsAppOSWebViewsListActivity

Page 45: Presentacion Plataformas moviles

Goldfish: Arquitectura Proveida en Android 2.2

Page 46: Presentacion Plataformas moviles

MyDroid : Open SourcePodemos revisar todo el codigo de los “Repos”

de Google, incluyendo codigo de HTC, y otros “Vendors”

Que podemos encontrar:Un Browser: Browser AppUn Provider: Digital Rights Management Integracion con el Kernel: BSP es Goldfish

Architecture.Mucha memoria, 8GB mínimo. Seguir

instruccione en:http://source.android.com/source/git-repo.html

Page 47: Presentacion Plataformas moviles

“Browser Activity”

Page 48: Presentacion Plataformas moviles

Resumen de funcionamiento : JNI – Java Native Interface

Page 49: Presentacion Plataformas moviles

NDKSe pueden crear librerias de extension .so en

C/C++Ejemplos de combinacion Nativo + Java

BluetoothRIL : Radio Interface Layer Camera AppDRM: Digital Rights ManagementNow your own applications!

Page 50: Presentacion Plataformas moviles

NDK

Page 51: Presentacion Plataformas moviles

NDK

Codigo en C

Page 52: Presentacion Plataformas moviles

Futuro de Desarrollo de AppsApp Inventor : Enlistarse para revisar BETA

Page 53: Presentacion Plataformas moviles

MOTODEV DEMO

Motorola

Page 54: Presentacion Plataformas moviles

Java Micro-Edition MIDP, CLDC, net.rim.*

Page 55: Presentacion Plataformas moviles

Java Micro-EditionNace en 1997-1998Primer telefono con J2ME MIDP 1.0,

Motorola iDEN i85Features

2 sockets udp 1 socket tcpHeap de 640KCanvasMuchas clases no-estandares, o com.motorola.*

Page 56: Presentacion Plataformas moviles

J2ME Hoy