Upload
jorge-c-s-cardoso
View
46.270
Download
4
Embed Size (px)
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 [email protected], [email protected]
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 [email protected], [email protected]
http://slideshare.net/jorgecardoso (tag: cvc2010)
Código fonte: http://db.tt/AOFOfA2