Vous êtes sur la page 1sur 72

Tema 1

Introduccin a la plataforma de
desarrollo para Android
BREVE REPASO DE LA TEORA DE
ORIENTACIN A OBJETOS CON JAVA.
Java
Variables
bytes: Ocho bits.
int: Entero de 32 bits.
long: Entero de 64 bits.
float: Nmero en coma flotante de 32 bits.
double: Nmero en coma flotante de 64 bits.
char: Carcter ASCII.
boolean: Valor verdadero o falso

Java
Sentencias de control
if (cond) {
// hacer algo
} else {
// hacer otra cosa
}
for(inicializacin; condicin; incr) {
//Repite la accin
}
while (condicin) {
//Repite la accin
}
Java
Objetos
Java es un lenguaje orientado a objetos.
Todo en Java es un objeto.
Los objetos son instancias de clases.

Java
Clases
Una clase define los objetos de ese tipo:

class MyClass {
private int myAttribute;

public int getMyAttribute() {
return myAttribute;
}
public void setMyAttribute(int attr) {
myAttribute = attr;
}
}
Java
Clases
La palabra private indica que no se podr
acceder a esa variable (atributo en la
nomenclatura orientada a objetos) desde
fuera del objeto.
Las funciones (mtodos en la nomenclatura
orientada a objetos) estn definidas como
public, con lo que si que sern accesibles.
Java
Clases
Instanciaremos una clase de la siguiente
forma:
MyClass myObject = new MyClass();
Con esto obtenemos un objeto del tipo
MyClass llamado myObject.
OJO! Esto no crea una instancia del objeto:
MyClass myObject;

Java
Clases
Para acceder a los atributos y mtodos de un
objeto lo haremos mediante el operador .
myObject.getMyAttribute();
Retornar un entero
myObject.myAttribute;
Dar un error en tiempo de compilacin ya que
el atributo est definido como private.

Lecturas recomendadas
Documentacin oficial de Oracle:
http://download.oracle.com/javase/tutorial/java/i
ndex.html
QUE ES ANDROID Y SU
ARQUITECTURA
Qu es Android?
Sistema operativo para mviles
Basado en el kernel de Linux
Utiliza una JVM propia: Dalvik

Qu no es Android?
Una implementacin de Java ME
Una distribucin de GNU/Linux

Arquitectura del sistema
Kernel (Ncleo)
Ofrece servicios bsicos: drivers, gestin de
procesos, etc.
Basado en la versin 2.6 del kernel de Linux.
Nos provee de una capa de abstraccin entre
el hardware y el resto de servicios.

Libreras Nativas y
Run Time
Libreras C/C++ nativas
La mayora de las aplicaciones acceden a
ellas a travs de Dalvik
Soporte para OpenGL, SQLite, SSL, WebKit

Application Framework
El framework nos proporciona las clases para
crear aplicaciones de Android.
Incluye libreras para el manejo de la
interfaz, notificaciones, telefona,
localizacin, acceso a datos, etc.

Application Layer
En esta capa se encuentran nuestras
aplicaciones y las aplicaciones nativas del
sistema.
Como ejemplos tenemos la aplicacin de
contactos, de telefona, el navegador o el
escritorio.
APLICACIONES: TIPOS Y
COMPONENTES
Aplicaciones
Tipos
Primer plano: til solo en primer plano.
Aplicaciones que requieran la interaccin con el
usuario. Explorador web.
Segundo plano: Pasa la mayor parte del tiempo
en segundo plano. Aplicacin de llamadas.
Intermitente: til tanto en primer como en
segundo plano. Aplicacin de correo.
Widget: Pequeas aplicaciones en el escritorio.

Aplicaciones
Las aplicaciones estn formadas por
componentes unidos por un manifest que los
describe y define como interactan.
Manifest: Fichero XML que especifica los
diferentes componentes de los que se compone
nuestra aplicacin.
Existen seis componentes: Activities, Services,
Content Providers, Intents, Broadcast Receivers,
Widgets y Notifications.

