Anda di halaman 1dari 32

Desarrollo con Android

Sergio Aguado Gonzlez Haga clic para modificar el sergio.aguado@cuatroochenta.com patrn http://www.cuatroochenta.com

estilo de subttulo del

1/30/13

ndice
Qu

es Android? Requisitos para programar Estructura de una aplicacin Activities, intents y ciclo de vida

1/30/13

Qu es Android?
Un

sistema operativo basado en Linux para dispositivos mviles Una mquina virtual Java (Dalvik) Un SDK y un framework de aplicacin con diversas libreras:

2D y 3D SQLite Media, Bluetooth, Cmara, GPS, brjula, acelermetro,

1/30/13

Qu se puede hacer con Android?


Programar

aplicaciones utilizando su framework de desarrollo Personalizar el sistema operativo o realizar aplicaciones nativas (CyanogenMod)

1/30/13

Qu se necesita para programar en Android?


Eclipse Plugin

ADT (Android Developer Tools) Android SDK Lenguaje de programacin Java


http://developer.android.com/sdk/installing.html

o C y C+ +!!!

1/30/13

Arquitectura de Android

1/30/13

Arquitectura de Android
Aplicaciones

Todas las aplicaciones tienen los mismos permisos y las mismas restricciones

Framework

de aplicacin

Infraestructura que ofrece Android para no reinventar la rueda:


Componentes visuales Gestin del ciclo de vida de la aplicacin

1/30/13

Arquitectura de Android
Libreras

Escritas en C y C++. Se acceden a travs del framework de aplicacin

Kernel

1/30/13

Hello Android!!!

1/30/13

Hello Android!!!

1/30/13

Hello Android!!!

1/30/13

Estructura bsica de una aplicacin


Activities Recursos

Layout Imgenes Strings Otros: animaciones, colores, menus, estilo, raw

AndroidManifest.xml

1/30/13

Activity
Cada

una de las pantallas de una aplicacin Para mostrar componentes visuales se utilizan los layouts
public class HelloActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }

1/30/13

Layout
Una

jerarqua de vistas

Componentes visuales (View) Contentedores (ViewGroup)

1/30/13

Layout

Componentes visuales
Label Button Image Date y Time Picker Map WebView

1/30/13

Layout

Contenedores:
LinearLayout TableLayout RelativeLayout TabLayout AbsoluteLayout (NO!!)

1/30/13

Flujo de navegacin
El

flujo de una aplicacin se define como una sucesin de Activities De la misma aplicacin o entre diferentes aplicaciones (colaborar!!!!!!) Las actividades comunican lo que quieren a travs de Intents

1/30/13

Flujo de navegacin. Intent


Descripcin

de una accin a realizar Dos tipos de Intents:


Explcitos: Se indica la actividad concreta Implcitos: Se indica lo que se quiere (mostrar un navegador, enviar un correo,)

Se

compone de:

Accin: Qu se quiere hacer Uri: El dato principal (telfono, id de un contacto) Categora: Informacin adicional de la accin Extras (Bundle): un hash donde incluir ms datos

1/30/13

Flujo de navegacin. Intent


Ejemplos

de acciones:
String uri = "tel:964964964"; Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse(uri)); startActivity(intent);

ACTION_MAIN ACTION_VIEW ACTION_PICK ACTION_SEND ACTION_CALL

String asunto = "Asunto"; String texto = "Algo de texto"; Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("plain/text"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {"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);

1/30/13

Flujo de navegacin. Intent


Una

aplicacin puede registrarse mediante filtros a cualquier Intent. No hay aplicacin ms importante que otra

1/30/13

Flujo de navegacin. Intent


La

activity inicial tambin se inicia con un Intent

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns: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"> <activity android:name=".HelloActivity android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MailActivity android:label="@string/mail_title"> </activity> <! Otras actividades . . . . . . . . . -- > </application> </manifest>

1/30/13

AndroidManifest.xml
El

paquete de la aplicacin (nombre nico) Componentes de la aplicacin (actividades, servicios, ) Qu Intents pueden pueden gestionar Permisos que necesita la aplicacin para funcionar: acceder a la posicion, utilizar la cmara, recibir smss, Libreras necesarias (p.e. Google Maps)

1/30/13

Ciclo de vida de una actividad


Idea

principal: minimizar consumo de recursos Se divide el flujo de navegacin mediante Activities Las activities:

se inician se paran se destruyen si ya no se necesitan

1/30/13

Ciclo de vida de una actividad


Bsicamente

hay tres estados:

Activo: Se est ejecutando y est visible en pantalla Pausada: Est todava visible en pantalla pero no tiene el foco Parada: No est visible en pantalla y ya no se est ejecutando

1/30/13

Ciclo de vida de una actividad

Vida completa

1/30/13

Ciclo de vida de una actividad

Vida visible

1/30/13

Ciclo de vida de una actividad

Vida con foco

1/30/13

Ciclo de vida de una actividad


onCreate:

Crear vistas, popular listas. Recuperar estado previo si lo hay onRestart: onStart: onResume: si hay algo parado volverlo a ejecutar. Recuparar onPause: pausar todo aquello que requiera de mucha CPU. Por ejemplo animaciones. Guardar informacin necesaria pues pueden matar el proceso sin previo aviso onStop: onDestroy: 1/30/13

Diferentes tamaos de pantalla


Android

cuenta con dispositivos con distint@s:


Tamaos de pantalla Resoluciones de pantalla Relaciones de aspecto Densidad de pxels (pxels por pulgada)

Ejemplo: Una imagen de 200x200 pixels no se ve igual de grande en todos los dispositivos

http://

1/30/13

Diferentes tamaos de pantalla

1/30/13

Diferentes tamaos de pantalla


Density

Independent Pixel: Unidad de pxel virtual para poder definir una interfaz 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_den
1/30/13

Diferentes tamaos de pantalla


No

trabajar con Absolute Layout Tener recursos para distintas densidades (low, medium, high) Usar dips y nunca pixels

1/30/13

Anda mungkin juga menyukai