Descomplicando o Android

75
Descomplicando o Android Como e porque desenvolver aplicativos para Android.

description

Quer conhecer mais sobre o Android da Goolge? Confira nesses slides: - O que é Android? - Quais as vantagens de desenvolver para android - A plataforma - A arquitetura - O mercado - Ambiente de desenvolvimento - Minha Primeira App Android – Criando um exemplo - Publicando sua aplicação - Conceitos básicos

Transcript of Descomplicando o Android

Page 1: Descomplicando o Android

Descomplicando o Android

Como e porque desenvolver aplicativos para Android.

Page 2: Descomplicando o Android

Quem sou eu?• Formado em Sistemas de Informações - (FIAP)

• Pós-Graduando em Sistemas e Desenvolvimento Web

• Twitter: @HeiderLopes

• Blog: www.heidertreinamentos.com.br/blog

• Analista Desenvolvedor

Page 3: Descomplicando o Android

Agenda• Objetivos• O que é Android?• Quais as vantagens de desenvolver para android• A plataforma• A arquitetura• O mercado• Ambiente de desenvolvimento• Minha Primeira App Android – Criando um exemplo• Publicando sua aplicação• Conceitos básicos

Page 4: Descomplicando o Android

O mundo Mobile• Celulares deixaram de ser simples telefones

• Hardware cada vez mais poderoso

• Convergência para a mobilidade

• Usuários cada vez mais exigentes

Page 5: Descomplicando o Android

Uma rápida pesquisaEm qual dessas situações você

utiliza seu celular?Enquanto espera para ser atendido

No carro, de carona

No transporte público

Enquanto espera o início de um evento

(cinema, teatro, etc)

Enquanto trabalha

No banheiro

Enquanto assisto TV

Enquanto converso com os amigos

Page 6: Descomplicando o Android

Um resultado da pesquisa

Page 7: Descomplicando o Android

Quais são as oportunidades ???

Page 8: Descomplicando o Android

Oportunidades

M-Payment

M-Learning

M-Advertisement

M-HealthNFC

Page 9: Descomplicando o Android

Plataformas Móveis• Symbian• Java ME• IOS• Windows Mobile• Android• Entre outras

Page 10: Descomplicando o Android

O que é Android?• Sistema Operacional para dispositivos Mobile

• Baseado no Linux

• Fácil integração com aplicações nativas e serviços do Google

• Poderoso ambiente de desenvolvimento

• Google Play (Android Market)

Page 11: Descomplicando o Android

Breve Histórico• Android Inc fundada em 2003, em Palo Alto

• Aquisição da Android Inc pela Google em 205

• Android Beta SDK lançado em 2007

• Iphone anunciado no WWDC 2007

• Primeiro SDK para Iphone em Março de 2008

• Nokia adquire a Symbian Foundation em 2008

Page 12: Descomplicando o Android

A história continua• Primeiro device android em 2008 (HTC G1)

• Android se torna a plataforma mais vendida em 2011

• + de 1 milhão de aplicativos/jogos disponíveis no Google Play

• 1,5 milhões de ativações de aparelhos por dia

Page 13: Descomplicando o Android

Mas por que Android?

Page 14: Descomplicando o Android

Dispositivo para todos os bolsos

Page 15: Descomplicando o Android

Android: além de tablets e smartphones

Page 16: Descomplicando o Android

Programação em Multiplataforma

Page 17: Descomplicando o Android

Linguagens de Desenvolvimento

Page 18: Descomplicando o Android

Ainda não me convenceu...

Page 19: Descomplicando o Android

Vamos ver o Market Share?• Líder indiscutível de mercado

• Mundial: 80%

• China: 90% em 2012

• Europa: 70%

• Brasil: 90%

Page 21: Descomplicando o Android

Market Share

http://news.cnet.com/8301-13579_3-20006889-37.html

Page 22: Descomplicando o Android

Market Share

http://bits.rahilparikh.me/2012/08/18/android-forensics/