Aplicaciones
Activities: Equivalen a los formularios de las
aplicaciones de PC. Utilizan Views que son el
equivalente a los controles de las
aplicaciones de PC (TextBox, Command, etc.)
Services: Se ejecutan en segundo plano.
Actualizan las activities visibles y lanzan
Notifications.

Aplicaciones
Content Providers: Almacenes de datos
compartidos. Se utilizan para intercambiar
informacin entre procesos.
Intents: Framework de paso de mensajes
entre aplicaciones o componentes de una
misma aplicacin. Se utilizan para pedir
acciones a otras aplicaciones o
componentes.

Aplicaciones
Broadcast Receivers: Reciben intents de los
que se ha hecho un broadcast y actan en
consecuencia.
Widgets: Son componentes que se aaden
al escritorio del usuario.
Notifications: Las notificaciones permiten
avisar al usuario sin interrumpir las Activities
que hay en primer plano


Aplicaciones
A lo largo del curso veremos todos y cada uno
de estos componentes con ms detalle.
Implementaremos aplicaciones que hagan uso
de ellos y veremos como se interrelacionan.
Ahora debe quedarte claro que las
aplicaciones pueden estar formadas por 6
tipos de componentes y se unen mediante el
manifest.
MANOS A LA OBRA!
Instalacin y configuracin del SDK y de Eclipse.
Instalacin y configuracin
Instalaremos el SDK de Android.
Configuraremos Eclipse para utilizar el plug-
in ADT.
Instalacin y configuracin
Prerrequisitos
Necesitaremos tener instalado el Java
Development Kit (JDK).
Incluye las herramientas de compilacin de
Java (javac, etc).
http://www.oracle.com/technetwork/java/jav
ase/downloads/index.html
Instalacin y configuracin
Prerrequisitos
Adems, como vamos a utilizar eclipse como
entorno de desarrollo tambin deberemos
descargarlo.
Se recomienda descargar la versin Eclipse
Classic.
http://www.eclipse.org/downloads/
Instalacin y configuracin
SDK Starter Package
Una vez descargados e instalados tanto eclipse
como el JDK deberemos descargar el SDK
Starter Package.
Incluye todas las utilidades para compilar y
ejecutar programas para android.
http://developer.android.com/sdk/index.html
Instalacin y configuracin
SDK Starter Package
Este paquete de utilidades nos permitir
descargar los SDK especficos de cada versin
de Android.
Para ello, vamos al directorio donde los hemos
instalado y en el subdirectorio tools
ejecutaremos la aplicacin android
(android.exe en los sistemas windows)
Instalacin y configuracin
SDK Starter Package
Deberemos seleccionar las versiones del SDK
para las que queremos desarrollar y hacer clic
en install.
En nuestro caso descargaremos:
Tools/Android SDK platform-tools
Android 4
Instalacin y configuracin
Android Development Tools (ADT)
Una vez instalada la versin del SDK que
vamos a utilizar, procederemos a instalar en
eclipse el plugin para desarrollo en Android
llamado:
Android Development Tools (ADT)
Instalacin y configuracin
Android Development Tools (ADT)
Deberemos abrir eclipse e ir al men:
Help / Install new software
A continuacin deberemos hacer clic en el
boton Add e introducir el siguiente
repositorio:
https://dl-ssl.google.com/android/eclipse/

Instalacin y configuracin
Android Development Tools (ADT)
Deberemos seleccionar Developer Tools y
continuar con la instalacin:
Instalacin y configuracin
Android Development Tools (ADT)
Una vez instalado el plugin ADT deberemos
reiniciar eclipse.
Al ejecutarse de nuevo aparecer un asistente
en el que deberemos indicar la ubicacin
donde hemos instalado el SDK Starter Kit para
que ADT pueda saber que SDKs tenemos
instalados.
Lectura recomendada
Gua paso a paso oficial:
http://developer.android.com/sdk/installing.htm
l

Ejercicio 1
Ahora que ya tenemos nuestro entorno de
desarrollo instalado y configurado vamos ha
implementar nuestra primera aplicacin en
Android.
Para ello, debes seguir los pasos del Ejercicio 1
del boletn de ejercicios.
ORGANIZACIN DE UN PROYECTO
ANDROID
Manifest.xml y recursos
Organizacin
src/ -> Directorio con nuestro cdigo fuente.
res/ -> Directorio con los recursos del proyecto.
Imgenes, ficheros de layout...
gen/ -> Directorio con cdigo autogenerado por las
utilidades del SDK.
AndroidManifest.xml -> Define la estructura y los
metadatos de la aplicacin, sus componentes y sus
requisitos.

