Android basics

Post on 18-Nov-2014

7.622 views 0 download

description

Tutorial of Android. Integration with NetBeans IDE

Transcript of Android basics

1

University of Castilla-La Mancha, SpainMAmI Research Lab

AndroidQuick Start

Jesús Fontecha Diezma

2

INTRODUCCIÓN A ANDROID

• SSOO de Google• Diseñado para ser ejecutado en dispositivos móviles.• Origen: 2007 Open Handset Alliance (OHA)

• Basado en el Kernel de Linux• Permite ejecutar aplicaciones en Java + XML

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

3

ELEMENTOS

• Activity• El más importante• Representa una pantalla individual• Presenta una interfaz gráfica al usuario

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

Agenda telefónica

public class Activity extends ApplicationContext {     protected void onCreate(Bundle savedInstanceState);

     protected void onStart();          protected void onRestart();

     protected void onResume();

     protected void onPause();

     protected void onStop();

     protected void onDestroy(); }

Activity 1

Activity 2

Información detallada del contacto

Listado de nombres y teléfonos

4

ELEMENTOS

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

(Clases que extienden de Activity)

• Ciclo de vidaCuando es visible

Primera vez

Cuando se oculta

Asignación de memoria

Finaliza

Otra actividad en primer plano

5

ELEMENTOS

• Services• No tiene interfaz gráfica• Puede ejecutarse en background (= demonio Linux)

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

Capturar posición GPS Amigo Cerca

Tiempo

Capturar datos acelerómetroTiempo Objetivo

n. pasos

6

ELEMENTOS

• Broadcast receivers• Detecta y reacciona ante mensajes o eventos del

sistema Notificaciones broadcast.

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

• No tienen interfaz gráfica• Heredan de la clase BroadcastReceiver

Batería baja

SMS

Llamada

Cambio zona

horaria

Otras aplicaciones

Tarjeta SD

7

ELEMENTOS

• Intents• Elemento básico de comunicación

• Mensajes entre componentes• Definen “qué se debe hacer”

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

• Cualquier activity puede reutilizar funciones de otros componentes• Mediante solicitud en la forma de Intent

(invocación)

Mostrar una actividad desde otraIniciar un servicio

Enviar mensaje broadcast

Iniciar otra aplicación

8

ELEMENTOS

• Views• Componentes básicos para la construcción de la UI• Análogo a los controles de Java o .NET

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

• Es posible extender la funcionalidad de los controles básicos• Permite la creación de controles personalizados

Cuadros de texto Botones

Listas desplegables Imágenes

Barras de desplazamiento

9

ELEMENTOS

• Content providers• Mecanismos para compartir datos entre aplicaciones.• No se muestran detalles del almacenamiento interno

de los datos, su estructura o su implementación.• Podemos acceder a datos de otras aplicaciones

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

Mi Agenda

Agenda del sistema

Almacenamiento (BBDD) SQLite

10

ELEMENTOS

•Widgets• Elementos visuales e interactivos• Se muestran en la pantalla principal del terminal• Pueden recibir actualizaciones periódicas• Muestran información de la aplicación al usuario

desde la pantalla principal.Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

11

PROCESOS

• Una aplicación Android se ejecuta dentro de un proceso.• El sistema administra la memoria para ese proceso• Su tiempo de vida es controlado por el sistema• Android prioriza los procesos “jerarquía de procesos”

• Foreground Process• Primer plano• Aloja una activity en pantalla con la que se interactúa

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

onResume() llamado

IntentReceiver ejecutándose

• Eliminados como último recurso por el sistema

12

PROCESOS

• Visible Process• Aloja una activity• No está en primer plano• Ejemplo:

• Cuadro de diálogo

• Service Process• Aloja un service• No son visibles• Son importantes para el usuario

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

onPause() llamado

Iniciado con startService()

Conexión a servidor Reproducir música

13

PROCESOS

• Background Process• Aloja una activity no visible

• Su eliminación no repercute en la actividad del usuario• Numerosos en el sistema Lista de eliminación

• Empty Process• No aloja ningún componente• ¿Por qué existen?

• Mantienen una caché de la aplicación para su próxima activación.

• Eliminados con frecuencia para obtener memoria

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

onStop() llamado

14

DESARROLLO CON ANDROID

• ¿Qué necesitamos?

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

Conocimientos de Java

PC IDE

Plugin (ADT)

SDK

DVM

Librerías

Emulador

15

SDK ANDROID

• Instalar NetBeans• Instalar SDK Android• Configuramos el SDK de Android

• Menú Settings

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

Seleccionar

16

SDK ANDROID

• Creamos el emulador• Virtual Device New• Seleccionamos sus funcionalidades

• Añadimos el plugin de Android en NetBeans• Tools/Plugins/Settings/AddIntroducción a Android

Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

http://kenai.com/downloads/nbandroid/updates.xml

Insertar la URL

https://dl-ssl.google.com/android/eclipse/ Para Eclipse

17

IDE + PLUGIN

• Instalamos el plugin• Available plugins• Search text field: “android”• Chekear e instalar

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

• Comprobar que se ha instalado el servicio Android

Servicio Android

18

IDE + PLUGIN

• Añadimos la plataforma de Java• Tools/Java Platform/Add Platform• Añadimos una de Google Android

• Buscamos la carpeta del SDK• Finalizamos

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

19

CREAR UN PROYECTO

• Creamos un proyecto Android en el IDE• File/New Project

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

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

