27
Introdução à programação para a plataforma Android Cursos de Verão na Católica 2010 Jorge C. S. Cardoso, Luís Gustavo Martins [email protected], [email protected]

Introdução à programação para Android

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Introdução à programação para Android

Introdução à programação para a plataforma Android

Cursos de Verão na Católica 2010

Jorge C. S. Cardoso, Luís Gustavo [email protected], [email protected]

Page 2: Introdução à programação para Android

Conteúdo

• Mais alguns conceitos Java• O que é o Android• Guia desenvolvimento, APIs• Instalação SDK e Plugin Eclipse• Estrutura de um projecto Android no Eclipse• Ciclo de vida de uma aplicação• Alguns controlos (caixa de texto, botão, checkbox, slider) • Aplicação exemplo: Enviar um SMS • Aplicação exemplo: Calculadora de fracções

Page 3: Introdução à programação para Android

Mais alguns conceitos Java: Packages

• Packages o Os packages são uma organização hierárquica de classes em

Javao Um package agrupa classes relacionadas o http://download-llnw.oracle.com/javase/1.4.2/docs/api/

• Para usarmos as classes de um determinado package temos de indicar explicitamente (no ficheiro da classe) que queremos utilizar uma classe concreta ou todas as classes desse package.

import java.math.*;

• Todos os ficheiros importam automaticamente o package java.lang.*;

Page 4: Introdução à programação para Android

Mais alguns conceitos Java: Packages

• As nossas classes também têm de ficar associadas a uma package

• (Se não o fizermos explicitamente, ficam associadas a uma package default vazia)

• Normalmente, usa-se uma estrutura tipo nomes de domínio da internet, invertida:o eu.jorgecardoso.cvc2010.Veiculo

• (No nosso computador, cada uma das palavras é mapeada no nome de uma pastao eu/jorgecardoso/cvc2010/Veiculo.java)o  

APIs / Documentação

Page 5: Introdução à programação para Android

O que é o Android

"Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language." - http://developer.android.com/guide/basics/what-is-android.html

- Sistema operativo com kernel Linux- Framework aplicacional baseado em Java- Máquina virtual Dalvik (optimizada para dispositivos móveis)

Page 6: Introdução à programação para Android

Bye, bye, Apple :)

http://www.bbc.co.uk/news/technology-10839034

Page 7: Introdução à programação para Android

Guia de desenvolvimento, APIs

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

http://developer.android.com/reference/packages.html

Page 8: Introdução à programação para Android

Desenvolver aplicações Android em Eclipse• Eclipse: 

o http://www.eclipse.org/o É um ambiente integrado de desenvolvimento (IDE);

editor, compilador, debugger, referência, etc• Android SDK: 

o http://developer.android.com/sdk/index.htmlo Bibliotecas, ferramentas e emulador Android

• Plugin Android para Eclipse: o http://developer.android.com/sdk/eclipse-adt.htmlo Acesso às bibliotecas, ferramentas e emulador a partir do

Eclipse

Page 9: Introdução à programação para Android

Instalação SDK e Plugin

• SDKo Descarregar (link no slide anterior)o Descompactar e copiar para qualquer sítio no disco.

• Plugino No eclipse ir a Help -> Install new softwareo Adicionar o site https://dl-ssl.google.com/android/eclipse/o  Marcar "Developer tools" e instalar

• Depois de instalado o plugino Ir a Window -> Android SDK and AVD Manager -

> Available packages  Marcar e instalar

Page 10: Introdução à programação para Android

Criação emulador

• Window -> Android SDK and AVD Manager -> Virtual Deviceso New 

• Seleccionar o dispositivo o Start

    

Page 11: Introdução à programação para Android

Criar um projecto Android

File -> New -> Project : Android -> Project

Escolher um "Build Target"

Definir :• "Application name" (qualquer

coisa), • "Package name" (do género

com.jorge.android), • "Create Activity"

(.NomeDaClasse) e • "Min SDK Version" (é um valor

inteiro da coluna API no Build Target)

Page 12: Introdução à programação para Android

Estrutura de um projecto Android no Eclipse• assets

o Ficheiros externos que a nossa aplicação usa• bin

o O projecto compilado • gen.com.jorge R.java 

o É gerado automaticamente e contém identificadores de recursos

• reso Recursos (imagens, texto e layout) 

• srco O nosso código fonte.o É criado um esqueleto automaticamente 

