Desenvolvimento de aplicações para a plataforma google android

Preview:

DESCRIPTION

Slide da apresentação sobre desenvolvimento de aplicações para Google Android no ENUCOMP 2011.Durante a apresentação foi desenvolvida uma app android fazendo comunicação com uma aplicação web, desenvolvida com VRaptor, via RestFul. A aplicação era uma biblioteca on line, onde os alunos que tivesse a app android podia reservar e renovar os títulos do acervo.

Citation preview

114/09/11 ENUCOMP - 2011

Apresentação

2

Cândido Sales •Estudante do IFPI;•Membro do LIMS;

@candidosalescandidosg@gmail.com

Lucas Aquiles•Estudante do IFPI;

@lucas_aquileslucasaquiles@gmail.com

Apresentação

14/09/11 ENUCOMP - 2011

Introdução a Computação móvelIntrodução a Computação móvel

314/09/11 ENUCOMP - 2011

4

Computação MóvelRealizada em dispositivos portáteis que sejam

capazes de acessar uma rede sem fio.

Por usuários móveis (com diferentes velocidades)

Acesso à informação a qualquer lugar, a qualquer momento

Termos relacionados:

– Computação Pervasiva

– Computação Ubíqua

14/09/11 ENUCOMP - 2011

Dos Mainsframes à computação móvel

14/09/11 ENUCOMP - 2011

Computação Pervasiva

Computação Pervasiva: acesso conveniente a informações relevantes e a habilidade de realizar ações sobre as mesmas quando e onde for necessário (IBM).

“Espalhada por todos os lugares”

14/09/11 ENUCOMP - 2011

Computação Pervasiva

Projeto Everywhere Display (IBM)

– Qualquer superfície pode se tornar em uma projeção do tipo “touch screen”

14/09/11 ENUCOMP - 2011

Computação Ubíqua

Computação Ubíqua:

– onipresença da informática no cotidiano das pessoas (Wikipédia)

– ... tornam-se parte da nossa vida de forma que não os percebemos mais (Mark Weiser)

– Baseia-se na detecção de gestos, movimentos, fala, movimentação dos olhos...

14/09/11 ENUCOMP - 2011

Computação Ubíqua

Ex: Casa do “futuro”:

• Sistema automático de iluminação

• Sistemas de extinção e prevenção de incêndios

• Monitoramento de saúde dos ocupantes da casa

• Geladeira que perceba variações de estoque e validade dos produtos

• Celular que envia dados de “coletados” a uma central médica

14/09/11 ENUCOMP - 2011

14/09/11 ENUCOMP - 2011

Computação Ubíqua

Juntando tudo

14/09/11 ENUCOMP - 2011

Princípios da Computação Móvel

Descentralização

Diversificação

Conectividade

Simplicidade

14/09/11 ENUCOMP - 2011

Princípio da Descentralização

Um passo além da descentralização dos sistemas distribuídos;

Uma grande variedade de pequenos dispositivos cooperam estabelecendo uma rede dinâmica de relacionamentos;

A habilidade de utilizar aplicações e informações em dispositivos móveis gera a necessidade de sincronização de atualizações de dados com sistemas servidores e outros dispositivos.

14/09/11 ENUCOMP - 2011

Princípio da Diversificação

Mesma informação em diferentes “modelos”

14/09/11 ENUCOMP - 2011

Princípio da Conectividade

Uma grande variedade de tecnologias deve ser atendida:

– redes celulares, WLANs, Bluetooth, IrDA, WiMax, comunicação via satélite, etc. . .

Não basta apenas conectar os dispositivos:

– Troca de dados

– Descoberta de serviços

– Delegação de tarefas

14/09/11 ENUCOMP - 2011

Princípio da Simplicidade

Computadores de uso geral: configuração complexa

“Computadores” móveis: mais específicos e mais simples em configuração

Simples não significa primitivo:– telas touch-screen,– reconhecimento de escrita,– reconhecimento de voz– etc

14/09/11 ENUCOMP - 2011

Requisitos de Aplicação• Infra-estrutura:

- Cobertura(indoor, outdoor, acesso a alta/baixa velocidade)

- Qualidade da comunicação

- Confiabilidade e estabilidade da comunicação

- Segurança