public class HelloAndroid extends Activity {/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText(“Hola Mundo”); setContentView(tv); }}

Hola Mundo

20

ESTRUCTURA

• Estructura de directorios• /src – Actividades, clases y archivo R.java

• R.java: Autogenerado por Android (vbles. sistema)• /res/drawable – Imágenes de la aplicación• /res/layout – Vistas de la aplicación en XML• /res/values – Archivos XML con las variables de la

aplicación• Libraries – El IDE referencia al SDK de Android• AndroidManifest.xml – Archivo de manifiesto

• Define todas las actividades• Define la configuración del proyecto

• Ejecución y emulación: Dalvik Virtual Machine (DVM)

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

21

INTERFACES GRÁFICAS

• Son recursos de nuestra aplicación • Se almacenan en /res• Archivos XML• Layouts y componentes

• La separación de lógica e interfaz favorece la aplicación del patrón Modelo-Vista-Controlador (MVC)

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

ModeloVista

Controlador

- Interfaz de usuario

-Representación de la información

-Responsable de eventos- Lógica tras la interacción del usuario

22

COMPONENTES GRÁFICOS

• Layouts. Distribución de componentes en pantalla

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">

<Button android:text="Button01" android:id="@+id/Button01" android:layout_width="wrap_content"

android:layout_height="wrap_content" />

<Button android:text="Button02" android:id="@+id/Button02" android:layout_width="wrap_content"

android:layout_height="wrap_content" /> </LinearLayout>

Linear Layout

<?xml version="1.0" encoding="utf-8"?> <TableLayout android:id="@+id/TableLayout01"

android:layout_width="fill_parent" android:layout_height="fill_parent“xmlns:android="http://schemas.android.com/apk/res/android">

<TableRow android:id="@+id/TableRow01"> <TextView android:id="@+id/TextView01" android:text="First Name:" android:width="100px" /> <EditText android:id="@+id/EditText01" android:width="220px" />

…<TableRow android:id="@+id/TableRow03">

<Button android:id="@+id/Button01“ … android:layout_height="wrap_content" android:text="Submit" /> <Button android:id="@+id/Button02" android:layout_width="wrap_content" android:layout_...

</TableRow> </TableLayout>

Table Layout

23

COMPONENTES GRÁFICOS

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:id="@+id/RelativeLayout01"

android:layout_width="fill_parent“ android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">

<TextView android:id="@+id/TextView01 … /> <EditText android:id="@+id/EditText01" android:layout_width="220px“ …

android:layout_toRightOf="@+id/TextView01" android:layout_below="@+id/RelativeLayout01" />

<EditText android:id="@+id/EditText02" … android:layout_below="@+id/EditText01" android:layout_alignLeft="@+id/EditText01" />

<TextView android:id="@+id/TextView02" android:layout_width=…

<Button android:text="Submit" android:id="@+id/Button01” …android:layout_below="@id/EditText02" android:layout_alignLeft="@id/EditText02" /> <Button android:text="Reset" android:id="@+id/Button02“ … android:layout_below="@id/EditText02" android:layout_alignRight="@id/EditText02" />

</RelativeLayout>

Relative Layout

<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:id="@+id/AbsoluteLayout01"

android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">

<EditText android:id="@+id/EditText01" android:layout_width="200px" android:layout_height="wrap_content" android:layout_x="12px" android:layout_y="12px" />

<Button android:text="Search" android:id="@+id/Button01" android:layout_width="100px" android:layout_height="wrap_content" android:layout_x="220px" android:layout_y="12px" />

</AbsoluteLayout>

Absolute Layout

24

COMPONENTES GRÁFICOS

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

<?xml version="1.0" encoding="utf-8"?> <FrameLayout android:id="@+id/FrameLayout01" android:layout_width="fill_parent"

android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">

<ImageView android:id="@+id/ImageView01" android:src="@drawable/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="center" />

<TextView android:text="Android Partaker" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="20dip" android:layout_gravity="center_horizontal|bottom" android:padding="10dip" android:textColor="#AA0000" android:textStyle="bold" android:textSize="20px" android:background="#00000000" />

</FrameLayout>

Frame Layout

Source: http://androidpartaker.wordpress.com/2010/07/03/introduction-to-android-ui-layouts/

25

COMPONENTES GRÁFICOS

• Controles.

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

List View

Grid View

Button

SpinnerDatePicker CheckBox

RadioButton

EditText

AutoComplete Textview

ProgressBar

TimePicker

AnalogClock DigitalClock

RadioGroup TextView Gallery

ImageView

ImageButton

• Eventos. • Se gestionan a través de Listeners• Se implementa el método que captura el evento

26

DROID DRAW

• No integrado en el IDE ni en el SDK• Eclipse integra un Graphical Layout

• Diseño visual de la UI• Arrastrar componentes• Generar XML• Copiar XML

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

27

ALGUNAS LIBRERÍAS

• Set de librerías escritas en C/C++• Usadas por el desarrollador a través del framework Java de

Android

Introducción a Android Elementos Ciclo de vida: Activity ProcesosDesarrollo con Android Entorno de trabajo SDK Android IDE + Plugin Crear un proyecto Estructura Interfaces gráficas Componentes gráficos DroidDraw Algunas librerías

Implementación biblioteca C estándar Bibliotecas de medios

Bibliotecas de gráficos Bibliotecas OpenGL 3D Biblioteca SQLite

REFERENCIA: http://developer.android.com/index.html

28

Jesús Fontecha DiezmaAndroid Quick Start