SlideShare a Scribd company logo
1 of 75
Download to read offline
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 pesquisa
Em 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://www.blackberrycool.com/2010/02/23/gartner-release-breakdown-of-m
obile-os-market-share/
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 Cream
Sandwich
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 Cream
Sandwich
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
ós
scobrirmos
o
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

More Related Content

What's hot

APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
Walanem Figueiredo
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
Jorge Cardoso
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
Natanael Fonseca
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
KMILT
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Tchelinux
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google Android
Salvador Torres
 

What's hot (20)

APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Trabalho android
Trabalho androidTrabalho android
Trabalho android
 
Android
Android Android
Android
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Juventude conectada pspb
Juventude conectada pspbJuventude conectada pspb
Juventude conectada pspb
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Mobile Linux com Google Android
Mobile Linux com Google AndroidMobile Linux com Google Android
Mobile Linux com Google Android
 
Android
AndroidAndroid
Android
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
 
Arquitetura da Plataforma Android
Arquitetura da Plataforma AndroidArquitetura da Plataforma Android
Arquitetura da Plataforma Android
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
 
Google android pdf
Google android pdfGoogle android pdf
Google android pdf
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google Android
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4
 
Android
AndroidAndroid
Android
 

Similar to Descomplicando o Android

Similar to Descomplicando o Android (20)

Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
 
Android: Uma nova maneira de pensar
Android: Uma nova maneira de pensarAndroid: Uma nova maneira de pensar
Android: Uma nova maneira de pensar
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google Android
 
Introducao android
Introducao androidIntroducao android
Introducao android
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-Platform
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App
 
Web ou App?
Web ou App?Web ou App?
Web ou App?
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos Móveis
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012
 
Introdução ao android
Introdução ao androidIntrodução ao android
Introdução ao android
 
Apresentação Google Android
Apresentação Google AndroidApresentação Google Android
Apresentação Google Android
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Palestra sobre android
Palestra sobre androidPalestra sobre android
Palestra sobre android
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
 
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
 
Janela Livre
Janela LivreJanela Livre
Janela Livre
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec Cafelândia
 

More from Heider Lopes

Arduíno muito prazer
Arduíno muito prazerArduíno muito prazer
Arduíno muito prazer
Heider Lopes
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
Heider Lopes
 
Montando ambiente de desenvolvimento android em um tablet
Montando ambiente de desenvolvimento android em um tabletMontando ambiente de desenvolvimento android em um tablet
Montando ambiente de desenvolvimento android em um tablet
Heider Lopes
 
Conversando com o android
Conversando com o androidConversando com o android
Conversando com o android
Heider Lopes
 

More from Heider Lopes (12)

Apicon2018.pptx
Apicon2018.pptxApicon2018.pptx
Apicon2018.pptx
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
Mobile
MobileMobile
Mobile
 
Tht na web
Tht na webTht na web
Tht na web
 
Android Wear: Expandindo as funcionalidades do seu Android
Android Wear: Expandindo as funcionalidades do seu AndroidAndroid Wear: Expandindo as funcionalidades do seu Android
Android Wear: Expandindo as funcionalidades do seu Android
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
5º ck o java e o android no iot
5º ck o java e o android no iot5º ck o java e o android no iot
5º ck o java e o android no iot
 
Arduíno muito prazer
Arduíno muito prazerArduíno muito prazer
Arduíno muito prazer
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Montando ambiente de desenvolvimento android em um tablet
Montando ambiente de desenvolvimento android em um tabletMontando ambiente de desenvolvimento android em um tablet
Montando ambiente de desenvolvimento android em um tablet
 
Conversando com o android
Conversando com o androidConversando com o android
Conversando com o android
 

Descomplicando o Android

  • 1. Descomplicando o Android Como e porque desenvolver aplicativos para Android.
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. Uma rápida pesquisa Em 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
  • 6. Um resultado da pesquisa
  • 7. Quais são as oportunidades ???
  • 9. Plataformas Móveis • Symbian • Java ME • IOS • Windows Mobile • Android • Entre outras
  • 10. 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)
  • 11. 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
  • 12. 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
  • 13. Mas por que Android?
  • 15. Android: além de tablets e smartphones
  • 18. Ainda não me convenceu...
  • 19. Vamos ver o Market Share? • Líder indiscutível de mercado • Mundial: 80% • China: 90% em 2012 • Europa: 70% • Brasil: 90%
  • 23. A Plataforma • Navegador Web Integrado • SQLite para armazenamento de dados • Áudio (MP3, AAC, AMR) • Vídeo (MPEG4, H.264)
  • 24. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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 Cream Sandwich Android 4.4 Kit Kat Android 4.1 JellyBeans Android 1.0
  • 32. 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
  • 33. O que mudou? • Donut (1.6) – Text-to-speech – Busca por voz – CDMA • Eclair (2.0) – Bluetooth – Múltiplas contas de e-mail – HTML5
  • 34. 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
  • 35. 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 Cream Sandwich
  • 36. 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
  • 38. 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
  • 39. Atualização de versão • Liberada normalmente pela fabricante do aparelho • É gratuita • O processo de upgrade de SO é fácil • Custom Roms – CyanogenMod
  • 40. 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)
  • 41. 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
  • 42. O ADT Bundle • Download disponível em: http:// developer.android.com/sdk/index.html • Baixa um zip contendo: – Android SDK – Eclipse
  • 45. 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)
  • 46. 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
  • 47. 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
  • 48.
  • 52. 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
  • 53. 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
  • 54.
  • 55.
  • 56. 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
  • 57. 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
  • 58. Acessando elementos • findViewById (R.id.nome_recurso) • Acesso através dos Ids da classe R • Usado para utilizar os recursos da aplicação
  • 59. 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
  • 60. 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
  • 61. 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.
  • 62. 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
  • 63. 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
  • 64. Acabei meu aplicativo e agora? Como publico no Google Play?
  • 65. 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
  • 66. Criando sua KeyStore • File/Export/Export Android Application • Nome do Projeto • Create New KeyStore • Preenche os dados referente a chave
  • 67. 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
  • 68. 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
  • 70. 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
  • 72. O lado escuro do Android
  • 74. Nunca esqueçam!!! • http://developer.android.com • http://www.heidertreinamentos.com.br/blog
  • 75. 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