Introduccion a Android

32
Introducción a

description

Materiales del Seminario "Introducción a Android" impartido por Paradigma Tecnológico y Javahispano el 25 de noviembre de 2010 en San Pablo CEU

Transcript of Introduccion a Android

Page 1: Introduccion a Android

Introducción a

Page 2: Introduccion a Android

¿Qué es y de dónde viene?

Page 3: Introduccion a Android

¿De dónde viene?

Operadores Móviles

Fabricantes de teléfonos

Semiconductores

Comercialización

Software

Page 4: Introduccion a Android

Línea cronológica

5 Nov, 200734 Líderes

tecnológicos forman la Open Handset Alliance

12 Nov, 2007Primeras pruebas de desarrolladores con el

SDK

28 Ago, 2008Se anuncia el Android

Market

23 Sep, 2008Primer teléfono

Android

23 Sep, 2008Android 1.0 SDK

release 1 disponible

21 Oct, 2008Código fuente liberado

Page 5: Introduccion a Android

¿Qué es Android?• No es sólo un Sistema Operativo.• Es un conjunto de software para dispositivos

móviles que incluye:– Sistema Operativo– Middleware– Aplicaciones

• Construido sobre un núcleo Linux 2.6.• Open Source.• Diseñado para poder acceder a todas las

capacidades del dispositivo.

Page 6: Introduccion a Android

Arquitectura

Page 7: Introduccion a Android

Entorno de desarrollo• Ingredientes:

– Android SDK http://developer.android.com/sdk/index.html

– Java Development Kit (JDK 5 o 6) http://www.oracle.com/technetwork/java/javase/downloads/index.html

– Java IDE (Eclipse 3.5 o 3.6) + Plug-in ADT http://www.eclipse.org/downloads/ http://developer.android.com/sdk/eclipse-adt.html

• Pasos:1. Instalar JDK y eclipse2. Instalar plug-in ADT3.Descargar SDK, descomprimir y configurar Eclipse4.Descargar plataformas Android mediante el SDK

Manager

Page 8: Introduccion a Android

Emulador y AVD• Emulador de Android muy completo

– Conectividad de red.– Simular SMS.– Simular GPS.– …

• ADT plug-in lo integra en Eclipse• Android Virtual Device (AVD): simula el software y hardware específicos.

– Versión específica de Android.– Resolución de pantalla.– Densidad de píxeles.– Tarjeta SD.– Pantalla táctil– GPS– …

Page 9: Introduccion a Android

Debug

• Dalvik Debug Monitor Service (DDMS) y ADB– Ver procesos, pausarlo y activarlos.– Ver estado de la memoria y la pila.– Explorar el sistema de ficheros.– Push/Pull de ficheros.– Ver logs.

• ADT plug-in incluye una perspectiva DDMS

Page 10: Introduccion a Android

EjemploEntorno de Desarrollo

Page 11: Introduccion a Android

Artefactos principales

• Activity: equivale a una ventana de la aplicación.

• Service: componente de una aplicación sin interfaz ejecutándose en background.

• ContentProvider: mecanismo genérico para compartir datos entre aplicaciones.

• BroadcastReceiver: permite escuchar eventos broadcast enviado por otras aplicaciones.

Page 12: Introduccion a Android

Activity• Una Activity muestra una interfaz de usuario.• Un aplicación puede estar formada por uno o varios Activity.• Todas se declaran en AndroidManifest.xml• setContenView() --> asigna interfaz de usuario a dicha actividad

import android.app.Activity;import android.os.Bundle;

public class MyFirstActivity extends Activity {

@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView text = new TextView(this); setContentView(text); }}

setContentView (R.layout.main);

Page 13: Introduccion a Android

Interfaz Gráfica• Dos formas de construirlas:

– Código Java– Código XML

• Cada pantalla en un fichero. • Elementos gráficos:

– Widgets: TextView, EditText, ListView, Button, Checkbox, RadioButton ….

– Layouts: FrameLayout, LinearLayout, RelativeLayout …

• Eclipse integra un editor XML.

Page 14: Introduccion a Android

Estructura ficheros• /gen/R.java - Contiene ID de

recursos contenidos en /res/• /res/drawable / - imágenes de

la aplicacion• /res/layout / - ficheros con la

definición de la interfaz gráfica• /res/values / - otro recursos de

la aplicación (strings.xml, styles.xml …)

• AndroidManifest.xml - Contiene información sobre la aplicación: actividades, permisos, bibliotecas …

Page 15: Introduccion a Android

EjemploHello, World!

Page 16: Introduccion a Android

Interacción con el usuario• Android proporciona interfaces Listener en las

que implementar acciones frente a eventos.• Asignar al elemento gráfico el Listener deseado e

implementar el método.• Ejemplo: OnClickListenerpublic class MyFirstActivity extends Activity

implements OnClickListener {public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Button myButton = (Button)findViewById(R.id.MyButton); myButton.setOnClickListener(this); }}

public void onClick (View v){// Hacer lo que se quiera

}

Page 17: Introduccion a Android

EjemploEvento OnClick

