SlideShare uma empresa Scribd logo
Introdução à programação para a plataforma Android Cursos de Verão na Católica 2010 Jorge C. S. Cardoso, Luís Gustavo Martins jorgecardoso@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  Os packages são uma organização hierárquica de classes em Java Um package agrupa classes relacionadas  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: eu.jorgecardoso.cvc2010.Veiculo (No nosso computador, cada uma das palavras é mapeada no nome de uma pasta eu/jorgecardoso/cvc2010/Veiculo.java )   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:  http://www.eclipse.org/ É um ambiente integrado de desenvolvimento (IDE); editor, compilador, debugger, referência, etc Android SDK:  http://developer.android.com/sdk/index.html Bibliotecas, ferramentas e emulador Android Plugin Android para Eclipse:  http://developer.android.com/sdk/eclipse-adt.html Acesso às bibliotecas, ferramentas e emulador a partir do Eclipse
Instalação SDK e Plugin SDK Descarregar (link no slide anterior) Descompactar e copiar para qualquer sítio no disco. Plugin No eclipse ir a Help -> Install new software Adicionar o site  https://dl-ssl.google.com/android/eclipse/   Marcar "Developer tools" e instalar Depois de instalado o plugin Ir a Window -> Android SDK and AVD Manager -> Available packages  Marcar e instalar
Criação emulador Window -> Android SDK and AVD Manager -> Virtual Devices New  Seleccionar o dispositivo  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 Ficheiros externos que a nossa aplicação usa bin O projecto compilado  gen.com.jorge R.java  É gerado automaticamente e contém identificadores de recursos res Recursos (imagens, texto e layout)  src O nosso código fonte. É criado um esqueleto automaticamente  AndroidManifest.xml Definições da aplicação 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 Activity Fazem override dos métodos relativos ao ciclo de vida (que interessarem à aplicação) Definida no package  android.app http://developer.android.com/reference/android/app/Activity.html
Ciclo de vida de uma aplicação Android Ver projecto "android-1"   Abrir a consola   Window -> Show view -> Other : Android -> Logcat
Correr a aplicação no emulador (Se o emulador não estiver a correr)   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: Botões Caixas de texto (label e editável) Scroll 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 hierarquicamente 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) A classe ViewGroup é ela própria subclasse de View 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 View 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 package android.widget http://developer.android.com/reference/android/widget/package-summary.html As classes View e ViewGroup estão em   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 Context 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-3 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 2010 http://porto.ucp.pt/cvc/ Jorge C. S. Cardoso, Luís Gustavo Martins jorgecardoso@ieee.org, lmartins@porto.ucp.pt http://slideshare.net/jorgecardoso (tag: cvc2010) Código fonte:  http://db.tt/AOFOfA2

Mais conteúdo relacionado

Mais procurados

Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
Erisvaldo Junior
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
Erisvaldo Junior
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
Erisvaldo Junior
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
Jose Berardo
 
Plataforma Android
Plataforma AndroidPlataforma Android
Plataforma Android
Leonardo Sousa
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
Horacio Diamante Mondlane
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Henrique Perticarati
 
Programando Android - Aula 1
Programando Android - Aula 1Programando Android - Aula 1
Programando Android - Aula 1
Kalil Maciel
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
Jose Berardo
 
Google android pdf
Google android pdfGoogle android pdf
Google android pdf
Leonardo Rossetto
 
Android Aprendiz
Android AprendizAndroid Aprendiz
Android Aprendiz
Fillipe Cordeiro
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
Rafael Sakurai
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
Edgar Eler
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google Android
Salvador Torres
 
PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android
Fundação Vanzolini
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
Afonso Machado
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
Natanael Fonseca
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Matheus Calegaro
 
Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento Android
Wsdevs Desenvolvedores
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma android
Juarez Junior
 

Mais procurados (20)

Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
 
Plataforma Android
Plataforma AndroidPlataforma Android
Plataforma Android
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
Programando Android - Aula 1
Programando Android - Aula 1Programando Android - Aula 1
Programando Android - Aula 1
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
 
Google android pdf
Google android pdfGoogle android pdf
Google android pdf
 
Android Aprendiz
Android AprendizAndroid Aprendiz
Android Aprendiz
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google Android
 
PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento Android
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma android
 

Destaque

Tudo o que você queria saber sobre Android, mas não foi no Google pesquisar
Tudo o que você queria saber sobre Android, mas não foi no Google pesquisarTudo o que você queria saber sobre Android, mas não foi no Google pesquisar
Tudo o que você queria saber sobre Android, mas não foi no Google pesquisar
UEPA
 
Android
AndroidAndroid
Android
Rodrigo Pivas
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
Heider Lopes
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
Bruno Lui
 
