introdução a plataforma android
DESCRIPTION
Workshop ministrado em 10/10/2012 durante o Media Week II promovido pelo curso de Sistemas e Mídias Digitais na Universidade Federal do Ceará.TRANSCRIPT
![Page 1: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/1.jpg)
Dêmora Bruna Sousa
Édipo da Silva Souza
![Page 2: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/2.jpg)
O que é Android
exatamente? • Android é uma pilha de software que inclui um sistema
operacional, um middleware e aplicações chaves.
• Ele foi projetado com amplo suporte ao
desenvolvimento de aplicativos por parte de terceiros.
• Desenvolvedores que almejem criar aplicativos para
essa plataforma possuem acesso a mesma API utilizada
na criação dos aplicativos nativos do Android. Isso
permite o desenvolvimento de aplicativos bastante
flexíveis e que usam recursos avançados do sistema.
![Page 3: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/3.jpg)
![Page 4: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/4.jpg)
Ferramentas utilizadas • Para o desenvolvimento de aplicações Android
utilizaremos as seguintes ferramentas:
1. JDK (Java Development Kit)
2. Eclipse
3. Android SDK (Android Standard Development Kit)
4. ADT (Android Development Tools) para o Eclipse
![Page 5: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/5.jpg)
Instalação do ADT • Help > Install New Software e em seguida aperte o
botão Add.
• Window > Preferences e depois Android. No campo SDK Location, deve ser colocado o caminho onde instalação do Android SDK foi realizada.
![Page 6: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/6.jpg)
Visão geral do ambiente ADT
• O plugin ADT é uma ferramenta de apoio muito
poderosa que permite o controle minucioso de um
dispositivo Android, quer seja ele emulado ou não.
Entre suas funcionalidades, podemos citar:
emulação de GPS, recebimento de chamadas e de
SMS, acesso ao diretório de arquivos e captura de
tela do dispositivo, etc.
![Page 7: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/7.jpg)
![Page 8: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/8.jpg)
Download da versão 2.3 • No menu superior do Eclipse, escolha Window >
Android SDK Manager.
• Selecione para instalação os itens Tools e SDK
Platform dentro de Android, e 2.3.3 (API10).
![Page 9: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/9.jpg)
Criação de um Virtual
Device • Window > AVD Manager
• Apete o botão New...
![Page 10: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/10.jpg)
Hello World • Tendo o seu ambiente
de desenvolvimento
configurado, a criação
de um primeiro
aplicativo Android é
bastante simples:
1. Acesse o menu
File > New > Android
Project.
![Page 11: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/11.jpg)
![Page 12: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/12.jpg)
• O projeto de sua primeira aplicação foi criado com sucesso. Agora já é possível visualizar o projeto no canto esquerdo da tela.
• Os principais diretórios e arquivos dessa estrutura são:
• src: Pasta que conterá o código-fonte Java escrito pelo desenvolvedor.
• gen: Esse diretório contem código-fonte gerado
automaticamente pelo eclipse.
• res: Diretório onde todos os recursos (imagens, arquivos em geral, etc...) do aplicativo são armazenados.
• AndroidManifest.xml: Arquivo onde metadados da sua aplicação serão informados. Aqui vão informações como, por exemplo, as permissões que o aplicativo necessita do sistema funcionar corretamente.
![Page 13: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/13.jpg)
• Ao abrir o arquivo res > layout > main.xml,
poderemos visualizar o layout da aplicação:
![Page 14: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/14.jpg)
Executando a aplicação 1. Click com o
botão direito do
mouse na raiz da
estrutura do
projeto.
2. Selecione Run As
> Android
Application.
![Page 15: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/15.jpg)
Activity • Activity é um tipo de classe do framework Android
que provê uma tela (interface) com a qual o
usuário interage. Comumente essas classes podem
utilizar arquivos XML de layout para definir suas
telas. A maioria das aplicações conterá múltiplas
activities fracamente acopladas, sendo uma a sua
inicial (tela inicial do aplicativo).
![Page 16: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/16.jpg)
Activity • O fluxo comum em um programa se dá a partir de
activities que iniciam novas acitivities. Quando
uma activity é iniciada, a anterior para de
executar e entra em uma pilha. O botão “back”
presente nos dispositivo Android permite que o
usuário seja capaz de voltar activities.
![Page 17: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/17.jpg)
Uma nova
activity • Para criar uma nova
activity, é necessário
implementar uma
subclasse de Activity
e sobrescrever alguns
métodos.
![Page 18: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/18.jpg)
Adicionando layout • Clique com o botão direito do mouse no código-fonte de
sua Activity e selecione Source > Override/Implement Methods... . Marque o item onCreate(Bundle) e aperte o botão Ok.
• Agora, dentro do diretório res/layout do projeto, crie uma copia do arquivo main.xml e renomeie como mylayout.xml.
• Dentro do método onCreate(), faça uma chamada ao método setContentView() passando R.layout.mylayout como parâmetro.
![Page 19: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/19.jpg)
Declarando • Para que a activity seja executada pela aplicação é
necessário declará-la no AndroidManifest.xml.
• O trecho de código abaixo deve ser inserido dentro
da tag <application>:
<activity android:name=”.NomeDaActivityCriada” />
![Page 20: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/20.jpg)
Chamando a Activity • Uma activity pode ser chamada utilizando o
método startActivity()
Intent i = new Intent(this, NomeActivity.class);
startActivity(i);
![Page 21: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/21.jpg)
![Page 22: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/22.jpg)
Ciclo de Vida • Durante a vida de uma activity, muitos eventos
podem ocorrer. Ações do usuário como apertar os
botões “home” e “back”, abrir novas telas
(activities), ou o recebimento de chamadas como
receber uma ligação, etc., geram vários eventos
que podem ser capturados dentro de uma activity.
![Page 23: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/23.jpg)
![Page 24: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/24.jpg)
Interface com usuário • Uma interface de usuário em uma aplicação
Android é um conjunto de objetos do tipo View.
Todo e qualquer componente de interface gráfica é
uma subclasse de View. Por exemplo: EditText,
TextView, Button, LinearLayout, ImageView.
• Em Interfaces de usuário (UI) existem views
chamadas layout. Um layout define como views
que estarão dentro dele serão dispostas.
![Page 25: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/25.jpg)
LinearLayout • Alinha todos os elementos em uma unica direção,
horizontal ou vertical.
![Page 26: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/26.jpg)
RelativeLayout • A posição de cada elemento é especificado em
relação a posicao dos elementos irmãos ou em
relação ao RelativeLayout pai.
![Page 27: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/27.jpg)
ListView • Mostra uma lista de itens.
![Page 28: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/28.jpg)
GridView • Exibe itens em uma grade bidimensional, rolável.
![Page 29: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/29.jpg)
AndroidManifest • Toda aplicação necessita de um arquivo
AndroidManifest.xml. Esse arquivo contém
informações sobre sua aplicação que o Android
necessita para que seu código seja executado
corretamente e em segurança. Entre as principais
informações que estão ou podem estar presentes
no AndroidManifest.xml, podemos citar:
• Nome do pacote Java da aplicação (serve como
identificador único da aplicação);
![Page 30: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/30.jpg)
• Descrição dos componentes que sua aplicação contem
(ex.: activities e services);
• Permissões de usuário que seu aplicativo necessita
para rodar em um dispositivo (ex.: acesso a internet
e localização de usuário);
• Declaração de qual API Android mínima é necessária
para rodar o aplicativo.
![Page 31: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/31.jpg)
Aplicações Exemplo • Mini-Web-Browser
• Mini-Mp3-Player
Projeto hospedado no Google Code.
http://code.google.com/p/mini-web-browser-exemplo
Projeto hospedado no Google Code.
http://code.google.com/p/mini-mp3-player/
![Page 32: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/32.jpg)
Mini-Web-Browser • Estrutura
• Interface.
• Activity.
• Listener.
• Permissões.
![Page 33: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/33.jpg)
Mini-Web-Browser • Estrutura.
• src:Activity e Classes em Geral
• gen: Classe R gerada automaticamente
• assets: Arquivos extras (não temos)
• bin: Classes e Apk compilados
• libs: Bibliotecas no projeto (não temos)
• res/drawable: Imagens em cada resolução
• res/layout: XML das Interfaces
• res/menu: XML dos Menus
• res/values: XML com Strings e Styles
![Page 34: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/34.jpg)
Mini-Web-Browser • Interface:
Nossa interface será composta por:
• Botão Voltar; (id = ibVoltar)
• Botão Home; (id = ibHome)
• Botão Ir; (id = ibIR)
• Editor de Texto URL; (id = etURL)
• WebView; (id = browser)
![Page 35: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/35.jpg)
Mini-Web-Browser • XML da Interface
![Page 36: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/36.jpg)
Mini-Web-Browser • Activity
• Bloco de variáveis para podermos
fazer referencia aos
componentes.
• Comandos de configuração no
onCreate.
![Page 37: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/37.jpg)
Mini-Web-Browser • Activity
• Método de configuração dos componentes para suas
respectivas variáveis de referência.
![Page 38: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/38.jpg)
• Activity
• Adicionado variáveis de referência dos componentes, configurações da activity no onCreate e método de configuração dos componentes.
• Mas ainda esta faltando a classe MyWebViewCliente()
![Page 39: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/39.jpg)
Mini-Web-Browser • Activity
• Aqui temos a classe MyWebViewCliente que é
responsável por gerenciar o componente WebView e
nela implementamos uma ação para ocorrer após a
página ser carregada.
![Page 40: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/40.jpg)
Mini-Web-Browser • Activity
• Método onClick(View v), verifica qual botão o
chamou e toma a devida ação para ele.
![Page 41: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/41.jpg)
Mini-Web-Browser • Listener
• Adicionamos uma constante URL_INICIAL e
implementaremos a interface OnKeyListener para
gerenciarmos com o ENTER no campo de texto o
carregamento da página.
![Page 42: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/42.jpg)
Mini-Web-Browser • Listener
• O método sobrescrito onKey é chamado toda vez
que digitamos algo no campo de texto. Então
verificamos se foi um ENTER e se foi, mandamos
carregar a URL digitada.
![Page 43: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/43.jpg)
Mini-Web-Browser • Permissão
• Por fim, falta somente darmos permissão para o aplicativo acessar a internet. Basta inserir o comando no arquivo androidManifest.xml.
![Page 44: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/44.jpg)
Mini-Web-Browser • Funciona!
![Page 45: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/45.jpg)
Aplicações Exemplo • Mini-Web-Browser
• Mini-Mp3-Player
Projeto hospedado no Google Code.
http://code.google.com/p/mini-web-browser-exemplo
Projeto hospedado no Google Code.
http://code.google.com/p/mini-mp3-player/
![Page 46: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/46.jpg)
Mini-Mp3-Player • Estrutura
• Interface.
• Activity.
• Classe Filtro Mp3.
![Page 47: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/47.jpg)
Mini-Mp3-Player • Estrutura.
• src: Activity e Classes em Geral
• gen: Classe R gerada automaticamente
• assets:Arquivos extras (não temos)
• bin: Classes e Apk compilados
• libs: Bibliotecas no projeto (não temos)
• res/drawable: Imagens em cada resolução
• res/layout: XML das Interfaces
• res/menu: XML dos Menus
• res/values: XML com Strings e Styles
![Page 48: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/48.jpg)
Mini-Mp3-Player • InterfaceInterface.
Nossa interface será composta por:
• Texto MusicaAtual; (id = txMusicaAtual)
• Botão Anterior; (id = ibAnterior)
• Botão Play; (id = ibPlay)
• Botão Pause; (id = ibPause)
• Botão Stop; (id = ibStop)
• Botão Proxima; (id = ibProxima)
• ListView list; (id = @android:id/list)
![Page 49: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/49.jpg)
• XML da Interface
![Page 50: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/50.jpg)
Mini-Mp3-Player • Activity
• Bloco de variáveis para
podermos fazer referencia
aos componentes.
• Comandos de configuração no
onCreate.
![Page 51: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/51.jpg)
Mini-Mp3-Player • Activity
• Método de configuração dos componentes para suas
respectivas variáveis de referência.
![Page 52: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/52.jpg)
Mini-Mp3-Player • Activity
• Método de leitura das músicas no cartão de memória.
![Page 53: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/53.jpg)
Mini-Mp3-Player • Activity
• Para termos o gerenciamento automático da Lista,
estendemos nossa activity de ListActivity.
• E Sobre-escrevemos o método onListItemClick() para
tomarmos uma ação quando um item for selecionado.
![Page 54: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/54.jpg)
Mini-Mp3-Player • Activity
• Método onClick(View v), verifica qual botão o
chamou e toma a devida ação para ele.
![Page 55: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/55.jpg)
Mini-Mp3-Player • Activity
• Método para carregar e tocar música. O método
OnCompletion é chamado pelo Listener quando a música
terminar de tocar.
![Page 56: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/56.jpg)
Mini-Mp3-Player • Activity
• Método para passar e para voltar música.
![Page 57: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/57.jpg)
Mini-Mp3-Player • Classe Filtro Mp3
• Adicionamos uma constante URL_INICIAL e
implementaremos a interface OnKeyListener para
gerenciarmos com o ENTER no campo de texto o
carregamento da página.
![Page 58: Introdução a Plataforma Android](https://reader033.vdocuments.pub/reader033/viewer/2022052506/5579a002d8b42ac1148b4735/html5/thumbnails/58.jpg)
Mini-Mp3-Player • Funciona!