Sei sulla pagina 1di 27

Introduo programao para a plataforma Android

Cursos de Vero na Catlica 2010

Jorge C. S. Cardoso, Lus Gustavo Martins jorgecardoso@ieee.org, lmartins@porto.ucp.pt

Contedo
Mais alguns conceitos Java O que o Android Guia desenvolvimento, APIs Instalao SDK e Plugin Eclipse Estrutura de um projecto Android no Eclipse Ciclo de vida de uma aplicao Alguns controlos (caixa de texto, boto, checkbox, slider) Aplicao exemplo: Enviar um SMS Aplicao exemplo: Calculadora de fraces

Mais alguns conceitos Java: Packages


Packages o Os packages so uma organizao hierrquica de classes em Java o 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 tambm tm de ficar associadas a uma package (Se no o fizermos explicitamente, ficam associadas a uma package default vazia) Normalmente, usa-se uma estrutura tipo nomes de domnio da internet, invertida: o eu.jorgecardoso.cvc2010.Veiculo (No nosso computador, cada uma das palavras mapeada no nome de uma pasta o eu/jorgecardoso/cvc2010/Veiculo.java)
o

APIs / Documentao

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 - Mquina virtual Dalvik (optimizada para dispositivos mveis)

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 aplicaes Android em Eclipse


Eclipse: o http://www.eclipse.org/ o um ambiente integrado de desenvolvimento (IDE); editor, compilador, debugger, referncia, etc Android SDK: o http://developer.android.com/sdk/index.html o Bibliotecas, ferramentas e emulador Android Plugin Android para Eclipse: o http://developer.android.com/sdk/eclipse-adt.html o Acesso s bibliotecas, ferramentas e emulador a partir do Eclipse

Instalao SDK e Plugin


SDK o Descarregar (link no slide anterior) o Descompactar e copiar para qualquer stio no disco. Plugin o No eclipse ir a Help -> Install new software o Adicionar o site https://dl-ssl.google.com/android/eclipse/
o

Marcar "Developer tools" e instalar

Depois de instalado o plugin o Ir a Window -> Android SDK and AVD Manager > Available packages Marcar e instalar

Criao emulador
Window -> Android SDK and AVD Manager -> Virtual Devices o 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 gnero 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 aplicao usa bin o O projecto compilado gen.com.jorge R.java o gerado automaticamente e contm identificadores de recursos res o Recursos (imagens, texto e layout) src o O nosso cdigo fonte. o criado um esqueleto automaticamente AndroidManifest.xml o Definies da aplicao o No vamos mexer

Ciclo de vida de uma aplicao Android


Um bocado mais complexa do que o ciclo de vida de uma aplicao 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 aplicao. Todas as aplicaes so subclasses de Activity o Fazem override dos mtodos relativos ao ciclo de vida (que interessarem aplicao) Definida no package o android.app http://developer.android.com/reference/android/app/Act ivity.html

Ciclo de vida de uma aplicao Android


Ver projecto "android-1" Abrir a consola o Window -> Show view -> Other : Android -> Logcat

Correr a aplicao no emulador


(Se o emulador no 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 grficos num ecr a classe View Todos os controlos so subclasses de View: o Botes o Caixas de texto (label e editvel) o Scroll o Checkbox Um ecr de uma aplicao tem, tipicamente, vrios componentes, e.g., uma caixa de texto, um boto, uma checkbox, etc. Para criarmos esta estrutura temos de organizar os componentes hierarquicamente o Temos de usar componentes que podem conter eles prprios vrios componentes: ViewGroup

ViewGroups
Um ViewGroup um painel ao qual podemos adicionar outras Views (ou outros ViewGroup) o A classe ViewGroup ela prpria subclasse de View o Mas no tem representao visual, apenas serve para organizar os componentes l dentro Existem diferentes ViewGroup que organizam os componentes de forma diferente

ViewGroups
A janela da aplicao apenas tem associada uma nica View o Normalmente associamos uma ViewGroup (subclasse de View) para podermos associar ViewGroup todos os outros controlos

Alguns controlos
A maior parte dos controlos grficos esto no package o android.widget http://developer.android.com/reference/android/widget/ package-summary.html As classes View e ViewGroup esto em o android.view http://developer.android.com/reference/android/view/pa ckage-summary.html

Alguns controlos
Todos os controlos tm um construtor que necessita de um Context o Este parmetro 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 notificaes 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 boto com o texto 'ol' btn = new Button(this); btn.setText("Ol"); // vamos escutar clicks no boto btn.setOnClickListener(this); setContentView(btn); } // A interface OnClickListener define apenas este mtodo que temos de implementar @Override public void onClick(View view) { Log.i("Controlos", "Boto pressionado"); } }

Listeners
Por exemplo, um Button, gera eventos quando clicado, enviando notificaes para o objecto do tipo OnClickListener que est registado no Button.

Ver projecto android-3 o Experimentem adicionar outro boto

Ver projecto android-4

Exemplo calculadora de fraces


Ver projecto FractionCalculator

Exemplo SmsSender
Ver projecto SMSSender

Fim
Cursos de Vero na Catlica 2010 http://porto.ucp.pt/cvc/
Jorge C. S. Cardoso, Lus Gustavo Martins jorgecardoso@ieee.org, lmartins@porto.ucp.pt

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

Cdigo fonte: http://db.tt/AOFOfA2

Potrebbero piacerti anche