Java 05
Java 05Java 05
Java 05
samuelthiago
 
Introdução a Java IO
Introdução a Java IOIntrodução a Java IO
Introdução a Java IO
rdgse
 
Java Básico :: Stream
Java Básico :: StreamJava Básico :: Stream
Java Básico :: Stream
Wesley R. Bezerra
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
Claudio Pereira
 
EPI – Trabalho em Altura (NR 35)
EPI – Trabalho em Altura (NR 35)EPI – Trabalho em Altura (NR 35)
EPI – Trabalho em Altura (NR 35)
HugoDalevedove
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma Android
José Alexandre Macedo
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Carlos Eugenio Torres
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 1
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 1Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 1
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 1
Carlos Eugenio Torres
 
Ficheiros em JAVA
Ficheiros em JAVAFicheiros em JAVA
Ficheiros em JAVA
Pedro De Almeida
 
Android
AndroidAndroid
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
Guiherme Alarcão
 

Destaque (15)

Tudo o que você queria saber sobre Android, mas não foi no Google pesquisar
Tudo o que você queria saber sobre Android, mas não foi no Google pesquisarTudo o que você queria saber sobre Android, mas não foi no Google pesquisar
Tudo o que você queria saber sobre Android, mas não foi no Google pesquisar
 
Android
AndroidAndroid
Android
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Java 05
Java 05Java 05
Java 05
 
Introdução a Java IO
Introdução a Java IOIntrodução a Java IO
Introdução a Java IO
 
Java Básico :: Stream
Java Básico :: StreamJava Básico :: Stream
Java Básico :: Stream
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
EPI – Trabalho em Altura (NR 35)
EPI – Trabalho em Altura (NR 35)EPI – Trabalho em Altura (NR 35)
EPI – Trabalho em Altura (NR 35)
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma Android
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 1
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 1Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 1
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 1
 
Ficheiros em JAVA
Ficheiros em JAVAFicheiros em JAVA
Ficheiros em JAVA
 
Android
AndroidAndroid
Android
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 

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

Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
GPrimola
 
Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
antonio sérgio nogueira
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
antonio sérgio nogueira
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
Tiago Bencardino
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_on
Roberson Alves
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Struts
eduan
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações Android
Felipe Silveira
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
Messias Batista
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com android
Ricardo Ogliari
 
Hello World Android
Hello World AndroidHello World Android
Hello World Android
Everton Dewes
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
Rodrigo Rocha
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
Édipo Souza
 
05 - C# - componentes visuais v1.0
05 - C# - componentes visuais v1.005 - C# - componentes visuais v1.0
05 - C# - componentes visuais v1.0
César Augusto Pessôa
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
React js
React js React js
React js
Alexandre Rosa
 
Apostila android
Apostila androidApostila android
Apostila android
Maluco Rafael
 
Apostila android
Apostila androidApostila android
Apostila android
Klis Chelsin
 
Apostila android
Apostila androidApostila android
Apostila android
Paulo Henrique
 
Aula 7.0 android 02 - primeiro programa calculadora
Aula 7.0   android 02 - primeiro programa calculadoraAula 7.0   android 02 - primeiro programa calculadora
Aula 7.0 android 02 - primeiro programa calculadora
Othon Santos Medeiros
 
Minicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up SystemsMinicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up Systems
WakeUpSystems
 

Semelhante a Introdução à programação para Android (20)

Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
 
Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_on
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Struts
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações Android
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com android
 
Hello World Android
Hello World AndroidHello World Android
Hello World Android
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
05 - C# - componentes visuais v1.0
05 - C# - componentes visuais v1.005 - C# - componentes visuais v1.0
05 - C# - componentes visuais v1.0
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
React js
React js React js
React js
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Aula 7.0 android 02 - primeiro programa calculadora
Aula 7.0   android 02 - primeiro programa calculadoraAula 7.0   android 02 - primeiro programa calculadora
Aula 7.0 android 02 - primeiro programa calculadora
 
Minicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up SystemsMinicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up Systems
 

Mais de Jorge Cardoso

Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...
Criação de Ambientes  de Realidade Virtual  usando A-Frame - CubeCraft Toys -...Criação de Ambientes  de Realidade Virtual  usando A-Frame - CubeCraft Toys -...
Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...
Jorge Cardoso
 
Criação de Ambientes de Realidade Virtual usando A-Frame
Criação de Ambientes  de Realidade Virtual  usando A-FrameCriação de Ambientes  de Realidade Virtual  usando A-Frame
Criação de Ambientes de Realidade Virtual usando A-Frame
Jorge Cardoso
 
