Google Android Diego Souza [email protected] Renato França [email protected].

66
Google Google Android Android Diego Souza [email protected] Renato França [email protected]

Transcript of Google Android Diego Souza [email protected] Renato França [email protected].

Page 1: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidGoogle Android

Diego [email protected]

Renato Franç[email protected]

Page 2: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Sobre o cursoSobre o curso

Page 3: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Ementa1. Introdução 2. Configuração do ambiente 3. Conceitos básicos 4. Acitivity 5. Intent e Intent Filter 6. Gerenciadores de Layout 7. View 8. Broadcast Receiver 9. Notification 10. Service 11. Banco de dados 12. Content provider 13. Http, Service e Web Services 14. Mapas e GPS

Page 4: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

IntroduçãoIntrodução

Page 5: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Alguns dados estatísticos

• Para cada 1,5 bilhões de televisores existem 3 bilhões celulares no mundo.

• Mais de 3 bilhões de pessoas no mundo possuem um celular, cerca de metade da população mundial.

• Um mercado em expansão, porém, existem poucos profissionais capacitados.

Page 6: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Mobile Development

• Várias são as plataformas hoje para desenvolvimento de aplicações para dispositivos móveis. Symbian, Brew, JavaME, .NET Compact Framework e Flash Lite.

• O android é a resposta do Google para esse ramo.

Page 7: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Open Headset Aliance

• Grupo formados por gigantes do mercado de telefonia liderados pelo Google.

• O objetivo principal do grupo é transformar a experiência móvel dos usuários ao redor do mundo.

• Alguns membros: Motorola, HTC, LG, Samsung, Sony Ericson, Toshiba, Intel, Asus, entre outros.

Page 8: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

O que é o android?

• O Android é a nova plataforma do Google voltada para dispositivos móveis.

• Baseada na plataforma Java com sistema operacional Linux.

• Busca inovar e acelerar o desenvolvimento de aplicações e serviços.

• Android é a primeira plataforma móvel completa, aberta e livre (Xing ling pode rodar android ).

Page 9: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

O que é android?

• Sistema Operacional Multitarefa.• Fácil integração com as Aplicações nativas e

serviços do google.• Código aberto e livre.• Poderoso ambiente de desenvolvimento.

Page 10: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Porque android?

• Plataforma completa para celulares• Android é Free• O código é aberto• Suporte da comunidade• Vários Frameworks disponíveis• Android é 100% Java

Page 11: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Android Market

• Local onde os desenvolvedores podem postar suas aplicações.

• 70% dos lucros são repassados aos desenvolvedores.

Page 12: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

A plataforma• Framework de Aplicação permitindo reuso de componentes;• Navegador Web Integrado baseado na engine open source WebKit;• Gráficos Otimizados por meio de uma biblioteca de gráficos 2D; e

gráficos 3D baseados na especificação OpenGL ES 1.0;• SQLite para armazenamento de dados em formato de estruturas

relacionais;• Audio (formatos MP3, AAC, AMR), vídeo (MPEG4 e H.264) e

imagens (formatos JPG, PNG, GIF) e suporte a Flash• Bluetooth, EDGE, 3G, WiFi (dependente de hardware) e Tethering.• Câmera, GPS, bússola, e acelerômetro (dependente de hardware)

Page 13: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Alguns aparelhos

Page 14: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Motorola Droid2 • Android OS, v2.2 (Froyo)• ARM Cortex A8 1 GHz,

PowerVR SGX530 graphics 128 MB

• 512 MB RAM• microSD, up to 64 GB,

16GB included• 480 x 854 pixels, 3.7” • Acelerometer sensor

Page 15: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Nexus One

• Android OS, v2.2 (Froyo)• Qualcomm Snapdragon

QSD8250 1 GHz processor

• 512MB RAM• AMOLED capacitive

touchscreen• 480 x 800 pixels, 3.7

inches• O.S. Flash support.

15

Page 16: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Samsung Galaxy S2

• Android OS, v2.3 (Gingerbread)

• Dual-core 1.2GHz ARM Cortex-A9 proccessor

• 1024 MB RAM• 480 x 800 pixels, 4.3

inches• microSD, up to 64GB• AMOLED screen

16

Page 17: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Motorola Atrix

• Android OS, v2.2 (Froyo)

• Dual-core 1GHz ARM Cortex-A9 proccessor

• 1024MB RAM• 540 x 960 pixels, 4.0

inches• HDMI Support

17

Page 18: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Galaxy Tab

• Android OS, v2.2 (Froyo)

• ARM Cortex A8 processor, 1 GHz

• SGX530 GPU 256MB • 512MB RAM• microSD, up to 64GB• HDMI Support• AMOLED screen

