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
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
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
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
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!