Page 18: Introduccion a Android

Arrancar una Activity. Intents• Intents: Mecanismo para intercambiar mensajes entre

Activities o aplicaciones.• Utilizado comúnmente para arrancar Activities.

Intent myIntent = new Intent(MyFirstActivity.this, MySecondActivity.class);

startActivity(myIntent);// Si queremos feedback de la nueva ActivitystartActivityForResult(myIntent,REQUEST_CODE);

Lanzar Activity de manera explícita:

Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(“http://www.google.com”);

startActivity(myIntent);

Lanzar Activity de manera implícita:

Page 19: Introduccion a Android

Intent-Filter• Definen que tipo de Intent lanzará la actividad en la que se definen• Etiquetas:

– action– category

ALTERNATIVE, SELECTED_ALTERNATIVE, BROWSABLE, DEFAULT, GADGET, HOME, LAUNCHER– data

• android:host• android:mimetype• android:path• android:port• android:scheme

• Se resuelven en tiempo de ejecución. Si varios encajan en la definición se muestra una lista de las posibilidades

<activity android:name=“.MyActivity” android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity>

Page 20: Introduccion a Android

Paso de parámetros. Intent.

• Un Intent puede llevar objetos de una actividad a otra.

• Actividad Origen. Insertar objeto:

• Actividad Destino. Recoger objeto:

myIntent.putExtra(“CIUDAD”, “Madrid”);

Intent intent = getIntent();String s = intent.getStringExtra(“CIUDAD”);

Page 21: Introduccion a Android

EjemploCrear Nuevas Actividades

Page 22: Introduccion a Android

Broadcast Events• Las aplicaciones pueden difundir eventos broadcast

con forma de Intents

• Registra un Broadcast Receiver para escuchar los eventos deseados

Intent intent = new Intent (“com.paradigma.MENSAJE_RECIBIDO”);i.putExtra(“from”, “Ana”);sendBroacast(intent);

<receiver android:name=".MensajeRecibido"> <intent-filter> <action android:name="com.paradigma.MENSAJE_RECIBIDO"/> </intent-filter></receiver>

public class MensajeRecibido extends BroadcastReceiver{ @Override public void onReceive (Context content, Intent intent){ // Hacer lo que se quiera }

2. Define <receiver> en tu AndroidManifest.xml (o bien por código java)

1. Crea tu clase heredando de BroadcastReceiver y sobreescribe el método onReceive(…)

Page 23: Introduccion a Android

Service• Crear un servicio

public class MyService extends Service {@Overridepublic void onCreate() {

// Inicializar variable y posible hebra}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {// Lanzar hebra que haga el procesadoreturn Service.START_STICKY;}

• Declararlo en AndroidManifest.xml<service android:enabled="true" android:name=".MyService"/>

• Arrancar/Detener un serviciostartService(new Intent(this, MyService.class));stopService(new Intent(this, MyService.class));

Page 24: Introduccion a Android

Ciclo de Vida (I)• Estados de una Activity:

– Active: en el primer plano y con foco– Paused: visible pero sin foco– Stopped: no visible– Inactive: no arrancada

• Transición entre estado marcadas por llamadas a los métodos:– void onCreate(Bundle savedInstanceState)– void onStart()– void onRestart()– void onResume()– void onPause()– void on Stop()– void onDestroy()

Page 25: Introduccion a Android

Ciclo de Vida (II)

Page 26: Introduccion a Android

EjemploCiclo de Vida

Page 27: Introduccion a Android

Geolocalización

Page 28: Introduccion a Android

Servicio de Localización• Servicios de localización:

– LocationManager– LocationProvider

• Obtener una instancia de LocationManager:

• Seleccionar un LocationProvider:

• Usar un criterio con los requisitos requeridos.

• El emulador permite simular GPS

LocationProvider locProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER);

Criteria criteria = new Criteria();criteria.setAccuracy(Criteria.ACCURACY_COARSE);criteria.setPowerRequirement(Criteria.POWER_LOW);

LocationManager locationManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE)

Page 29: Introduccion a Android

Google Maps• Mostrar ubicación sobre los mapas de Google• Obtener API Key

http://code.google.com/intl/es-ES/android/add-ons/google-apis/mapkey.html

• Crear clase heredando de MapActivity• Incluir un MapView en el layout

• Incluir permisos en el AndroidManifest.xml– INTERNET– ACCESS_FINE_LOCATION– ACCESS_COARSE_LOCATION

<com.google.android.maps.MapView android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent“ android:clickable="true" android:apiKey=“adsfoij40sg09ewATAasg90” />

Page 30: Introduccion a Android

Conclusiones

Page 31: Introduccion a Android

Conclusiones

• Android te proporciona todas la herramientas necesarias para programar una aplicación

• SDK Multiplataforma• Licencia desarrollador (25USD)• Distribución a través del Android Market,

Markets alternativos o de manera directa• Control de aplicaciones menos estricto que en

otras plataformas• La valoración de los usuario influye en el

posicionamiento de tu aplicación

Page 32: Introduccion a Android

¿Preguntas?