Journal of Science and Technology of the Arts
Journal of Science and Technology of the ArtsJournal of Science and Technology of the Arts
Journal of Science and Technology of the Arts
Jorge Cardoso
 
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic AugmentationEvaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
Jorge Cardoso
 
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
Jorge Cardoso
 
Digital tools for exploring roman mosaic
Digital tools for exploring roman mosaicDigital tools for exploring roman mosaic
Digital tools for exploring roman mosaic
Jorge Cardoso
 
Interaction techniques for locomotion in virtual reality
Interaction techniques for locomotion in virtual realityInteraction techniques for locomotion in virtual reality
Interaction techniques for locomotion in virtual reality
Jorge Cardoso
 
Interacção em ambientes de realidade virtual
Interacção em ambientes de realidade virtualInteracção em ambientes de realidade virtual
Interacção em ambientes de realidade virtual
Jorge Cardoso
 
PhD defense presentation
PhD defense presentationPhD defense presentation
PhD defense presentation
Jorge Cardoso
 
Dynamic graphical user interface generation for web-based public display appl...
Dynamic graphical user interface generation for web-based public display appl...Dynamic graphical user interface generation for web-based public display appl...
Dynamic graphical user interface generation for web-based public display appl...
Jorge Cardoso
 
Evaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applicationsEvaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applications
Jorge Cardoso
 
Interaction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive artInteraction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive art
Jorge Cardoso
 
PuReWidgets toolkit
PuReWidgets toolkitPuReWidgets toolkit
PuReWidgets toolkit
Jorge Cardoso
 
PuReWidgets presentation at EICS 2012
PuReWidgets presentation at EICS 2012PuReWidgets presentation at EICS 2012
PuReWidgets presentation at EICS 2012
Jorge Cardoso
 
PuReWidgets toolkit
PuReWidgets toolkit PuReWidgets toolkit
PuReWidgets toolkit
Jorge Cardoso
 
Assessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared InteractionAssessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared Interaction
Jorge Cardoso
 
Oop java
Oop javaOop java
Oop java
Jorge Cardoso
 
Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao
Jorge Cardoso
 
Computer vision techniques for interactive art
Computer vision techniques for interactive artComputer vision techniques for interactive art
Computer vision techniques for interactive art
Jorge Cardoso
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
Jorge Cardoso
 

Mais de Jorge Cardoso (20)

Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...
Criação de Ambientes  de Realidade Virtual  usando A-Frame - CubeCraft Toys -...Criação de Ambientes  de Realidade Virtual  usando A-Frame - CubeCraft Toys -...
Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...
 
Criação de Ambientes de Realidade Virtual usando A-Frame
Criação de Ambientes  de Realidade Virtual  usando A-FrameCriação de Ambientes  de Realidade Virtual  usando A-Frame
Criação de Ambientes de Realidade Virtual usando A-Frame
 
Journal of Science and Technology of the Arts
Journal of Science and Technology of the ArtsJournal of Science and Technology of the Arts
Journal of Science and Technology of the Arts
 
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic AugmentationEvaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
 
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
 
Digital tools for exploring roman mosaic
Digital tools for exploring roman mosaicDigital tools for exploring roman mosaic
Digital tools for exploring roman mosaic
 
Interaction techniques for locomotion in virtual reality
Interaction techniques for locomotion in virtual realityInteraction techniques for locomotion in virtual reality
Interaction techniques for locomotion in virtual reality
 
Interacção em ambientes de realidade virtual
Interacção em ambientes de realidade virtualInteracção em ambientes de realidade virtual
Interacção em ambientes de realidade virtual
 
PhD defense presentation
PhD defense presentationPhD defense presentation
PhD defense presentation
 
Dynamic graphical user interface generation for web-based public display appl...
Dynamic graphical user interface generation for web-based public display appl...Dynamic graphical user interface generation for web-based public display appl...
Dynamic graphical user interface generation for web-based public display appl...
 
Evaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applicationsEvaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applications
 
Interaction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive artInteraction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive art
 
PuReWidgets toolkit
PuReWidgets toolkitPuReWidgets toolkit
PuReWidgets toolkit
 
PuReWidgets presentation at EICS 2012
PuReWidgets presentation at EICS 2012PuReWidgets presentation at EICS 2012
PuReWidgets presentation at EICS 2012
 
PuReWidgets toolkit
PuReWidgets toolkit PuReWidgets toolkit
PuReWidgets toolkit
 
Assessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared InteractionAssessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared Interaction
 
Oop java
Oop javaOop java
Oop java
 
Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao
 
Computer vision techniques for interactive art
Computer vision techniques for interactive artComputer vision techniques for interactive art
Computer vision techniques for interactive art
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
 