• AndroidManifest.xmlo Definições da aplicaçãoo Não vamos mexer

Page 13: Introdução à programação para Android

Ciclo de vida de uma aplicação Android

• Um bocado mais complexa do que o ciclo de vida de uma aplicação desktop...

http://developer.android.com/guide/topics/fundamentals.html#actlife

Page 14: Introdução à programação para Android

Activity

• A classe Activity é a classe que implementa o ciclo de vida descrito e serve de base a uma aplicação.

• Todas as aplicações são subclasses de Activityo Fazem override dos métodos relativos ao ciclo de vida

(que interessarem à aplicação)• Definida no package 

o android.app http://developer.android.com/reference/android/app/Act

ivity.html

Page 15: Introdução à programação para Android

Ciclo de vida de uma aplicação Android

• Ver projecto "android-1"

•  

• Abrir a consolao  Window -> Show view -> Other : Android -> Logcat

Page 16: Introdução à programação para Android

Correr a aplicação no emulador

• (Se o emulador não estiver a correr)o  Window -> Android SDK and AVD Manager -> Virtual

Devices : Seleccionar o dispositivo : Start

• Run

Page 17: Introdução à programação para Android

Alguns controlos

• A classe base para os componentes gráficos num ecrã é a classe View

• Todos os controlos são subclasses de View:o Botõeso Caixas de texto (label e editável)o Scrollo Checkbox

•  Um ecrã de uma aplicação tem, tipicamente, vários componentes, e.g., uma caixa de texto, um botão, uma checkbox, etc.

• Para criarmos esta estrutura temos de organizar os componentes hierarquicamenteo Temos de usar componentes que podem conter eles próprios

vários componentes: ViewGroup

Page 18: Introdução à programação para Android

ViewGroups

• Um ViewGroup é um painel ao qual podemos adicionar outras Views (ou outros ViewGroup)o A classe ViewGroup é ela própria subclasse de Viewo Mas não tem representação visual, apenas serve para

organizar os componentes lá dentro• Existem diferentes ViewGroup que organizam os

componentes de forma diferente

Page 19: Introdução à programação para Android

ViewGroups

• A janela da aplicação apenas tem associada uma única Viewo Normalmente associamos uma ViewGroup (subclasse de

View) para podermos associar à ViewGroup todos os outros controlos

Page 20: Introdução à programação para Android

Alguns controlos

• A maior parte dos controlos gráficos estão no packageo android.widget

http://developer.android.com/reference/android/widget/package-summary.html

• As classes View e ViewGroup estão emo  android.view

http://developer.android.com/reference/android/view/package-summary.html

Page 21: Introdução à programação para Android

Alguns controlos

• Todos os controlos têm um construtor que necessita de um Contexto Este parâmetro é a nossa Activity (subclasse indirecta de

Context)

• Ver projecto "android-2"

Page 22: Introdução à programação para Android

Eventos de input

• Para detectarmos eventos relacionados com os controlos (eventos gerados por input do utilizador) temos de associar ao controlo um objecto que escuta as notificações dos eventos em que estamos interessados. 

• Cada controlo pode definir eventos diferentes e, por isso, classes diferentes que escutam esses eventos.

Page 23: Introdução à programação para Android

Eventos de input

public class Controlos extends Activity implements OnClickListener {    Button btn;

    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                // Um botão com o texto 'olá'        btn = new Button(this);        btn.setText("Olá");

        // vamos escutar clicks no botão        btn.setOnClickListener(this);                setContentView(btn);    }

    // A interface OnClickListener define apenas este método que temos de implementar    @Override    public void onClick(View view) {        Log.i("Controlos", "Botão pressionado");    }}

Page 24: Introdução à programação para Android

Listeners

• Por exemplo, um Button, gera eventos quando é clicado, enviando notificações para o objecto do tipo OnClickListener que está registado no Button.

• Ver projecto android-3o Experimentem adicionar outro botão

• Ver projecto android-4

Page 25: Introdução à programação para Android

Exemplo calculadora de fracções

Ver projecto FractionCalculator

Page 26: Introdução à programação para Android

Exemplo SmsSender

Ver projecto SMSSender

Page 27: Introdução à programação para Android

Fim

Cursos de Verão na Católica 2010http://porto.ucp.pt/cvc/

Jorge C. S. Cardoso, Luís Gustavo [email protected], [email protected]

http://slideshare.net/jorgecardoso (tag: cvc2010)

Código fonte: http://db.tt/AOFOfA2