Organizacin
Directorio res/
Contiene los resources o recursos de nuestra
aplicacin.
Consta de varios directorios:
drawables-*: recursos grficos como el icono de nuestra
aplicacin. El sufijo indica la calidad de la imagen para
utilizar en diferentes resoluciones.
layout: contiene los ficheros xml que definirn el layout de
nuestras activities.
values: puede contener diferentes xml con valores
predefinidos.
Puede contener ms directorios que iremos viendo a lo
largo del curso.
Organizacin
La clase R
La definicin de la clase R se encuentra en el
directorio gen/
Esta clase se genera automticamente para
permitir el acceso a los recursos de res/
mediante cdigo.
No se debe editar el cdigo de esta clase bajo
ningn concepto!
Manifest
El Manifest.xml es un fichero xml en el que
definiremos los componentes de nuestra
aplicacin, los permisos que necesitar
utilizar, etc.
En el manifest del Ejercicio 1 la lnea:
<uses-sdk android:minSdkVersion="14" />
Especifica la versin mnima de la API de
Android en la que se puede ejecutar nuestra
aplicacin.
Manifest
En el bloque Application es donde se definen
los componentes de la aplicacin.
En este caso solo hay definida una activity y
dentro de ella un intent-filter que veremos
para que sirve ms adelante.
Fijate que la etiqueta label hace referencia a
@string/app_name
Que est definido en values/strings.xml

Manifest
El carcter @ se utiliza para indicar a Android que
obtenga el valor del recurso que se especifica a
continuacin.
El nombre de los componentes debe ir precedido
por el nombre del paquete.
En el caso de nuestra activity el nombre completo
sera:
com.imaginagroup.helloworld.HelloWorld
Para abreviar se especifica el nombre de la
activity precedido por un ..

EL CICLO DE VIDA DE UNA
APLICACIN
El ciclo de vida
En Android las aplicaciones tienen un control
limitado sobre su ciclo de vida.
El planificador puede decidir en cualquier
momento terminar una aplicacin sin previo
aviso.
El orden en el que se decide que aplicacin
matar viene determinado por la prioridad de
la aplicacin.

El ciclo de vida
Estado de un proceso
La prioridad de un proceso depende de su
estado:

El ciclo de vida
Estado de un proceso
Active process: Proceso en primer plano.
Incluye:
Activities en primer plano.
Broadcast Receivers ejecutando onReceive().
Servicios ejecutando onStart(), onCreate() o
onDestroy().
Servicios marcados para ejecutarse en primer
plano.

El ciclo de vida
Estado de un proceso
Visible processes: Procesos visibles pero
inactivos. Son procesos con activities visibles
pero que no estn en primer plano.
Started Service processes: Procesos que
ejecutan servicios. Tienen un poco menos de
prioridad que los procesos visibles.

El ciclo de vida
Estado de un proceso
Backgroud processes: Procesos que
almacenan Activities que no son visibles y no
poseen ningn servicio ejecutandose.
Empty processes: Procesos terminados que
se mantienen en memoria para mejorar el
rendimiento del sistema.

El ciclo de vida
Estado de las Activities
De qu depende el estado de los procesos?
De la pila de Activities:

El ciclo de vida
Estado de las Activities
El estado de una Activity se determina por
su posicin en la pila de Activities.
Cuando se lanza una nueva Activity, la actual
pasa a ocupar la cima de la pila.
Si el usuario navega hacia atrs, la Activity
en la cima de la pila pasa a ser la activa.

El ciclo de vida
Estado de las Activities
El ciclo de vida
Estado de las Activities
Running: La actividad
est encima de la pila,
es visible, tiene el foco.
Paused: La actividad es
visible pero no tiene el
foco. Se produce
cuando pasa al primer
plano otra actividad
transparente o que no
ocupa toda la pantalla.