• Dispositivo Móvel

– Forma de interação (grafico, textual, voz)

– Capacidade de identificar localização

– Capacidade de processamento e armazenamento locais

• Serviços Middleware

– Suporte à criptografia e autenticação

– QoS (Quality of Service)

– Descoberta e adaptação a novos serviços e recursos

14/09/11 ENUCOMP - 2011

Aceitação das Tecnologias

Tempo para atingir 1 milhão de usuários:

– TV preto-banco: 20 anos

– TV em cores: 9 anos

– VCR: 8 anos

– PC: 6 anos

– Celular: 2 anos e meio

Dos 128 milhões de PCs vendidos em 2001, 22% eram laptops e este percentual tem crescido 1 a 2 pontos por ano desde 1999;

Acessos à Internet por meio de dispositivos móveis ultrapassou os acessos convencionais (PC e Browser) desde meados de 2002.

14/09/11 ENUCOMP - 2011

Algumas aplicações de computação móvel

Négocios diversos: m-commerce e m-business

• Acesso à Internet por viajantes: transferência de arquivos, Web, acesso remoto…;

• Comércio: vendedores ambulantes;

• Tratamento Médico emergencial: transmissão do prontuário de/para ambulância (ou local do acidente);

• Segurança: consulta e obtenção de ficha criminal;

• Seguradoras: avaliação de sinistro;

• Serviços de resgate: coordenação das atividades de resgate;

• Aplicações Militares: coordenação de ações;

Gerenciamento de frota e Gerenciamento de bens;

14/09/11 ENUCOMP - 2011

Serviços baseados em localização

Serviços de emergência: usuários entram em contato com uma central (E911) e é localizado;

• Informações de tráfego;

• Navegação: Como ir do ponto A ao ponto B?

• Gerenciamento de frota;

• Gerenciamento de bens;

• Publicidade sem fio: usuários podem subscrever serviços que os notifiquem a respeito de certos produtos quando adentrarem uma dada região;

• Serviços de busca: restaurantes, postos de gasolina, hotéis próximos;

• Localização automática de veículos;

• Mapas;

• Informações de trânsito;

• Jogos.

14/09/11 ENUCOMP - 2011

Impacto da Computação MóvelRepresenta um novo paradigma computacional,ampliando os

conceitos da computação distribuída

– Áreas com diversas implicações:

Redes de Computadores

Sistemas Operacionais

Banco de Dados

Ambientes de Programação

etc. . .

Mudanças sociais?

14/09/11 ENUCOMP - 2011

Difusão da Tecnologia celular

14/09/11 ENUCOMP - 2011

14/09/11 ENUCOMP - 2011

Difusão da Tecnologia celular

Difusão da Tecnologia celular

14/09/11 ENUCOMP - 2011

14/09/11 ENUCOMP - 2011

Difusão da Tecnologia celular

Difusão da Tecnologia celular

14/09/11 ENUCOMP - 2011

14/09/11 ENUCOMP - 2011

Difusão da Tecnologia celular

14/09/11 ENUCOMP - 2011

Difusão da Tecnologia celular

14/09/11 ENUCOMP - 2011

Difusão da Tecnologia celular

14/09/11 ENUCOMP - 2011

Difusão da Tecnologia celular

14/09/11 ENUCOMP - 2011

Difusão da Tecnologia celular

Visão GeralVisão Geral

III SACIC - 2011 3214/09/11 ENUCOMP - 2011

Roteiro

1. Mundo mobile

2. O que é o Android;

3. Open Handset Alliance;

4. Android e os competidores;

5. Por que Linux no Android?;

6. Dalvik Virtual Machine;

7. Instalando as ferramentas do Android;

8. Projeto “Meu HelloWord”

9. Componentes;

14/09/11 ENUCOMP - 2011

Mundo mobile

Mercado de celulares

Usuários querem mais recursos em seus dispositivos

Aplicações móveis no mundo coorporativo

Necessidade de plataformas mais modernas para desenvolvimento de aplicações no auxilio de seus negócios e lucros.

14/09/11 ENUCOMP - 2011

O que é Android?

Sistema operacional baseado no kernel do Linux;

Possui uma implementação da JVM – Dalvik;

Código aberto e livre;Plataforma flexível e poderosíssima de