18

Page 19: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Apple Iphone 4• iPhone OS (based on

Mac OS)• Apple A4 1 GHz• PowerVR SGX535

graphics 64 MB• 512 MB RAM• 16 GB/ 32 GB storage

19

Page 20: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Motorola Defy

• ARM Cortex-A8 processor 800MHz

• 512 MB RAM• MicroSD up to 32GB• 480 x 854 pixels, 3.7

inches• Android OS, v2.1

(Eclair), upgradable to v2.2

Page 21: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Android x IPhone

Page 22: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Vamos ao que interessa…

Page 23: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Arquitetura Android

Page 24: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Camada de aplicação

• Na camada de aplicação está localizada uma lista de aplicações que incluem um cliente de e-mail, programa de SMS/MMS, calendário, mapas, navegador,gerenciador de contatos, entre outros.

• Aplicações escritas na linguagem Java.

Page 25: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Aplication Framework

• Componentes que permitirão com que novas estruturas sejam utilizadas para futuras aplicações.

• Um rico e extensível conjunto de componentes gráficos que pode ser utilizado para construir uma aplicação, bem como listas, grids, caixas de textos, botões, etc.

• Provedores de conteúdo que habilitam às aplicações acessar dados de outras aplicações.

Page 26: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Dalvik VM

• Máquina Virtual do Android.• Toda aplicação roda dentro do seu próprio

processo.• Executa arquivos .dex, bytecodes de java

otimizados para o android.

Page 27: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

O ambiente de desenvolvimento

• Poderoso Ambiente de Desenvolvimento, totalmente integrado ao Eclipse.

• Um Emulador completo.• Ferramentas para Debug e análise de código.• Analisador de memória e performance.• Ferramenta para análise de hieraquia de

Layouts.

Page 28: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

O que é necessário?

• Eclipse IDEwww.eclipse.org

• Java JREhttp://www.oracle.com/technetwork/java/javase/

downloads/jre-6u25-download-346243.html • Android SDK

http://dl.google.com/android/android-sdk_r11-windows.zip • Plugin android

http://dl.google.com/android/ADT-10.0.1.zip

Page 29: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Emulador

• Vamos dar uma olhada no emulador…

Page 30: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Hello Android

• Vamos fazer um exemplo prático, com o bom e velho Hello World.

Page 31: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

O que vem por aí?

• Google TV

• Android 3.0 – 8 vezes mais rápido– NFC

• Utilização em Netbooks

Page 32: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Google TV• Com telas LCD com backlight de LEDs, full HD e tudo que se espera de uma TV de

ponta, o grande diferencial é trazer o sistema operacional Android instalado, onde o usuário encontrará aplicações como o YouTube, Google Maps, previsão do tempo, calendário e navegador Web.

• A aplicação permite o download e a instalação de novos aplicativos, através do Android Market.

Page 33: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

ConceitosConceitosbásicosbásicos

Page 34: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Representa uma tela da aplicação composta por elementos visuais (android.view.view)

•Similar a JFrame do Swing

•O método setContentView(view) define qual a view principal da tela e deve sempre ser chamado no onCreate()

Activity

Page 35: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

A classe R

• Criada automaticamente e nunca deve ser modificada.

• Define constantes para acesso aos recursos do projeto.

• Ao utilizar um recurso, não precisamos colocar sua extensão.

• O nome dos arquivos adicionados, devem ser minúsculos e sem espaços, caso contrário, a classe R não será compilada corretamente.

Page 36: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Android Manifest

• É a base de qualquer aplicação android, contendo as configurações necessárias para executar a aplicação.

• Toda activity deve ser declarada no manifest.

Page 37: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Acessando elementos

• findViewById(R.id.nome_recurso);

• Usado para utilizar recursos da aplicação.

• Acesso aos recurso através dos Id’s da classe R

Page 38: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Fazem parte do pacote android.util.Log

•Podemos filtrar esses Log’s no DDMS

LogCat

Page 39: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Vamos ver um exemplo prático.

Exemplo

Page 40: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

ActivityActivity

Page 41: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Uma tela da aplicação.

•Trata todos os eventos gerados pela tela.

•Composta por View’s (layouts).

•Qualquer aplicação (Dialer, browser, etc) é uma activity.

O que é?

Page 42: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Gerenciadas pela pilha de Activity.

•Toda activity possui um ciclo de vida.

•Todas devem ser declaradas no Manifest

•Toda activity deve herdar de Activity.

Ex: MyActivity extends Activity

Características

Page 43: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Ciclo de Vida

Page 44: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•O método startActivity(Intent) é usado para iniciar uma nova atividade (Activity), que será colocada no topo da atividade pilha.

