Descomplicando o Android

Post on 21-Jun-2015

328 views 5 download

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

Descomplicando o Android

Como e porque desenvolver aplicativos para 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

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

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

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

Um resultado da pesquisa

Quais são as oportunidades ???

Oportunidades

M-Payment

M-Learning

M-Advertisement

M-HealthNFC

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

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)

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

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

Mas por que Android?

Dispositivo para todos os bolsos

Android: além de tablets e smartphones

Programação em Multiplataforma

Linguagens de Desenvolvimento

Ainda não me convenceu...

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

• Mundial: 80%

• China: 90% em 2012

• Europa: 70%

• Brasil: 90%

Market Share

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

Market Share

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

A Plataforma• Navegador Web Integrado

• SQLite para armazenamento de dados

• Áudio (MP3, AAC, AMR)

• Vídeo (MPEG4, H.264)

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

A Arquitetura

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

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

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

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

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

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

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

O que mudou?• Donut (1.6)

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

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

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

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

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

Ano de Lançamento

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

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

• É gratuita

• O processo de upgrade de SO é fácil

• Custom Roms– CyanogenMod

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)

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

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

developer.android.com/sdk/index.html

• Baixa um zip contendo:– Android SDK– Eclipse

Android SDK Manager

AVD Manager

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)

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

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

Após descobrirmos tudo

isso

Vamos começar nosso

primeiro programa

Android!!!

Primeiros Conceitos

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

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

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

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

Acessando elementos• findViewById (R.id.nome_recurso)

• Acesso através dos Ids da classe R

• Usado para utilizar os recursos da aplicação

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

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

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.

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

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

Acabei meu aplicativo e agora?

Como publico no Google Play?

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

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

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

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

Exemplo de Gráfico

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

Atualização

O lado escuro do Android

Algumas desvantagens• Fragmentação

• Maior concorrência

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

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