SlideShare una empresa de Scribd logo
1 de 39
Android: Arquitectura, Desarrollo, Navegandocódigo Edwin Hernandez, PhD UBIWIRELESS, LLC Taller : WebConf Latino  Julio 22, 2010
Contenido de la Presentación Introducción a la architectura de Android Formas de trabajar en Android Android SDK : Desarrollar Applicaciones Android NDK: Desarrollar librerias nativas MyDroid:  Codigo entero que corre en el emulador o en el telefono.
Android Android 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
Logica para programa en Android Codigo en JAVA+C/C++ Recursos en XML Compilacion a .class Generacion .DEX con Optimizacion Archivo APK
Arquitectura simple de un Smartphone Modem GSM/3G/CDMA AP Android Runtime Linux Kernel 2.6.x Modem Link
Componentes del Middleware Application/Activity Android Service JNI  (Java) Java Native Interface Middleware/Native ServiceBSP Component
Otraspartes de Android Framework en Java con muchosobjetosyclasesparautilizar Dalvik virtual machine: Dalvik-VM  Integrated browser based on the open source WebKit engine Gráficos  con OpenGL ES SQLiteparaalmacenardatos Multimedia: audio, video, eimagenes (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) Telefonia (GSM, CDMA) GPS, Bluetooth, WiFi, ymas, derivados de Linux
Ahoravamos a Linux Linux: Uso del  “driver model,” open source, Abstraccion de Hardware (HAL), manejo de memoria, seguridad LibreriasNativas: Manejo de Superficies via OpenGL yotraslibreriasnativascomo: Packet Video, SQL Lite, WebKit. EL “Android Runtime”: Dalvik VM. DEX file support, .class files are converted are runtime ymapeadas a procesosnativos Linux
Productos a Desarrollar en Android Primero: Aplicaciones, son archivos “APK” Desarrollo via Eclipse o MOTODEV, hasta “vi”. Android SDK  (Reciente version 2.2) Segundo: Libreriasnativaspara Android, muchosparamejorarrendimientoyparafuncionalidadque no esta en el “framework” lasagregan locales (NDK) Tercero: Crear imagines, se podriahacer un acuerdo de colaboración con un proveedor de hardware ysu BSP ycreartelefonosinteligentes
Quemasnecesitamosparahacerunaaplicación? Muchacreatividad! Bajartodaslasherramients Todaslasherramientas son gratuitas!  Diseñar el flow yempezar a probarlo en el emulador
Ambiente de Desarrollo Eclipse/MotoDev Bajar el SDK dehttp://source.android.com/source/download.html Seguirinstrucciones de Google parainstalar SDK Important components ADB: Android Debug Build  DDMS: Debug Data Management System  Android script: Para crearAVDs (Android Virtual Device) Emulator: QEMU parasimular el telefono DX: Converte los .class a DEX
Eclipse
Android Script
DDMS
Emulator
ADB: Android Debug  Bridge
DroidDraw
Estructura de lasAplicaciones Android SDK Demo utilizando Eclipse yAPIDemos
Componentes de un APK Activity: Es la  “actividad.” Muchoscrean un “Application” con muchas “actividades” Intent: Mecanismoutilizadoparaactivarcomponentesycomunicarse entre actividades.  Broadcast Receiver:  Estandiseñadospararegistrarse a leer “Intents” yrecibirlos Content Providers:  Proveendatos a todo el sistema, acceso a Contactos, Listado de Mensajes, DRM Services:  No tienen UI, ypor lo general correr en el “background”
Estados de unaAplicacion en Android
Service
Activity Unidad Principal. Unaactividades lo que se ejecutayesmanejadopor el Dalvik-VM en un “life-cycle”.  Unaaplicacionpuedetenervariasactividadesentrelazadas, perosolamenteunaes la que se lanza del icono principal El UI se define via el archivo “Manifest,” DroidDrawo un XML Editor El Archivo Manifest, contieneimportantesdefinicionespara la “Actividad,” UI, filtros de intents, otrasactividades, permisos de acceso.
Service Un servicio, probablemente no tiene UI GeneralmenteutlizaNoticacionesy el Toolbar parapresentaractualizaciones Generalmente se comienay se manaja en el background Tratar de utilizar la claseAsyncTaskparacorrerprocesos en el “background”
Intent Mecanismo de comunicación entre actividades (Activities) Puede ser implicito, oexplicito Se puedehacer un Broadcast Intent, o se puedeseleccionar la claseque se quierelanzar. Se puedendefinirnuevos intents, INTENT_WEBCONF si se desa via archivo manifest
Broadcast Receiver Se implementapararecibir un Intent, ya sea queeste en el sistema: e.g. ACTION_CALL ocualquier intent creadoporunaactividad El BroadCastRecieveresutilapramanejareventos Chequear los “Permissions” siempre, no todos los Intents puedenrecibirseporunaclases de estetipo
Content Provider  Es simplementeunaabstraccionparaaccesarunaclase de datos, de unaovariastablas en SQLITE o en un archivo El ContentProviderimplementa el acceso a la clase, se puedeutlizar de variasactividadesy no se necesitanhaceruso de comandostipo SELECT como en SQLITE Muchos “Developers” no los utilizan
SeguridadyPermisos Cadaaplicacioncreada en /data/ tiene un UID unico Cadaaplicacioncreada en /system es de otro UID ygeneralmente no se puedeborrar del sistema La seguridad de aplicacionespuederequerirfirmar el APK con unamismallaveparaverificar sea valido A suvez, Certificadosasociados con el “System” previeneningreso no autoizado En un “rooted” phone estospermisos son validosperopueden ser reemplazados.
Muchosotrosservicios en Android Location: GPS a travez de LocationProviders Multimedia  Mensajeria de Textoy Multimedia Busqueda Muchosmaslocalizados en: http://developer.android.com/resources/index.html
VeamosEjemplo de “APIDemo” Views App OS WebViews ListActivity
Codigo de Android  Goldfish: ArquitecturaProveida en Android 2.2
MyDroid : Open Source Podemosrevisartodo el codigo de los “Repos” de Google, incluyendocodigo de HTC, yotros “Vendors” Quepodemosencontrar: Un Browser: Browser App Un Provider: Digital Rights Management  Integracion con el Kernel: BSP es Goldfish Architecture. Muchamemoria, 8GB mínimo. Seguirinstruccione en: http://source.android.com/source/git-repo.html
“Browser Activity”
Codigo Nativo (NDK) Resumen de funcionamiento : JNI – Java Native Interface
NDK Se puedencrearlibrerias de extension .so en C/C++ Ejemplos de combinacionNativo + Java Bluetooth RIL : Radio Interface Layer  Camera App DRM: Digital Rights Management Now your own applications!
NDK
NDK Codigo en C
Futuro de  Desarrollo de Apps App Inventor : Enlistarsepararevisar BETA
MOTODEV DEMO Motorola

