SlideShare una empresa de Scribd logo
Android: Arquitectura, Desarrollo, NavegandocódigoEdwin Hernandez, PhDUBIWIRELESS, LLCTaller : WebConf Latino  Julio 22, 2010
Contenido de la PresentaciónIntroducción a la architectura de AndroidFormas de trabajar en AndroidAndroid SDK : Desarrollar ApplicacionesAndroid NDK: Desarrollar librerias nativasMyDroid:  Codigo entero que corre en el emulador o en el telefono.
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ónKERNEL: LINUX 2.6-* que se continua actualizandoCada “release” tiene nombres de postres, “cupcake”, “donut”, “eclaire”, etc
Logica para programa en AndroidCodigo en JAVA+C/C++Recursos en XMLCompilacion a.classGeneracion .DEX con OptimizacionArchivo APK
Taller deandroid
Arquitectura simple de un SmartphoneModemGSM/3G/CDMAAPAndroid RuntimeLinux Kernel2.6.xModem Link
Componentes del MiddlewareApplication/ActivityAndroid ServiceJNI  (Java)Java Native InterfaceMiddleware/Native ServiceBSP Component
Otraspartes de AndroidFramework en Java con muchosobjetosyclasesparautilizarDalvik virtual machine: Dalvik-VM Integrated browser based on the open source WebKit engineGráficos  con OpenGL ESSQLiteparaalmacenardatosMultimedia: audio, video, eimagenes (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)Telefonia (GSM, CDMA)GPS, Bluetooth, WiFi, ymas, derivados de Linux
Ahoravamos a LinuxLinux: Uso del  “driver model,” open source, Abstraccion de Hardware (HAL), manejo de memoria, seguridadLibreriasNativas: 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 AndroidPrimero: 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!BajartodaslasherramientsTodaslasherramientas son gratuitas! Diseñar el flow yempezar a probarlo en el emulador
Ambiente de DesarrolloEclipse/MotoDevBajar el SDK dehttp://source.android.com/source/download.htmlSeguirinstrucciones de Google parainstalar SDKImportant componentsADB: Android Debug Build DDMS: Debug Data Management System Android script: Para crearAVDs (Android Virtual Device)Emulator: QEMU parasimular el telefonoDX: Converte los .class a DEX
Eclipse
Android Script
DDMS
Emulator
ADB: Android Debug  Bridge
DroidDraw
Estructura de lasAplicaciones AndroidSDK Demo utilizando Eclipse yAPIDemos
Componentes de un APKActivity: Es la  “actividad.” Muchoscrean un “Application” con muchas “actividades”Intent: Mecanismoutilizadoparaactivarcomponentesycomunicarse entre actividades. Broadcast Receiver:  Estandiseñadospararegistrarse a leer “Intents” yrecibirlosContent Providers:  Proveendatos a todo el sistema, acceso a Contactos, Listado de Mensajes, DRMServices:  No tienen UI, ypor lo general correr en el “background”
Estados de unaAplicacion en Android
Service
ActivityUnidad Principal. Unaactividades lo que se ejecutayesmanejadopor el Dalvik-VM en un “life-cycle”. Unaaplicacionpuedetenervariasactividadesentrelazadas, perosolamenteunaes la que se lanza del icono principalEl UI se define via el archivo “Manifest,” DroidDrawo un XML EditorEl Archivo Manifest, contieneimportantesdefinicionespara la “Actividad,” UI, filtros de intents, otrasactividades, permisos de acceso.
ServiceUn servicio, probablemente no tiene UIGeneralmenteutlizaNoticacionesy el Toolbar parapresentaractualizacionesGeneralmente se comienay se manaja en el backgroundTratar de utilizar la claseAsyncTaskparacorrerprocesos en el “background”
IntentMecanismo de comunicación entre actividades (Activities)Puede ser implicito, oexplicitoSe puedehacer un Broadcast Intent, o se puedeseleccionar la claseque se quierelanzar.Se puedendefinirnuevos intents, INTENT_WEBCONF si se desa via archivo manifest
Broadcast ReceiverSe implementapararecibir un Intent, ya sea queeste en el sistema: e.g. ACTION_CALL ocualquier intent creadoporunaactividadEl BroadCastRecieveresutilapramanejareventosChequear los “Permissions” siempre, no todos los Intents puedenrecibirseporunaclases de estetipo
Content Provider Es simplementeunaabstraccionparaaccesarunaclase de datos, de unaovariastablas en SQLITE o en un archivoEl ContentProviderimplementa el acceso a la clase, se puedeutlizar de variasactividadesy no se necesitanhaceruso de comandostipo SELECT como en SQLITEMuchos “Developers” no los utilizan
SeguridadyPermisosCadaaplicacioncreada en /data/ tiene un UID unicoCadaaplicacioncreada en /system es de otro UID ygeneralmente no se puedeborrar del sistemaLa seguridad de aplicacionespuederequerirfirmar el APK con unamismallaveparaverificar sea validoA suvez, Certificadosasociados con el “System” previeneningreso no autoizadoEn un “rooted” phone estospermisos son validosperopueden ser reemplazados.
Muchosotrosservicios en AndroidLocation: GPS a travez de LocationProvidersMultimedia Mensajeria de Textoy MultimediaBusquedaMuchosmaslocalizados en: http://developer.android.com/resources/index.html
VeamosEjemplo de “APIDemo”ViewsAppOSWebViewsListActivity
Codigo de Android Goldfish: ArquitecturaProveida en Android 2.2
MyDroid : Open SourcePodemosrevisartodo el codigo de los “Repos” de Google, incluyendocodigo de HTC, yotros “Vendors”Quepodemosencontrar:Un Browser: Browser AppUn 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
NDKSe puedencrearlibrerias de extension .so en C/C++Ejemplos de combinacionNativo + JavaBluetoothRIL : Radio Interface Layer Camera AppDRM: Digital Rights ManagementNow your own applications!
NDK
NDKCodigo en C
Futuro de  Desarrollo de AppsApp Inventor : Enlistarsepararevisar BETA
MOTODEV DEMOMotorola

