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
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
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
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
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
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
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
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
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