Más contenido relacionado

La actualidad más candente

Componentes necesarios de android docx
Componentes necesarios de android  docxComponentes necesarios de android  docx
Componentes necesarios de android docx
grachika
 

La actualidad más candente (20)

Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Android
 
Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1Curso de desarrollo de aplicaciones Android - Sesión 1
Curso de desarrollo de aplicaciones Android - Sesión 1
 
Android p
Android pAndroid p
Android p
 
Android
AndroidAndroid
Android
 
Desarrollo android - 3 - entorno de desarrollo
Desarrollo android  - 3 - entorno de desarrolloDesarrollo android  - 3 - entorno de desarrollo
Desarrollo android - 3 - entorno de desarrollo
 
Tema: Android Studio
Tema: Android StudioTema: Android Studio
Tema: Android Studio
 
Java eclipse-y-android-studio
Java eclipse-y-android-studioJava eclipse-y-android-studio
Java eclipse-y-android-studio
 
Winulator grupo6
Winulator grupo6Winulator grupo6
Winulator grupo6
 
Netbeans Ide ENFEES
Netbeans Ide ENFEESNetbeans Ide ENFEES
Netbeans Ide ENFEES
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1
 
Componentes necesarios de android docx
Componentes necesarios de android  docxComponentes necesarios de android  docx
Componentes necesarios de android docx
 
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDKEntornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
 
Tutorial Android 1
Tutorial Android 1Tutorial Android 1
Tutorial Android 1
 
Android studio
Android studioAndroid studio
Android studio
 
Android Pres3
Android Pres3Android Pres3
Android Pres3
 
"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4
 
Android
AndroidAndroid
Android
 
Fundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para AndroidFundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para Android
 
Android Studio
Android StudioAndroid Studio
Android Studio
 

Destacado

Cadbury's Dairy Milk Chocolate
Cadbury's Dairy Milk ChocolateCadbury's Dairy Milk Chocolate
Cadbury's Dairy Milk Chocolate
Ray M
 

Destacado (8)

EGLACOMM / MEVIA APP TEASER
EGLACOMM / MEVIA APP TEASEREGLACOMM / MEVIA APP TEASER
EGLACOMM / MEVIA APP TEASER
 