Page 23: Descomplicando o Android

A Plataforma• Navegador Web Integrado

• SQLite para armazenamento de dados

• Áudio (MP3, AAC, AMR)

• Vídeo (MPEG4, H.264)

Page 24: Descomplicando o Android

Mais sobre a Plataforma• Imagens (JPG, PNG, GIF)

• Flash

• Bluetooth, EDGE, 3G, Wifi (dependente do hardware)

• Câmera, bússola, acelerômetro (dependente do hardware)

• Sensores

Page 25: Descomplicando o Android

A Arquitetura

Page 26: Descomplicando o Android

Camada de Aplicação• Onde se localizam todos os aplicativos que são executados

sobre o sistema operacional, tais como, cliente de SMS e MMS, cliente de e-mail, navegador, mapas, calculadora entre outros.

• Aplicações escritas em JAVA

Page 27: Descomplicando o Android

Framework de Aplicação• 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údos que habilitam as aplicações acessar dados de outras aplicações

Page 28: Descomplicando o Android

Camada de Bibliotecas• Camada que possui as bibliotecas C/C++ que são utilizadas pelo

sistema, e também as bibliotecas de multimidia, visualização de camadas 2D e 3D, funções para navegadores web, funções de aceleradores de hardware, renderização 3D, funções para gráficos, fontes bitmaps, e funções de acesso a banco de dados

Page 29: Descomplicando o Android

Camada de Runtime• Camada que se instância a máquina Virtual Dalvik (criada para cada

aplicação Android). Essa máquina virtual é a melhor referente a desempenho, maior integração com a nova geração de hardware e projetada como executar vários processos paralelamente.

• Máquina virtual android / Toda aplicação roda dentro do seu próprio processo

• Executa arquivos .dex, bytecodes de java otimizados para o Android

Page 30: Descomplicando o Android

Camada de Kernel de Linux• Núcleo derivado do Kernel do Linux• Heranças do Linux

– Controle de processos– Gerenciamento de memórias– Threads– Protocolos de rede– Modelo de drivers– Segurança de arquivos

Page 31: Descomplicando o Android

Versões do Android

Android 1.5 Cupcake

Android 1.6 Donut

Android 2.0/2.1 Eclair

Android 2.2 Froyo

Android 2.3 GingerBread

Android 3.0 Honeycomb

Android 4.0 Ice CreamSandwich

Android 4.4

Kit Kat

Android 4.1 JellyBeans

Android 1.0

Page 32: Descomplicando o Android

O que mudou?• 1.1

– Letreiros de layout– Suporte para salvar anexos

• Cupcake (1.5)– Primeiro nome baseado em sobremesa

Android 1.5 Cupcake

Android 1.1

Page 33: Descomplicando o Android

O que mudou?• Donut (1.6)

– Text-to-speech– Busca por voz– CDMA

• Eclair (2.0)– Bluetooth– Múltiplas contas de e-mail– HTML5

Page 34: Descomplicando o Android

O que mudou?• Froyo (2.2)

– Wi-fi hotspot– Flash

• Gingerbread (2.3)– Api para NFC– Android market on-line

Android 1.6 Donut

Android 2.0/2.1 Eclair

Page 35: Descomplicando o Android

O que mudou?• HoneyComb (3.0)

– Versão otimizada para telas maiores– Tablets / Google TV

• Ice Scream Sandwich (4.0)– Unificação

Android 3.0 Honeycomb

Android 4.0 Ice CreamSandwich

Page 36: Descomplicando o Android

O que mudou?• JellyBeans (4.1, 4.2 e 4.3)

– Múltiplos usuários– Widget na lock screen

• Kit Kat (4.4)– Otimização de uso de memória– “OK”Google (Comando de voz)– Aplicativos em tela cheia– Solução nativa para impressão

Android 4.4

Kit Kat

Android 4.1 JellyBeans

Page 37: Descomplicando o Android

Ano de Lançamento

Page 38: Descomplicando o Android

Market Share