desenvolvimentoCustomizavel

14/09/11 ENUCOMP - 2011

Android e os competidores

IPhone

JME

Symbiam

BlackBerry

WindowsMobile

14/09/11 ENUCOMP - 2011

Porque Linux no android?

Construída sob o kernel 2.6 do Linux

Gerencia memória e processos

Abstração de hardware

Usuários não vêem o Linux e seus programas não fazem chamas diretas a ele.

Suporte a gráficos 3D, especificação 1.0 da OpenGL ES, possível criar jogso com ótima qualidade.

14/09/11 ENUCOMP - 2011

Open Handset Alliance

União entre grandes da telefonia liderados pelo Google (OHA – Open Handset Alliance)

Definir uma plataforma única e abertaPlataforma moderna e flexível para

desenvolvimento de aplicaçõesFabricantes, Usuários e

Desenvolvedores se beneficiam com o grupo

14/09/11 ENUCOMP - 2011

Dalvik Virtual Machine

JVM ótimizada para execução de dispositivos móveis – Dalvik

Bytecodes (arquivo .class) são convertidos em arquivo .dex (Dalvik Executable) – Aplicação android compilada

Compactação dos arquivos .dex e recursos como imagens em arquivos .apk (Android Package File) – Aplicação Final

14/09/11 ENUCOMP - 2011

Instalando as ferramentas do Android

Requisitos1.Java SDK2.Android SDK3.Eclipse IDE4.Plugin ADT

14/09/11 ENUCOMP - 2011

Configuração do ambiente

1. Escolher a versãodo JDK

2.Aceite os termos

3.Escolher a versãopara seu S.O

14/09/11 ENUCOMP - 2011

Configuração do ambiente

Instalação do JDK no Linux (Ubuntu)Com o comando apt-get:sudo apt-get install openjdk-6-jdk && sudo apt-get

install sun-java6-jdk

Após a instalação entre via console e digite: java –v

A saída deve ser a versão do java instalado.

14/09/11 ENUCOMP - 2011

Instalação do Android SDK

1. no site www.android.com escolher a opção developers

14/09/11 ENUCOMP - 2011

Instalação do Android SDK

2. Escolha a opção SDK

3. Baixe o android SDK de acordo com o seu S.O

A versão atual é a 3.2 (para tablet) e 2.3.3 (para smartphone)14/09/11 ENUCOMP - 2011

Instalação do Android SDK

Localize o arquivo e descompacte-o.

No windows basta executar o arquivo “SDK Manager.exe” localizado na pasta raiz do sdk

No linux ou Mac, acesse pelo terminal a pasta raiz do sdk e execute o comando ./tools/android

14/09/11 ENUCOMP - 2011

Instalação do Android SDK

irá aparacer o Android SDK e o AVD (android vitual device) Manager.

14/09/11 ENUCOMP - 2011

Instalação do Android SDK

Vá em “Available Packages”, marque a opção “AndroidRepository” e clique em “Install Selected”

14/09/11 ENUCOMP - 2011

Instalação do Android SDK

Uma lista com todos os componentes disponíveis, incluindo documentação, plataformas, add-on, bibliotecas será exibida.

14/09/11 ENUCOMP - 2011

Instalação do Android SDK

Caso ocorra algum erro de HTTPS SSL, vá em "settings“, marque a opção "Force https:// sources to be fetched using http://" e clique em "Save & Apply".

14/09/11 ENUCOMP - 2011

Instalação do Android SDK

Aceite todos e clique em “install”

14/09/11 ENUCOMP - 2011

Instalação e Configuração do Eclipse IDE

1. Acesse o site www.eclipse.org e vá na sessão “Downlods”

2. Escolha a versão do Eclipse IDE for Java Developers

14/09/11 ENUCOMP - 2011

Instalação e Configuração do Eclipse IDE

Faça o download

14/09/11 ENUCOMP - 2011

Instalação e Configuração do Eclipse IDE

Após o download localize o arquivo , descompacte-o e execute o arquivo “eclipse.exe”

No ubunto é apenas “eclipse”

14/09/11 ENUCOMP - 2011

Instalação do plugin ADT

Inicie o eclipse e vá em “help”, “install new software”

14/09/11 ENUCOMP - 2011