MEVIA en Español
MEVIA en EspañolMEVIA en Español
MEVIA en Español
 
Cloud to Cable Video Platform
Cloud to Cable Video PlatformCloud to Cable Video Platform
Cloud to Cable Video Platform
 
Cloud to Cable TV - Music Platform
 Cloud to Cable TV - Music Platform Cloud to Cable TV - Music Platform
Cloud to Cable TV - Music Platform
 
Ray Tracing Software and Emulation
Ray Tracing Software and EmulationRay Tracing Software and Emulation
Ray Tracing Software and Emulation
 
Mediamplify® y MEVIA White Paper - Español
Mediamplify® y MEVIA White Paper - EspañolMediamplify® y MEVIA White Paper - Español
Mediamplify® y MEVIA White Paper - Español
 
Mediamplify® and MEVIA White Paper
Mediamplify® and MEVIA White PaperMediamplify® and MEVIA White Paper
Mediamplify® and MEVIA White Paper
 
Cadbury's Dairy Milk Chocolate
Cadbury's Dairy Milk ChocolateCadbury's Dairy Milk Chocolate
Cadbury's Dairy Milk Chocolate
 

Similar a Taller deandroid

Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
Jorge Soro
 
Componentes para programar en android
Componentes para programar en androidComponentes para programar en android
Componentes para programar en android
Jessarin Kitty Cosmic
 
Preparación del entorno de desarrollo de android
Preparación del entorno de desarrollo de androidPreparación del entorno de desarrollo de android
Preparación del entorno de desarrollo de android
Nelson Samir Ríos Ramos
 

Similar a Taller deandroid (20)

Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
App inventor
App inventorApp inventor
App inventor
 
Introducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidIntroducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para Android
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androide
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1
 
Curso Iniciacion android
Curso Iniciacion androidCurso Iniciacion android
Curso Iniciacion android
 
Documento de android
Documento de androidDocumento de android
Documento de android
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
 
FONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en AndroidFONTIC: Introducción al desarrollo en Android
FONTIC: Introducción al desarrollo en Android
 
Android
AndroidAndroid
Android
 
Android
AndroidAndroid
Android
 
Curso Desarrollo Android
Curso Desarrollo AndroidCurso Desarrollo Android
Curso Desarrollo Android
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdf
 
Seminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumSeminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforum
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Componentes para programar en android
Componentes para programar en androidComponentes para programar en android
Componentes para programar en android
 
Preparación del entorno de desarrollo de android
Preparación del entorno de desarrollo de androidPreparación del entorno de desarrollo de android
Preparación del entorno de desarrollo de android
 
Introducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderIntroducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entender
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo Android
 

Más de Dr. Edwin Hernandez

Más de Dr. Edwin Hernandez (20)

Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
EGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxEGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptx
 
MEVIA Platform for Music and Video
MEVIA Platform for Music and VideoMEVIA Platform for Music and Video
MEVIA Platform for Music and Video
 
Proposal NFT Metaverse Projects.pdf
Proposal NFT Metaverse Projects.pdfProposal NFT Metaverse Projects.pdf
Proposal NFT Metaverse Projects.pdf
 
Emulation MobileCAD
Emulation MobileCADEmulation MobileCAD
Emulation MobileCAD
 
EGLA NFT Offering
EGLA NFT OfferingEGLA NFT Offering
EGLA NFT Offering
 
Next Generation Spaces for Startups
Next Generation Spaces for Startups Next Generation Spaces for Startups
Next Generation Spaces for Startups
 
Analisis del Fraude Electoral en el 2017 - EGLA CORP
Analisis del Fraude Electoral en el 2017 - EGLA CORPAnalisis del Fraude Electoral en el 2017 - EGLA CORP
Analisis del Fraude Electoral en el 2017 - EGLA CORP
 
EGLAVATOR - Innovation, intellectual property services, and capital 2022 - 1
EGLAVATOR - Innovation, intellectual property services, and capital 2022 - 1EGLAVATOR - Innovation, intellectual property services, and capital 2022 - 1
EGLAVATOR - Innovation, intellectual property services, and capital 2022 - 1
 
MEVIA and Cloud to Cable TV Intellectual Property
MEVIA and Cloud to Cable TV Intellectual PropertyMEVIA and Cloud to Cable TV Intellectual Property
MEVIA and Cloud to Cable TV Intellectual Property
 
EGLAVATOR - Who are we?
EGLAVATOR - Who are we?EGLAVATOR - Who are we?
EGLAVATOR - Who are we?
 
Tips para mejorar ventas digitales
Tips para mejorar ventas digitalesTips para mejorar ventas digitales
Tips para mejorar ventas digitales
 