Introdução à programação para Android

  • 1. Introdução à programação para a plataforma Android Cursos de Verão na Católica 2010 Jorge C. S. Cardoso, Luís Gustavo Martins jorgecardoso@ieee.org, lmartins@porto.ucp.pt
  • 2. 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
  • 3. Mais alguns conceitos Java: Packages Packages  Os packages são uma organização hierárquica de classes em Java Um package agrupa classes relacionadas  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.*;
  • 4. 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: eu.jorgecardoso.cvc2010.Veiculo (No nosso computador, cada uma das palavras é mapeada no nome de uma pasta eu/jorgecardoso/cvc2010/Veiculo.java )   APIs / Documentação
  • 5. 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)
  • 6. Bye, bye, Apple :) http://www.bbc.co.uk/news/technology-10839034
  • 7. Guia de desenvolvimento, APIs http://developer.android.com/guide/index.html http://developer.android.com/reference/packages.html
  • 8. Desenvolver aplicações Android em Eclipse Eclipse:  http://www.eclipse.org/ É um ambiente integrado de desenvolvimento (IDE); editor, compilador, debugger, referência, etc Android SDK:  http://developer.android.com/sdk/index.html Bibliotecas, ferramentas e emulador Android Plugin Android para Eclipse:  http://developer.android.com/sdk/eclipse-adt.html Acesso às bibliotecas, ferramentas e emulador a partir do Eclipse
  • 9. Instalação SDK e Plugin SDK Descarregar (link no slide anterior) Descompactar e copiar para qualquer sítio no disco. Plugin No eclipse ir a Help -> Install new software Adicionar o site  https://dl-ssl.google.com/android/eclipse/   Marcar "Developer tools" e instalar Depois de instalado o plugin Ir a Window -> Android SDK and AVD Manager -> Available packages  Marcar e instalar
  • 10. Criação emulador Window -> Android SDK and AVD Manager -> Virtual Devices New  Seleccionar o dispositivo  Start     
  • 11. 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)
  • 12. Estrutura de um projecto Android no Eclipse assets Ficheiros externos que a nossa aplicação usa bin O projecto compilado  gen.com.jorge R.java  É gerado automaticamente e contém identificadores de recursos res Recursos (imagens, texto e layout)  src O nosso código fonte. É criado um esqueleto automaticamente  AndroidManifest.xml Definições da aplicação Não vamos mexer
  • 13. 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
  • 14. 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 Activity Fazem override dos métodos relativos ao ciclo de vida (que interessarem à aplicação) Definida no package  android.app http://developer.android.com/reference/android/app/Activity.html
  • 15. Ciclo de vida de uma aplicação Android Ver projecto "android-1"   Abrir a consola   Window -> Show view -> Other : Android -> Logcat
  • 16. Correr a aplicação no emulador (Se o emulador não estiver a correr)   Window -> Android SDK and AVD Manager -> Virtual Devices : Seleccionar o dispositivo : Start Run
  • 17. Alguns controlos A classe base para os componentes gráficos num ecrã é a classe View Todos os controlos são subclasses de View: Botões Caixas de texto (label e editável) Scroll 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 hierarquicamente Temos de usar componentes que podem conter eles próprios vários componentes: ViewGroup
  • 18. ViewGroups Um ViewGroup é um painel ao qual podemos adicionar outras Views (ou outros ViewGroup) A classe ViewGroup é ela própria subclasse de View 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
  • 19. ViewGroups A janela da aplicação apenas tem associada uma única View Normalmente associamos uma ViewGroup (subclasse de View) para podermos associar à ViewGroup todos os outros controlos
  • 20. Alguns controlos A maior parte dos controlos gráficos estão no package android.widget http://developer.android.com/reference/android/widget/package-summary.html As classes View e ViewGroup estão em   android.view http://developer.android.com/reference/android/view/package-summary.html
  • 21. Alguns controlos Todos os controlos têm um construtor que necessita de um Context Este parâmetro é a nossa Activity (subclasse indirecta de Context) Ver projecto "android-2"
  • 22. 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.
  • 23. 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");      } }
  • 24. 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-3 Experimentem adicionar outro botão Ver projecto android-4
  • 25. Exemplo calculadora de fracções Ver projecto FractionCalculator
  • 26. Exemplo SmsSender Ver projecto SMSSender
  • 27. Fim Cursos de Verão na Católica 2010 http://porto.ucp.pt/cvc/ Jorge C. S. Cardoso, Luís Gustavo Martins jorgecardoso@ieee.org, lmartins@porto.ucp.pt http://slideshare.net/jorgecardoso (tag: cvc2010) Código fonte:  http://db.tt/AOFOfA2