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
Dêmora Bruna Sousa
Édipo da Silva Souza
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.
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
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.
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.
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).
Criação de um Virtual
Device • Window > AVD Manager
• Apete o botão New...
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.
• 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.
• Ao abrir o arquivo res > layout > main.xml,
poderemos visualizar o layout da aplicação:
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.
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).
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.
Uma nova
activity • Para criar uma nova
activity, é necessário
implementar uma
subclasse de Activity
e sobrescrever alguns
métodos.
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.
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” />
Chamando a Activity • Uma activity pode ser chamada utilizando o
método startActivity()
Intent i = new Intent(this, NomeActivity.class);
startActivity(i);
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.
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.
LinearLayout • Alinha todos os elementos em uma unica direção,
horizontal ou vertical.
RelativeLayout • A posição de cada elemento é especificado em
relação a posicao dos elementos irmãos ou em
relação ao RelativeLayout pai.
ListView • Mostra uma lista de itens.
GridView • Exibe itens em uma grade bidimensional, rolável.
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);
• 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.
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/
Mini-Web-Browser • Estrutura
• Interface.
• Activity.
• Listener.
• Permissões.
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
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)
Mini-Web-Browser • XML da Interface
Mini-Web-Browser • Activity
• Bloco de variáveis para podermos
fazer referencia aos
componentes.
• Comandos de configuração no
onCreate.
Mini-Web-Browser • Activity
• Método de configuração dos componentes para suas
respectivas variáveis de referência.
• 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()
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.
Mini-Web-Browser • Activity
• Método onClick(View v), verifica qual botão o
chamou e toma a devida ação para ele.
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.
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.
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.
Mini-Web-Browser • Funciona!
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/
Mini-Mp3-Player • Estrutura
• Interface.
• Activity.
• Classe Filtro Mp3.
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
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)
• XML da Interface
Mini-Mp3-Player • Activity
• Bloco de variáveis para
podermos fazer referencia
aos componentes.
• Comandos de configuração no
onCreate.
Mini-Mp3-Player • Activity
• Método de configuração dos componentes para suas
respectivas variáveis de referência.
Mini-Mp3-Player • Activity
• Método de leitura das músicas no cartão de memória.
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.
Mini-Mp3-Player • Activity
• Método onClick(View v), verifica qual botão o
chamou e toma a devida ação para ele.
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.
Mini-Mp3-Player • Activity
• Método para passar e para voltar música.
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.
Mini-Mp3-Player • Funciona!