Instalação do plugin ADT

Clique em add e uma nova janela irá aparecer

Em “name” coloque “ADT Plugin” e em “location” adicione https://dl-ssl.google.com/android/eclipse/ e clique em “ok”

14/09/11 ENUCOMP - 2011

Instalação do plugin ADT

Selecione “ADT Plugin” na lista de sites, marque a opção “Developers Tools” e clique em “next”.

14/09/11 ENUCOMP - 2011

Instalação do plugin ADT

Irá aparecer uma lista com todos os item a serem instalados.

Clique em "Next" novamente. Na próxima tela, escolha a opção "I accept the the terms of the licence agreements" e clique em 'Finish'.

Após o processo de instação do plugin o Eclipse irá reiniciar.

14/09/11 ENUCOMP - 2011

Instalação do plugin ADT

Quando o Eclipse IDE iniciar uma mensagem de erro irá aparecer, porque a IDE não consegue localizar o Android SDK

Vá em Window, Preferences, Android. Clique em 'Browse..‘, selecione a raiz do SDK e clique em 'OK‘.

14/09/11 ENUCOMP - 2011

Criando uma ADV

Abra o “SDK e ADV Manager” e em Virtual Devices clique em “new”

14/09/11 ENUCOMP - 2011

Criando uma ADV

Adicione as informações como na imagem e clique em “Create ADV”

14/09/11 ENUCOMP - 2011

Criando uma ADV

Criamos uma ADV com o nome “enucomp”

Que possui o firmeware 2.2 e também possui o Secure Digital Card (SD) e o Skin Default Half-VGA – HVGA (320 x 480)

14/09/11 ENUCOMP - 2011

Pronto! Nosso ambiente está pronto para desenvolvimento.

14/09/11 ENUCOMP - 2011

Projeto “Meu HelloWord”

O plugin ADT vem com uma aplicação HelloWord de exemplo, vamos usá-la

Vá em “file” > “Project” > “new project”.

Vá em “android” > “android project” e clique em “next”

Em Project Name digite: HelloAndroid

No Build Target: Android 2.2

Application Name : Hello, Android

Package name: br.ifpi.edu.hello

Create Activity: Hello

E clique em “finish”

14/09/11 ENUCOMP - 2011

Projeto “Meu HelloWord”

Um estrutura de diretórios como a mostrada abaixo será criada

14/09/11 ENUCOMP - 2011

Projeto “Meu HelloWord”

Para executar clique com o botão direito em cima do projeto e escolha “run as” > “android application”

14/09/11 ENUCOMP - 2011

Projeto “Meu HelloWord”

14/09/11 ENUCOMP - 2011

ActivityActivity

III SACIC - 2011 6714/09/11 ENUCOMP - 2011

ActivityUma tela pode ser criada de duas formas:

– Em um arquivo XML

– Direto em um arquivo Java usando a sua API

android.app.Activity:

– Similar à classe JFrame do Swing

– Representa, à priori, uma tela da aplicação

– Composta por vários componentes representados pela classe andoid.view.View (botões, checkboxes, imagens)

– Controla a passagem de parâmetros para outra tela

– Define métodos para tratar eventos dos componentes

14/09/11 ENUCOMP - 2011

Activity

14/09/11 ENUCOMP - 2011

View

São componentes simples (botões, checkboxes, imagens) ou componentes compostos

– Atuam como gerenciadores de layout

– Podem conter várias views filhas (outro componentes)

O arquivo main.xml é um arquivo de layout padrão

Vários layouts podemser definidos

14/09/11 ENUCOMP - 2011

Setando a View Principal

O médoto setContentView faz a ligação entre a activity e a view

A view passada como parâmetro está definida no arquivo main.xml (pode ser mudado)

– é referenciada via o arquivo R.java como uma constante

14/09/11 ENUCOMP - 2011

A classe R

14/09/11 ENUCOMP - 2011

AndroidManifest.xml

Base da aplicação e semelhante ao web.xml de aplicações WEB

14/09/11 ENUCOMP - 2011

AndroidManifest.xml

As Activities devem ser definidas no arquivo

Para que o usuário possa interagir, pelo menosuma Activity deve ser definida no arquivo

A configuração de uma Activity como ponto de partida para a aplicação é ilustrada abaixo:

14/09/11 ENUCOMP - 2011

Criação de interface via Java

Pode-se definir uma interface visual via codificação java

14/09/11 ENUCOMP - 2011

Referenciando componentes

Sempre que possível, atribua um ID aos componentes

14/09/11 ENUCOMP - 2011

Referenciando componentes

Adicionar IDs aos componentes permitem acesso via codificação

14/09/11 ENUCOMP - 2011

Tratando o clique de um botão

Para tratar eventos de um botão, deve-se:

– Obter o componente pelo ID

– Instanciar um listener

– Setar o listener no botão

– Implementar o método onClick

14/09/11 ENUCOMP - 2011

Exemplo

14/09/11 ENUCOMP - 2011

Gerando Logs

14/09/11 ENUCOMP - 2011

Gerando Logs

Usa-se a classe Log e seus métodos estáticos:

14/09/11 ENUCOMP - 2011

ComponentesComponentes

III SACIC - 2011 8214/09/11 ENUCOMP - 2011

Roteiro

1. ScrollView;2. MapView;3. ListView;4. ImageView;5. ContextMenu;6. Autocomplete;7. Tables;8. Buttons (ImageButton, GroupButton, Button);9. “CSS”;10.Tratamento de eventos11.Apresentação de exemplos

14/09/11 ENUCOMP - 2011

ScrollView

A classe android.widget.ScrollView deve ser utilizada para telas que contêm muitos elementos e nas quais seja necessário fazer a rolagem da tela.Exemplo

exemplo_scrollview.xml ExemploScrollView

14/09/11 ENUCOMP - 2011

MapView

Para visualização de mapas;Para utilizar um MapView, basta definir a tag

<com.google.android.maps.MapView> e informar no atributo android:apiKey uma chave de autenticação válida para o Google Maps.

Exemplo Mapview.xml MapaSimplesXML

14/09/11 ENUCOMP - 2011

ListView

Desenha os componentes em uma lista vertical e com barra de rolagem (scroll), se necessário.Necessita da classe android.app.ListActivity,

uma acitivy especial para exibir uma lista de itens na vertical.

Exemplo Prático! Pág. 113

14/09/11 ENUCOMP - 2011

ImageView

Apresenta uma imagem que você selecionou.

14/09/11 ENUCOMP - 2011

Context Menu

Menu contextuado que pode ser utilizado em qualquer momento de sua aplicação.Exemplo

Pág 253

14/09/11 ENUCOMP - 2011

Autocomplete

Um recurso muito usado em aplicações web

São campos de texto que podem completar automaticamente o texto que o usuário está digitando.

Para usar o AutoCompleteTextView é necessário chamar o método setAdapter(adaptador) e informar sua implementação de ListAdapter.

Exemplo Pág 221

14/09/11 ENUCOMP - 2011

Tabs

• Conceitos1. TabHost – Componente que agrupa os

butões e o contéudo

1. TabWidget – Grupa em linha os butões que possuem labels e ícones (opcional)

1. FrameLayout – Agrupa o conteúdo de uma aba

14/09/11 ENUCOMP - 2011

Tabs

• Estrutura

14/09/11 ENUCOMP - 2011

Usando TabActivity

• Crie uma nova Activity que extenda de TabActivity e implementa as interfaces OnTabChangeListener e TabContentFactory

14/09/11 ENUCOMP - 2011

Usando TabActivity

• Crie dois novos layouts xml do android com os nomes tab1.xml tab2.xml e adicione um TextView a cada layout

• E altere o setContentView() das activitys Tab1.class e Tab2.class para eles.

14/09/11 ENUCOMP - 2011

Nova tab pelo XML do Android

Crie um novo layout XML - tabs.xml

Crie uma nova acvitivy - Tabs.java que estenda de Activity

Adicione a activity ao AndroidManifest.xml

Altere o método setContentView(R.layout.tabs))

14/09/11 ENUCOMP - 2011

Nova tab pelo XML do Android

Sua activity deve está assim

14/09/11 ENUCOMP - 2011

Nova tab pelo XML do Android

Altere o arquivo tab.xml

14/09/11 ENUCOMP - 2011

Nova tab pelo XML do Android

Altere o arquivo Tab.java