Version Codename API Distribution

2.2 Froyo 8 1.7%

2.3.x Gingerbread 10 26.3%

3.2 Honeycomb 13 0.1%

4.0.x Ice Cream Sandwich

15 19.8%

4.1.x Jelly Bean 16 37.3%

4.2.x 17 12.5%

4.3 18 2.3%

http://developer.android.com/about/dashboards/index.html

Page 39: Descomplicando o Android

Atualização de versão• Liberada normalmente pela fabricante do aparelho

• É gratuita

• O processo de upgrade de SO é fácil

• Custom Roms– CyanogenMod

Page 40: Descomplicando o Android

Ambiente de Desenvolvimento• JAVA SE Development Kit (JDK)

• Android SDK

• IDE– Eclipse

• Android Development Tools (ADT)– Netbeans

• Nbandroid– Android Studio

• Opcional – Native Development Kit (NDK)

Page 41: Descomplicando o Android

Ambiente de Desenvolvimento• IDE

• Emulador

• Ferramentas para Debug e Análise de Código

• Analisador de Memória e Performance

• Ferramenta para análise de hierarquia de Layouts

Page 42: Descomplicando o Android

O ADT Bundle• Download disponível em: http://

developer.android.com/sdk/index.html

• Baixa um zip contendo:– Android SDK– Eclipse

Page 43: Descomplicando o Android

Android SDK Manager

Page 44: Descomplicando o Android

AVD Manager

Page 45: Descomplicando o Android

Estrutura de um Projeto Android

• Src: – contém o código fonte da aplicação

• Gen:– Contém a classe R gerada automaticamente permitindo a aplicação

acessar recursos (imagens e arquivos) utilizando constantes dessa classe• Assets

– Contém arquivos opcionais ao projeto (exemplo fontes customizadas, músicas)

• Res– Contém os recursos da aplicação (layouts, imagens, arquivos de

internacionalização)• Bin

– Contém o aplicativo (uma vez já compilado)

Page 46: Descomplicando o Android

Estrutura de um Projeto Android

• Drawable– Pasta com imagens da aplicação

• Layout– Os arquivos XML para construir a aplicação

• Values– XML utilizado para internacionalização da aplicação, estilos e

outras configurações

Page 47: Descomplicando o Android

Estrutura do Projeto• Quando compilamos o projeto os resultados vão para a pasta Bin

• Bin/classes: contém as classes Java compiladas

• Bin/classes.dex: contém o executável criado a partir das classes Java compiladas

• Bin/ suaapp.ap_: contém os recursos do seu aplicativo, como um arquivo ZIP.

• Bin/suaapp.apk: é aplicação real Android

Page 48: Descomplicando o Android
Page 49: Descomplicando o Android

Após descobrirmos tudo

isso

Page 50: Descomplicando o Android

Vamos começar nosso

primeiro programa

Android!!!

Page 51: Descomplicando o Android

Primeiros Conceitos

Page 52: Descomplicando o Android

Activity• Representado por uma tela da aplicação

• Possui interface com usuário– Views– Componentes Gráficos– Eventos– Entre outros

• Atividades são armazenadas em pilhas

Page 53: Descomplicando o Android

Ciclo de Vida da Aplicação• As activitys representam uma classe com elementos a serem

executados assim que forem chamados

• Essas activitys possuem um ciclo de vida desde sua criação até o término da aplicação

Page 54: Descomplicando o Android
Page 55: Descomplicando o Android
Page 56: Descomplicando o Android

Android Manifest• É a base de qualquer aplicação Android

• Contém as configurações necessárias para executar a aplicação– Activitys usadas– Activity Launcher– Permissões

• TODA activity deve ser declarada no Manifest

Page 57: Descomplicando o Android

A classe R• Criada automaticamente e nunca deve ser modificada

• Define constantes para acesso aos recursos do projeto

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

Page 58: Descomplicando o Android

Acessando elementos• findViewById (R.id.nome_recurso)

• Acesso através dos Ids da classe R