•O método sempre deve receber por parâmetro a Intent da activity a ser inicializada.

•Ao inicializar, a nova activity ficará no topo da pilha.

Navegação entre telas

Page 45: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Ss vezes necessitamos obter um resultado de uma atividade quando ela termina sua execução.•

•Ex: Por exemplo, você pode iniciar uma atividade que permite ao usuário escolher uma pessoa em uma lista de contatos, quando termina, ele retorna a pessoa que foi selecionada.

•Para isso, utilizamos o método startActivityForResult(intent, data)

•Você receberá o retorno da execução no método onActivityResult(intent, data)

Recebendo parâmetros de outras telas

Page 46: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Passamos parâmetros para outras telas através das Intent’s.

•O método putExtra adiciona novos valores a intent que iniciará a nova activity.

Passando parâmetros para outras telas

Page 47: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Para encerrar um activity utilizamos o método finish()

•Ao utilizá-lo, o onDestroy() é invocado

Encerrando uma Activity

Page 48: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Vamos ver um exemplo prático.

Exemplo

Page 49: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

IntentIntent

Page 50: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•É considerada o coração do android

•Representa o envio de uma mensagem de requisição ao S.O. para que algo seja feito

•A mensagem é interpretada pela S.O.

•Representa uma“Ação” que uma aplicação deseja executar.

O que é uma intent?

Page 51: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Enviar uma mensagem ao S.O.

•Abrir uma nova tela da aplicação. Ex. startActivity(intent);

•Iniciar outra aplicação a partir da sua.

•Chamar um broadcast receiver

•Dentre outros

Utilização

Page 52: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

• Utilizamos uma intent para iniciar uma activity

• Ao receber uma intent, o S.O. interpreta a mensagem para iniciar alguma activity devidamente.

• Exemplo:

Intent it = new intent(this,tela2.class);

startActivity(it);

Navegação entre telas

Page 53: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

• Abrir o Browser

• Fazer ligações

• Tocar um arquivo mp3 da web

• Visualizar contatos da agenda

• Utilizar a API do google maps• Obs: Algumas aplicações precisam de permissões para

serem executadas.

Algumas intents nativas

Page 54: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Vamos ver alguns exemplos no Eclipse.

Exemplos

Page 55: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Intent FilterIntent Filter

Page 56: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Utilzado para interceptar mensagens que foram enviadas ao S.O.

•Muitas vezes não sabemos qual classe iniciará determiada activity

•Definimos filtros para as Intents, para que activity’s que estiverem com eles mapeados, saberem que estão sendo chamadas.

Intent Filter

Page 57: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Uma Tag <intent-filter> deve ser criada para a intent que receberá o filtro

•Exemplo:

<activity android:name=".Menu" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity>

Configurando um Intent Filter

Page 58: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Toda intent com a tag action setada para MAIN e a categoria para LAUNCHER indica que ela será exibida no menu principal, e essa será a activity de entrada da sua aplicação.

Configurando um Intent Filter

Page 59: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Ação: Define o que a intent deseja realizar. Existem as padrões, mas podemos criar nossas próprias de acordo com as necessidades.

•Categoria: Conjunto de ações que definem o que a ação deseja realizar. Também é possível definir categorias próprias.

•Existem outros tipos de categorias, mas as principais são Action e Category.

Como identificar uma intent?

Page 60: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Se podemos criar uma activity sem o uso de filtros, é reamente necessário criá-los?

•Uma Intent é uma chamada ao S.O que qualquer aplicação pode responder.

•Útil também para fazer com que aplicações em processos diferentes se comuniquem.

•Integração entre aplicações.

Porque criar filtros?

Page 61: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Vamos ver alguns exemplos.

Exemplos

Page 62: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

•Crie uma nova aplicação que fará uma chamada a aplicação Controle de combustível via intent filter.

•Faça uma chamada a aplicação Controle de combustível e capture o melhor combustível a ser utilzado e exiba como resultado na sua aplicação.

Exercícios

Page 63: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Referências Bibliográficas

• Google Android- Autor: Lecheta, Ricardo R.- Editora: Novatec

• Desenvolvimento de Aplicações Android - Autor: Mednieks, Zigurd; Meike, Blake;

- Editora: Novatec • Android para desenvolvedores

- Autor: Pereira, Lucio Camilo Oliva; - Editora: Brasport

Page 64: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Links

• http://developer.android.com

• http://forum.portalandroid.org/

• http://www.androidbrasil.com/

Page 65: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Perguntas

?

Page 66: Google Android Diego Souza diegotsouza83@hotmail.com Renato França ragpf@hotmail.com.

Google AndroidDiego Souza

Muito Obrigado...

• Diego [email protected]

• Renato Franç[email protected]