14/09/11 ENUCOMP - 2011

Nova tab pelo XML do Android

Altere o arquivo AndroidManifest para que a activity Tabs.java seja iniciada no início da aplicação

14/09/11 ENUCOMP - 2011

Buttons

As classes android.widget.Button e android.widget.ImageButton são utilizadas para criar um botão na tela.A diferença é que a classe ImageButton

permite usar uma imagem para desenhar no botão.

Exemplo Pág 223

14/09/11 ENUCOMP - 2011

“CSS”

Podemos utilizar os arquivos XML como extensões de estilos que podem ser reutilizados em vários layouts, sem necessitar a repetição de código.Exemplo

Guia Turistico

14/09/11 ENUCOMP - 2011

Ciclo de vidaCiclo de vida

III SACIC - 2011 10114/09/11 ENUCOMP - 2011

17/05/11 III SACIC - 2011

Ciclo de vida de uma activity

14/09/11 ENUCOMP - 2011

17/05/11 III SACIC - 2011

onCreate:

– Obrigatório e chamado uma única vez.

– Deve-se setar a view

• onStart: é chamado quando uma activity está ficando visível e já tem uma view definida

• onRestart: chamado quando uma activity foi parada temporariamente e está retornando à execução

• onResume:

– Quando uma activity está executando.

– Pode ser chamada também para recuperação de dados quando foi interrompida e volta a execução

Ciclo de vida de uma activity

14/09/11 ENUCOMP - 2011

17/05/11 III SACIC - 2011

onPause: chamado quando a activity está sendo tirada do topo da execução. Usado para salvar o estado da aplicação

onStop:

– A aplicação não está mais visível e está em segundo plano.

– Caso fique por muito tempo em 2o Plano e falte recursos, o S.O. pode remover completamente da pilha de execução

onDestroy: encerra literalmente a activity

Ciclo de vida de uma activity

14/09/11 ENUCOMP - 2011

Activities x IntentsActivities x Intents

III SACIC - 2011 10514/09/11 ENUCOMP - 2011

Activities x Intents

Activities são as "telas"Uma aplicação pode ter várias activities:– geralmente independentes,– contudo elas podem precisar se cooperar e

trocar dados entre siNuma aplicação tradicional, uma activity deve

ser definida como "main" e será executada ao rodar a aplicação

Indo de uma activity para outra é possível pedindo para a atual executar uma intent

14/09/11 ENUCOMP - 2011

Intents

14/09/11 ENUCOMP - 2011

Intents

android.content.Intent

• Representa uma mensagem da aplicação para o S.O.

• Solicita que algo seja realizado e serve para integrar aplicações

• Ex:

– Chamar outra tela (já visto)

– Solicitar que o S.O. ligue para um número;

– Abrir o browser em um determinado endereço

– Exibir algum endereço, localização ou rota num mapa

– Executar processamento em segundo plano

– Enviar mensagem para outras aplicações realizarem tarefas específicas

14/09/11 ENUCOMP - 2011

Intents

São chamadas pelos métodos:

startActivity(intent) = Executa uma activity

starActivityForResult(intent) = Executa uma activity quepode retornar valores

startService(intent) or bindService(intent, …) = Inicia ou se comunica comum serviço de segundo plano

sendBroadcast(intent) = Envia uma intent que podeser "capturada" por serviçosespecíficos

14/09/11 ENUCOMP - 2011

Alguns tipos de Intents pré-definidos

14/09/11 ENUCOMP - 2011

Permissões

Algumas intents necessitam de permissão explicita para executar

Deve-se adicionar as permissões no arquivo AndroidManifest.xml

14/09/11 ENUCOMP - 2011

Usando Intents pré-definidas

14/09/11 ENUCOMP - 2011

Algumas permissões

Permissão para executar navegação: INTERNET

Ligações telefônicas: CALL_PHONE

Leitura à lista de contatos: READ_CONTACTS

14/09/11 ENUCOMP - 2011

Intent chamar navegador

Tipo ACTION_VIEW

...

Uri uri = Uri.parse("http://www.android.com");

Intent it = new Intent(Intent.ACTION_VIEW, uri);

startActivity(it);

...

É necessária a permissão INTERNET

14/09/11 ENUCOMP - 2011

Recommended