Securing 4G and LTE systems with Deep Learning and Virtualization
Securing 4G and LTE systems with Deep Learning and VirtualizationSecuring 4G and LTE systems with Deep Learning and Virtualization
Securing 4G and LTE systems with Deep Learning and Virtualization
 
EGLAVATOR by EGLA CORP
EGLAVATOR by EGLA CORPEGLAVATOR by EGLA CORP
EGLAVATOR by EGLA CORP
 
MEVIA - Technology Updates - 2020
MEVIA - Technology Updates -  2020MEVIA - Technology Updates -  2020
MEVIA - Technology Updates - 2020
 
MEVIA - Entertaiment and Cloud-based Solution for Yachts
MEVIA - Entertaiment and Cloud-based Solution for Yachts MEVIA - Entertaiment and Cloud-based Solution for Yachts
MEVIA - Entertaiment and Cloud-based Solution for Yachts
 
NextGENTV broadcasting with Cloud to Cable (ATSC 3.0) - Broadcasting to CABSAT
NextGENTV broadcasting with Cloud to Cable  (ATSC 3.0) - Broadcasting to CABSATNextGENTV broadcasting with Cloud to Cable  (ATSC 3.0) - Broadcasting to CABSAT
NextGENTV broadcasting with Cloud to Cable (ATSC 3.0) - Broadcasting to CABSAT
 
New Revenue Opportunities for Cloud Apps and Services with CloudtoCable
New Revenue Opportunities for Cloud Apps and Services with CloudtoCableNew Revenue Opportunities for Cloud Apps and Services with CloudtoCable
New Revenue Opportunities for Cloud Apps and Services with CloudtoCable
 
EGLA CORP: Innovation, Intellectual Property Services, and Capital
EGLA CORP:  Innovation, Intellectual Property Services, and CapitalEGLA CORP:  Innovation, Intellectual Property Services, and Capital
EGLA CORP: Innovation, Intellectual Property Services, and Capital
 