El ciclo de vida
Estado de las Activities
Stopped: La actividad
no es visible. Debe
guadarse el estado de
la UI, preferencias, etc.
Destroyed: La actividad
termina o es matada
por el runtime de
Android.

El ciclo de vida: Eventos
El ciclo de vida: Eventos
onCreate():
Se le puede llamar en tres situaciones:
Cuando se ejecuta por primera vez.
Cuando se ejecuta despus de haber sido matada por
Android. En este caso tendr un objeto Bundle como
parmetro para restaurar la interfaz.
Cuando hay un cambio de vertical a horizontal en la
pantalla.
Crear variables, interfaz de usuario, servicios, hilos,
etc

El ciclo de vida: Eventos
onDestroy():
Liberar los recursos creados en onCreate().
Una activity puede terminar sin llamar a este
mtodo.

El ciclo de vida: Eventos
onStart():
La activity va a pasar a primer plano porque se
acaba de lanzar o porque estaba en segundo plano.
onStop():
Se llama cuando la activity va a ser parada porque
ha pasado a un segundo plano.
Android no asegura la llamada a este mtodo.
onRestart():
para acciones que deben ejecutarse todas las veces
menos la PRIMERA.


El ciclo de vida: Eventos
onResume():
Se le llama justo antes de que la Activity pase a
primer plano.
Reanuda animaciones, hilos, servicios y en general
procesos que se utilizan para actualizar la UI.
Registrar Broadcast Receivers.

El ciclo de vida: Eventos
onPause():
Si algo quita a la Activity del primer plano se ejecuta
este mtodo.
Pausa animaciones, hilos, servicios y en general
procesos que se utilizan para actualizar la UI.
Dar de baja Broadcast Receivers.


INTERFACES DE USUARIO
Tipos de activities, Views y introduccin a Layouts
Interfaces de Usuario
Tipos de activities
Subclases Activity:
MapActivity: Permite utilizar el MapView.
ListActivity: permite tener una lista (ListView) asociada a
datos como el widget principal de la interfaz, con todos los
eventos asociados al manejo de la misma.
ExpandableListActivity:como ListActivity, pero soporta la
clase ExpandableListView.
TabActivity: permite tener varias vistas en la misma pantalla
de interfaz, mediante un TabPanel.

Interfaces de Usuario
Views: Clase base para todos los elementos
de interfaz visuales.
View Groups: Extensin de View para
contener mltiples Views. Se utilizan para
crear nuevos Views compuestos o para
definir layouts.
Activities: Representan la ventana o pantalla
que se desea mostrar.

Interfaces de usuario
Views disponibles
TextView: Cuadro de texto de solo lectura
EditView: Cuadro de texto editable
ListView: Crea una lista vertical de Views
Button
CheckBox
RadioButton
Spinner: Lista desplegable de opciones
Y muchos ms

Interfaces de Usuario
Layouts disponibles
FrameLayout: Coloca cada View en la esquina
superior izquierda
LinearLayout: Alinea los Views horizontal o
verticalmente
TableLayout: Permite ordenar los Views en una
tabla de filas y columnas
RelativeLayout: Define la posicin de los View
de forma relativa a otros View o a los lmites de
la pantalla

Ejercicio 2
Hasta ahora hemos visto entre otras cosas:
La estructura de un proyecto Android.
Como crear un nuevo proyecto y ejecutarlo
Activities y su ciclo de vida.
View y layouts disponibles.
Pasa ahora a realizar el ejercicio 2 del boletn
de ejercicios.
UTILIDADES EN ECLIPSE
Vista DDMS
Dalvik Debug Monitor System.
Permite ver los procesos en ejecucin de
nuestro emulador, insertar coordenadas para
el GPS, simular envos de SMS o llamadas
Se accede desde el men window/open
perspective/other y seleccionando DDMS
Vista DDMS
Permite tambin ver la salida de log del
sistema en la pestaa LogCat.
Vista Debug
Permite depurar el cdigo, ver el estado de las
variables en ejecucin, introducir puntos de
interrupcin
Se accede desde el men window/open
perspective/Debug.

Vous aimerez peut-être aussi