1 / 32

Desarrollo con Android

Desarrollo con Android. Sergio Aguado González sergio.aguado@cuatroochenta.com http://www.cuatroochenta.com. Índice. ¿Qué es Android ? Requisitos para programar Estructura de una aplicación Activities , intents y ciclo de vida. ¿Qué es Android ?.

whitby
Télécharger la présentation

Desarrollo con Android

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Desarrollo con Android Sergio Aguado González sergio.aguado@cuatroochenta.com http://www.cuatroochenta.com

  2. Índice • ¿Qué es Android? • Requisitos para programar • Estructura de una aplicación • Activities, intents y ciclo de vida

  3. ¿Qué es Android? • Un sistema operativo basado en Linux para dispositivos móviles • Una máquina virtual Java (Dalvik) • Un SDK y un framework de aplicación con diversas librerías: • 2D y 3D • SQLite • Media, Bluetooth, Cámara, GPS, brújula, acelerómetro,…

  4. ¿Qué se puede hacer con Android? • Programar aplicaciones utilizando su framework de desarrollo • Personalizar el sistema operativo o realizar aplicaciones nativas… (CyanogenMod)

  5. ¿Qué se necesita para programar en Android? • Eclipse • Plugin ADT (AndroidDeveloper Tools) • Android SDK • Lenguaje de programación Java http://developer.android.com/sdk/installing.html o C y C++!!!

  6. Arquitectura de Android

  7. Arquitectura de Android • Aplicaciones • Todas las aplicaciones tienen los mismos permisos y las mismas restricciones • Framework de aplicación • Infraestructura que ofrece Android para no reinventar la rueda: • Componentes visuales • Gestión del ciclo de vida de la aplicación

  8. Arquitectura de Android • Librerías • Escritas en C y C++. Se acceden a través del framework de aplicación • Kernel

  9. HelloAndroid!!!

  10. HelloAndroid!!!

  11. HelloAndroid!!!

  12. Estructura básica de una aplicación • Activities • Recursos • Layout • Imágenes • Strings • Otros: animaciones, colores, menus, estilo, raw • AndroidManifest.xml

  13. Activity • Cada una de las pantallas de una aplicación • Para mostrarcomponentesvisuales se utilizan los layouts publicclassHelloActivityextends Activity { @Override publicvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }

  14. Layout • Unajerarquía de vistas • Componentesvisuales (View) • Contentedores (ViewGroup)

  15. Layout • Componentesvisuales • Label • Button • Image • Date y Time Picker • Map • WebView

  16. Layout • Contenedores: • LinearLayout • TableLayout • RelativeLayout • TabLayout • AbsoluteLayout (NO!!)

  17. Flujo de navegación • El flujo de unaaplicación se define comounasucesión de Activities • De la mismaaplicación o entre diferentesaplicaciones (colaborar!!!!!!) • Las actividadescomunican lo quequieren a través de Intents

  18. Flujo de navegación. Intent • Descripción de unaacción a realizar • Dos tipos de Intents: • Explícitos: Se indica la actividadconcreta • Implícitos: Se indica lo que se quiere (mostrar un navegador, enviar un correo,…) • Se compone de: • Acción: Qué se quierehacer • Uri: El dato principal (teléfono, id de un contacto) • Categoría: Informaciónadicional de la acción • Extras (Bundle): un hash dondeincluirmásdatos

  19. Flujo de navegación. Intent • Ejemplos de acciones: • ACTION_MAIN • ACTION_VIEW • ACTION_PICK • ACTION_SEND • ACTION_CALL Stringuri = "tel:964964964"; Intentintent = newIntent(Intent.ACTION_CALL); intent.setData(Uri.parse(uri)); startActivity(intent); String asunto = "Asunto"; String texto = "Algo de texto"; IntentemailIntent = newIntent(android.content.Intent.ACTION_SEND); emailIntent.setType("plain/text"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, newString[]{"contacto@decharlas.com"}); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, asunto); emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, texto); startActivity(Intent.createChooser(emailIntent, "Send your email in:")); //startActivity(emailIntent);

  20. Flujo de navegación. Intent • Unaaplicaciónpuederegistrarsemediantefiltros a cualquier Intent. • No hay aplicaciónmásimportantequeotra

  21. Flujo de navegación. Intent • La activity inicialtambién se inicia con un Intent <?xmlversion="1.0" encoding="utf-8"?> <manifestxmlns:android="http://schemas.android.com/apk/res/android" package="es.uji.decharlas.android" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activityandroid:name=".HelloActivity” android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN" /> <categoryandroid:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activityandroid:name=".MailActivity” android:label="@string/mail_title"> </activity> <!– Otras actividades . . . . . . . . . -- > </application> </manifest>

  22. AndroidManifest.xml • El paquete de la aplicación (nombre único) • Componentes de la aplicación (actividades, servicios, …) • Qué Intents pueden pueden gestionar • Permisos que necesita la aplicación para funcionar: acceder a la posicion, utilizar la cámara, recibir smss,… • Librerías necesarias (p.e. Google Maps)

  23. Ciclo de vida de una actividad • Idea principal: minimizarconsumo de recursos • Se divide el flujo de navegaciónmediante Activities • Las activities: • se inician • se paran • se destruyensiya no se necesitan

  24. Ciclo de vida de una actividad • Básicamente hay tresestados: • Activo: Se estáejecutando y está visible en pantalla • Pausada: Estátodavía visible en pantallapero no tiene el foco • Parada: No está visible en pantalla y ya no se estáejecutando

  25. Ciclo de vida de una actividad Vida completa

  26. Ciclo de vida de una actividad Vida visible

  27. Ciclo de vida de una actividad Vida con foco

  28. Ciclo de vida de una actividad • onCreate: Crear vistas, popular listas. Recuperarestadopreviosi lo hay • onRestart: • onStart: • onResume: si hay algoparadovolverlo a ejecutar. Recuparar • onPause: pausartodoaquelloquerequiera de mucha CPU. Porejemploanimaciones. Guardarinformaciónnecesariapuespuedenmatar el proceso sin previoaviso • onStop: • onDestroy:

  29. Diferentes tamaños de pantalla • Android cuenta con dispositivos con distint@s: • Tamaños de pantalla • Resoluciones de pantalla • Relaciones de aspecto • Densidad de píxels (píxelsporpulgada) Ejemplo: Una imagen de 200x200 pixels no se ve igual de grande en todos los dispositivos http://www.google.com/phone/

  30. Diferentes tamaños de pantalla

  31. Diferentes tamaños de pantalla • Density Independent Pixel: Unidad de píxel “virtual” parapoderdefinirunainterfaz de usuario de forma independiente 1dip = 1 pixel en una pantalla de 160 dpi (punto por pulgada) pixels = dips * (density / 160) http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density

  32. Diferentes tamaños de pantalla • No trabajar con Absolute Layout • Tenerrecursosparadistintasdensidades (low, medium, high) • Usar dips y nunca pixels

More Related