• Usado para utilizar os recursos da aplicação

Page 59: Descomplicando o Android

Services• Não possui interface com o usuário

– Rodam em background

• Possui ciclo de vida próprio

• Usado normalmente operações em segundo plano

• Outra componente do aplicativo pode iniciar o serviço e ele irá continuar sendo executado em segundo plano, mesmo se o usuário mudar para outra aplicação

Page 60: Descomplicando o Android

Broadcast Receiver• Utilizado para responder eventos externos

– Exemplo: atender uma ligação

• As aplicações também podem iniciar broadcasts para notificar outras aplicações

Page 61: Descomplicando o Android

Broadcast Receivers nativos do Android

• ACTION_BATTERY_LOW: Enviado quando a bateria do dispositivo está com carga baixa;

• ACTION_HEADSET_PLUG: Enviado quando um fone de ouvido é conectado ou desconectado do dispositivo.

• ACTION_SCREEN_ON: Enviado quando a tela do dispositivo é ligada.

• NEW_OUTGOING_CALL: Enviado quando uma nova chamada telefônica é efetuada.

• BOOT_COMPLETED: Enviado quando o sistema completa o boot inicial.

• ACTION_POWER_CONNECTED: Enviado quando o dispositivo é conectado à energia.

• ACTION_POWER_DISCONNECTED: Enviado quando o dispositivo é desconectado da energia.

• CAMERA_BUTTON: Enviado quando o botão da câmera é disparado.

Page 62: Descomplicando o Android

Content Provider• Usado para compartilhar dados entre aplicações

• Armazena e recupera dados em repositórios

• A plataforma oferece Content Providers para:– Áudio– Vídeo– Imagens

Page 63: Descomplicando o Android

LogCat• Fazem parte do pacote android.util.Log

• Podemos filtrar os Logs através do DDMS

Nível Sigla Cor

Debug D Azul

Verbose V Preto

Info I Verde

Warn W Laranja

Erro E Vermelho

Page 64: Descomplicando o Android

Acabei meu aplicativo e agora?

Como publico no Google Play?

Page 65: Descomplicando o Android

Publicando no Google Play• Registro no google Play $25

• Assinar o aplicativo com uma chave privada

• Realizar upload do apk e de imagens do aplicativo

Page 66: Descomplicando o Android

Criando sua KeyStore• File/Export/Export Android Application• Nome do Projeto• Create New KeyStore• Preenche os dados referente a chave

Page 67: Descomplicando o Android

Dicas• Teste bem a aplicação

– De preferência em mais de um aparelho

• Confira se o versionCode e versionName estão configurados

• Retire arquivos não utilizados

• Internacionalize sua aplicação– values – values-pt-BR – values-en-US

Page 68: Descomplicando o Android

O que acontece depois de enviado?

• No máximo em 3 horas seu aplicativo será liberado

• Possível visualizar estatísticas:– País– Aparelho– Idioma– Versão do Android– Operadora e versão do aplicativo

Page 69: Descomplicando o Android

Exemplo de Gráfico

Page 70: Descomplicando o Android

Atualizando seu aplicativo• Mude o VersionCode no Manifest.xml

• Assine a aplicação com seu keystore– NUNCA PERCA SEU KEYSTORE

• Envie o aplicativo

• Marque como versão atual

• Salve

Page 71: Descomplicando o Android

Atualização

Page 72: Descomplicando o Android

O lado escuro do Android

Page 73: Descomplicando o Android

Algumas desvantagens• Fragmentação

• Maior concorrência

Page 74: Descomplicando o Android

Nunca esqueçam!!!• http://developer.android.com• http://www.heidertreinamentos.com.br/blog

Page 75: Descomplicando o Android

Referências• LECHETA, Ricardo R. Google Android: aprenda a criar

aplicações para dispositivos móveis com Android SDK

• http://www.android.com.br

• http://www.globalcode.com.br/gratuitos/minicursos/minicurso-introducao-ao-android