Más contenido relacionado

PPT
Taller de Android
PDF
"Android de la A a la Z" -- Unidad 8
PDF
Android de la A a la Z PARTE 2 de 3 ulises gonzalez
PDF
"Android de la A a la Z" -- Unidad 3
PDF
Curso de Android 4.x Unidad 02 SDK y AVD Manager
DOCX
Android de la A a la Z - Unidad 3
DOCX
"Android de la A a la Z" -- Unidad 2
PDF
"Android de la A a la Z" -- Unidad 6
Taller de Android
"Android de la A a la Z" -- Unidad 8
Android de la A a la Z PARTE 2 de 3 ulises gonzalez
"Android de la A a la Z" -- Unidad 3
Curso de Android 4.x Unidad 02 SDK y AVD Manager
Android de la A a la Z - Unidad 3
"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 6

La actualidad más candente (20)

PPT
Fundamentos desarrollo de Apps para Android
PDF
Curso de desarrollo de aplicaciones Android - Sesión 1
PPTX
Android p
PPTX
Android
PPT
Desarrollo android - 3 - entorno de desarrollo
PPTX
Tema: Android Studio
PPTX
Java eclipse-y-android-studio
PPTX
Winulator grupo6
PPTX
Netbeans Ide ENFEES
PPTX
Android Studio
PDF
"Android de la A a la Z" -- Unidad 1
DOCX
Componentes necesarios de android docx
PDF
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
PPT
Tutorial Android 1
ODP
Android studio
ODP
Android Pres3
PDF
"Android de la A a la Z" -- Unidad 4
PPTX
PPT
Fundamentos del Desarrollo de Aplicaciones para Android
PPTX
Fundamentos desarrollo de Apps para Android
Curso de desarrollo de aplicaciones Android - Sesión 1
Android p
Android
Desarrollo android - 3 - entorno de desarrollo
Tema: Android Studio
Java eclipse-y-android-studio
Winulator grupo6
Netbeans Ide ENFEES
Android Studio
"Android de la A a la Z" -- Unidad 1
Componentes necesarios de android docx
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
Tutorial Android 1
Android studio
Android Pres3
"Android de la A a la Z" -- Unidad 4
Fundamentos del Desarrollo de Aplicaciones para Android
Publicidad

Destacado (8)

PDF
EGLACOMM / MEVIA APP TEASER
PDF
MEVIA en Español
PPTX
Cloud to Cable Video Platform
PPTX
Cloud to Cable TV - Music Platform
PDF
Ray Tracing Software and Emulation
DOCX
Mediamplify® y MEVIA White Paper - Español
PDF
Mediamplify® and MEVIA White Paper
PPT
Cadbury's Dairy Milk Chocolate
EGLACOMM / MEVIA APP TEASER
MEVIA en Español
Cloud to Cable Video Platform
Cloud to Cable TV - Music Platform
Ray Tracing Software and Emulation
Mediamplify® y MEVIA White Paper - Español
Mediamplify® and MEVIA White Paper
Cadbury's Dairy Milk Chocolate
Publicidad

