Introdução à programação para Android

Preview:

DESCRIPTION

 

Citation preview

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

Cursos de Verão na Católica 2010

Jorge C. S. Cardoso, Luís Gustavo Martinsjorgecardoso@ieee.org, lmartins@porto.ucp.pt

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

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.*;

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

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)

Bye, bye, Apple :)

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

Guia de desenvolvimento, APIs

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

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

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

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

Criação emulador

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

• Seleccionar o dispositivo o Start

    

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)

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

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

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

Ciclo de vida de uma aplicação Android

• Ver projecto "android-1"

•  

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

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

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

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

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

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

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"

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.

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");    }}

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

Exemplo calculadora de fracções

Ver projecto FractionCalculator

Exemplo SmsSender

Ver projecto SMSSender

Fim

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

Jorge C. S. Cardoso, Luís Gustavo Martinsjorgecardoso@ieee.org, lmartins@porto.ucp.pt

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

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

Recommended