Music for Cable Music Service for Operators
Music for Cable   Music Service for OperatorsMusic for Cable   Music Service for Operators
Music for Cable Music Service for Operators
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (12)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Taller deandroid

  • 1. Android: Arquitectura, Desarrollo, Navegandocódigo Edwin Hernandez, PhD UBIWIRELESS, LLC Taller : WebConf Latino Julio 22, 2010
  • 2. Contenido de la Presentación Introducción a la architectura de Android Formas de trabajar en Android Android SDK : Desarrollar Applicaciones Android NDK: Desarrollar librerias nativas MyDroid: Codigo entero que corre en el emulador o en el telefono.
  • 3. Android Android 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
  • 4. Logica para programa en Android Codigo en JAVA+C/C++ Recursos en XML Compilacion a .class Generacion .DEX con Optimizacion Archivo APK
  • 5.
  • 6. Arquitectura simple de un Smartphone Modem GSM/3G/CDMA AP Android Runtime Linux Kernel 2.6.x Modem Link
  • 7. Componentes del Middleware Application/Activity Android Service JNI (Java) Java Native Interface Middleware/Native ServiceBSP Component
  • 8. Otraspartes de Android Framework en Java con muchosobjetosyclasesparautilizar Dalvik virtual machine: Dalvik-VM Integrated browser based on the open source WebKit engine Gráficos con OpenGL ES SQLiteparaalmacenardatos Multimedia: audio, video, eimagenes (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) Telefonia (GSM, CDMA) GPS, Bluetooth, WiFi, ymas, derivados de Linux
  • 9. Ahoravamos a Linux Linux: Uso del “driver model,” open source, Abstraccion de Hardware (HAL), manejo de memoria, seguridad LibreriasNativas: Manejo de Superficies via OpenGL yotraslibreriasnativascomo: Packet Video, SQL Lite, WebKit. EL “Android Runtime”: Dalvik VM. DEX file support, .class files are converted are runtime ymapeadas a procesosnativos Linux
  • 10. Productos a Desarrollar en Android Primero: Aplicaciones, son archivos “APK” Desarrollo via Eclipse o MOTODEV, hasta “vi”. Android SDK (Reciente version 2.2) Segundo: Libreriasnativaspara Android, muchosparamejorarrendimientoyparafuncionalidadque no esta en el “framework” lasagregan locales (NDK) Tercero: Crear imagines, se podriahacer un acuerdo de colaboración con un proveedor de hardware ysu BSP ycreartelefonosinteligentes
  • 11. Quemasnecesitamosparahacerunaaplicación? Muchacreatividad! Bajartodaslasherramients Todaslasherramientas son gratuitas! Diseñar el flow yempezar a probarlo en el emulador
  • 12. Ambiente de Desarrollo Eclipse/MotoDev Bajar el SDK dehttp://source.android.com/source/download.html Seguirinstrucciones de Google parainstalar SDK Important components ADB: Android Debug Build DDMS: Debug Data Management System Android script: Para crearAVDs (Android Virtual Device) Emulator: QEMU parasimular el telefono DX: Converte los .class a DEX
  • 15. DDMS
  • 19. Estructura de lasAplicaciones Android SDK Demo utilizando Eclipse yAPIDemos
  • 20. Componentes de un APK Activity: Es la “actividad.” Muchoscrean un “Application” con muchas “actividades” Intent: Mecanismoutilizadoparaactivarcomponentesycomunicarse entre actividades. Broadcast Receiver: Estandiseñadospararegistrarse a leer “Intents” yrecibirlos Content Providers: Proveendatos a todo el sistema, acceso a Contactos, Listado de Mensajes, DRM Services: No tienen UI, ypor lo general correr en el “background”
  • 23. Activity Unidad Principal. Unaactividades lo que se ejecutayesmanejadopor el Dalvik-VM en un “life-cycle”. Unaaplicacionpuedetenervariasactividadesentrelazadas, perosolamenteunaes la que se lanza del icono principal El UI se define via el archivo “Manifest,” DroidDrawo un XML Editor El Archivo Manifest, contieneimportantesdefinicionespara la “Actividad,” UI, filtros de intents, otrasactividades, permisos de acceso.
  • 24. Service Un servicio, probablemente no tiene UI GeneralmenteutlizaNoticacionesy el Toolbar parapresentaractualizaciones Generalmente se comienay se manaja en el background Tratar de utilizar la claseAsyncTaskparacorrerprocesos en el “background”
  • 25. Intent Mecanismo de comunicación entre actividades (Activities) Puede ser implicito, oexplicito Se puedehacer un Broadcast Intent, o se puedeseleccionar la claseque se quierelanzar. Se puedendefinirnuevos intents, INTENT_WEBCONF si se desa via archivo manifest
  • 26. Broadcast Receiver Se implementapararecibir un Intent, ya sea queeste en el sistema: e.g. ACTION_CALL ocualquier intent creadoporunaactividad El BroadCastRecieveresutilapramanejareventos Chequear los “Permissions” siempre, no todos los Intents puedenrecibirseporunaclases de estetipo
  • 27. Content Provider Es simplementeunaabstraccionparaaccesarunaclase de datos, de unaovariastablas en SQLITE o en un archivo El ContentProviderimplementa el acceso a la clase, se puedeutlizar de variasactividadesy no se necesitanhaceruso de comandostipo SELECT como en SQLITE Muchos “Developers” no los utilizan
  • 28. SeguridadyPermisos Cadaaplicacioncreada en /data/ tiene un UID unico Cadaaplicacioncreada en /system es de otro UID ygeneralmente no se puedeborrar del sistema La seguridad de aplicacionespuederequerirfirmar el APK con unamismallaveparaverificar sea valido A suvez, Certificadosasociados con el “System” previeneningreso no autoizado En un “rooted” phone estospermisos son validosperopueden ser reemplazados.
  • 29. Muchosotrosservicios en Android Location: GPS a travez de LocationProviders Multimedia Mensajeria de Textoy Multimedia Busqueda Muchosmaslocalizados en: http://developer.android.com/resources/index.html
  • 30. VeamosEjemplo de “APIDemo” Views App OS WebViews ListActivity
  • 31. Codigo de Android Goldfish: ArquitecturaProveida en Android 2.2
  • 32. MyDroid : Open Source Podemosrevisartodo el codigo de los “Repos” de Google, incluyendocodigo de HTC, yotros “Vendors” Quepodemosencontrar: Un Browser: Browser App Un Provider: Digital Rights Management Integracion con el Kernel: BSP es Goldfish Architecture. Muchamemoria, 8GB mínimo. Seguirinstruccione en: http://source.android.com/source/git-repo.html
  • 34. Codigo Nativo (NDK) Resumen de funcionamiento : JNI – Java Native Interface
  • 35. NDK Se puedencrearlibrerias de extension .so en C/C++ Ejemplos de combinacionNativo + Java Bluetooth RIL : Radio Interface Layer Camera App DRM: Digital Rights Management Now your own applications!
  • 36. NDK
  • 38. Futuro de Desarrollo de Apps App Inventor : Enlistarsepararevisar BETA