Similar a Taller deandroid (20)

PDF
Deletreando Android
PPTX
App inventor
PDF
Introducción al desarrollo de aplicaciones para Android
PDF
Presentacion android mistela&tweets
PDF
Introducción a la programación androide
DOCX
Android de la A a la Z - Unidad 1
PPTX
Curso Iniciacion android
PDF
Documento de android
PPTX
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
PDF
FONTIC: Introducción al desarrollo en Android
DOCX
Android
DOCX
Android
PPT
Curso Desarrollo Android
PDF
Android reversing 101.pdf
PDF
Seminario Android (Parte 1) - movilforum
PPTX
Sistema operativo
DOCX
Componentes para programar en android
PPTX
Preparación del entorno de desarrollo de android
PDF
Introducción a Android: 10 cosas importantes que hay que entender
PPTX
Sistema Operativo Android
Deletreando Android
App inventor
Introducción al desarrollo de aplicaciones para Android
Presentacion android mistela&tweets
Introducción a la programación androide
Android de la A a la Z - Unidad 1
Curso Iniciacion android
Documento de android
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
FONTIC: Introducción al desarrollo en Android
Android
Android
Curso Desarrollo Android
Android reversing 101.pdf
Seminario Android (Parte 1) - movilforum
Sistema operativo
Componentes para programar en android
Preparación del entorno de desarrollo de android
Introducción a Android: 10 cosas importantes que hay que entender
Sistema Operativo Android

Más de Dr. Edwin Hernandez (20)

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

Último (20)

PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
taller de informática - LEY DE OHM
PDF
Maste clas de estructura metálica y arquitectura
DOCX
Trabajo colaborativo Grupo #2.docxmmuhhlk
PDF
Aristoteles-y-su-forma-de-entender-el-conocimiento-y-las-personas.pdf
PPTX
Introduccion a servidores de Aplicaciones (1).pptx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
SAP Transportation Management para LSP, TM140 Col18
DOCX
Trabajo colaborativo Grupo #2.docxmkkkkkkl
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Conceptos básicos de programación tecnología.pdf
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPTX
Administración se srevidores de apliaciones
PDF
ACTIVIDAD 2.pdf j
PDF
clase auditoria informatica 2025.........
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
diagrama de pareto.pdf valerie giraldo diaz
PDF
Temas y subtemas de las fichas 1 y 2.pdf
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
taller de informática - LEY DE OHM
Maste clas de estructura metálica y arquitectura
Trabajo colaborativo Grupo #2.docxmmuhhlk
Aristoteles-y-su-forma-de-entender-el-conocimiento-y-las-personas.pdf
Introduccion a servidores de Aplicaciones (1).pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
SAP Transportation Management para LSP, TM140 Col18
Trabajo colaborativo Grupo #2.docxmkkkkkkl
Presentación PASANTIAS AuditorioOO..pptx
Conceptos básicos de programación tecnología.pdf
Plantilla para Diseño de Narrativas Transmedia.pdf
Administración se srevidores de apliaciones
ACTIVIDAD 2.pdf j
clase auditoria informatica 2025.........
REDES INFORMATICAS REDES INFORMATICAS.pptx
diagrama de pareto.pdf valerie giraldo diaz
Temas y subtemas de las fichas 1 y 2.pdf
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...

Taller deandroid

  • 1. Android: Arquitectura, Desarrollo, NavegandocódigoEdwin Hernandez, PhDUBIWIRELESS, LLCTaller : WebConf Latino Julio 22, 2010
  • 2. Contenido de la PresentaciónIntroducción a la architectura de AndroidFormas de trabajar en AndroidAndroid SDK : Desarrollar ApplicacionesAndroid NDK: Desarrollar librerias nativasMyDroid: Codigo entero que corre en el emulador o en el telefono.
  • 3. 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ónKERNEL: LINUX 2.6-* que se continua actualizandoCada “release” tiene nombres de postres, “cupcake”, “donut”, “eclaire”, etc
  • 4. Logica para programa en AndroidCodigo en JAVA+C/C++Recursos en XMLCompilacion a.classGeneracion .DEX con OptimizacionArchivo APK
  • 6. Arquitectura simple de un SmartphoneModemGSM/3G/CDMAAPAndroid RuntimeLinux Kernel2.6.xModem Link
  • 7. Componentes del MiddlewareApplication/ActivityAndroid ServiceJNI (Java)Java Native InterfaceMiddleware/Native ServiceBSP Component
  • 8. Otraspartes de AndroidFramework en Java con muchosobjetosyclasesparautilizarDalvik virtual machine: Dalvik-VM Integrated browser based on the open source WebKit engineGráficos con OpenGL ESSQLiteparaalmacenardatosMultimedia: 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 LinuxLinux: Uso del “driver model,” open source, Abstraccion de Hardware (HAL), manejo de memoria, seguridadLibreriasNativas: 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 AndroidPrimero: 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
  • 12. Ambiente de DesarrolloEclipse/MotoDevBajar el SDK dehttp://source.android.com/source/download.htmlSeguirinstrucciones de Google parainstalar SDKImportant componentsADB: Android Debug Build DDMS: Debug Data Management System Android script: Para crearAVDs (Android Virtual Device)Emulator: QEMU parasimular el telefonoDX: Converte los .class a DEX
  • 15. DDMS
  • 19. Estructura de lasAplicaciones AndroidSDK Demo utilizando Eclipse yAPIDemos
  • 20. Componentes de un APKActivity: Es la “actividad.” Muchoscrean un “Application” con muchas “actividades”Intent: Mecanismoutilizadoparaactivarcomponentesycomunicarse entre actividades. Broadcast Receiver: Estandiseñadospararegistrarse a leer “Intents” yrecibirlosContent Providers: Proveendatos a todo el sistema, acceso a Contactos, Listado de Mensajes, DRMServices: No tienen UI, ypor lo general correr en el “background”
  • 23. ActivityUnidad Principal. Unaactividades lo que se ejecutayesmanejadopor el Dalvik-VM en un “life-cycle”. Unaaplicacionpuedetenervariasactividadesentrelazadas, perosolamenteunaes la que se lanza del icono principalEl UI se define via el archivo “Manifest,” DroidDrawo un XML EditorEl Archivo Manifest, contieneimportantesdefinicionespara la “Actividad,” UI, filtros de intents, otrasactividades, permisos de acceso.
  • 24. ServiceUn servicio, probablemente no tiene UIGeneralmenteutlizaNoticacionesy el Toolbar parapresentaractualizacionesGeneralmente se comienay se manaja en el backgroundTratar de utilizar la claseAsyncTaskparacorrerprocesos en el “background”
  • 25. IntentMecanismo de comunicación entre actividades (Activities)Puede ser implicito, oexplicitoSe puedehacer un Broadcast Intent, o se puedeseleccionar la claseque se quierelanzar.Se puedendefinirnuevos intents, INTENT_WEBCONF si se desa via archivo manifest
  • 26. Broadcast ReceiverSe implementapararecibir un Intent, ya sea queeste en el sistema: e.g. ACTION_CALL ocualquier intent creadoporunaactividadEl BroadCastRecieveresutilapramanejareventosChequear los “Permissions” siempre, no todos los Intents puedenrecibirseporunaclases de estetipo
  • 27. Content Provider Es simplementeunaabstraccionparaaccesarunaclase de datos, de unaovariastablas en SQLITE o en un archivoEl ContentProviderimplementa el acceso a la clase, se puedeutlizar de variasactividadesy no se necesitanhaceruso de comandostipo SELECT como en SQLITEMuchos “Developers” no los utilizan
  • 28. SeguridadyPermisosCadaaplicacioncreada en /data/ tiene un UID unicoCadaaplicacioncreada en /system es de otro UID ygeneralmente no se puedeborrar del sistemaLa seguridad de aplicacionespuederequerirfirmar el APK con unamismallaveparaverificar sea validoA suvez, Certificadosasociados con el “System” previeneningreso no autoizadoEn un “rooted” phone estospermisos son validosperopueden ser reemplazados.
  • 29. Muchosotrosservicios en AndroidLocation: GPS a travez de LocationProvidersMultimedia Mensajeria de Textoy MultimediaBusquedaMuchosmaslocalizados en: http://developer.android.com/resources/index.html
  • 31. Codigo de Android Goldfish: ArquitecturaProveida en Android 2.2
  • 32. MyDroid : Open SourcePodemosrevisartodo el codigo de los “Repos” de Google, incluyendocodigo de HTC, yotros “Vendors”Quepodemosencontrar:Un Browser: Browser AppUn 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. NDKSe puedencrearlibrerias de extension .so en C/C++Ejemplos de combinacionNativo + JavaBluetoothRIL : Radio Interface Layer Camera AppDRM: Digital Rights ManagementNow your own applications!
  • 36. NDK
  • 38. Futuro de Desarrollo de AppsApp Inventor : Enlistarsepararevisar BETA