Download - Introdução a programação em Android
![Page 1: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/1.jpg)
Introdução à programação em
Android
Guilherme Callegaro Sesterheim
![Page 2: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/2.jpg)
GuilhermeSesterheim
• Consultor e desenvolvedor ABAP da ilegra
• Possui formação em Análise e
Desenvolvimento de Sistemas pela Unisinos
• Mestrando em Computação Aplicada na
Unisinos
• Experiência como desenvolvedor Java e na
plataforma Android
![Page 3: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/3.jpg)
Agenda
• Quem é a ilegra?
• Android e smartphones
• Fragmentação de versões Android
• Ambiente de desenvolvimento
• Testes de aplicativos
• Publicando aplicativos
• Desenvolvimento
![Page 4: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/4.jpg)
![Page 5: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/5.jpg)
![Page 6: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/6.jpg)
![Page 7: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/7.jpg)
![Page 8: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/8.jpg)
![Page 9: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/9.jpg)
O que é: – Sistema operacional móvel baseado em Linux
– Adquirido pela Google em 2005 e lançado em 2008
– Desenvolvimento de aplicações é baseado em Java / C++ / C / C# e
Python
– Curiosidade: possui 12 milhões de linhas de código, divididas entre
XML, C, Java e C++
Android
![Page 10: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/10.jpg)
O Android em 2006
– Sem touch-screen
– Com teclado físico
Android
![Page 11: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/11.jpg)
Android
![Page 12: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/12.jpg)
Android
- Em setembro de 2012 o Android Market possuía mais de 675 mil aplicativos
disponíveis (em maio eram 450 mil e em maio de 2011 eram 200 mil). Também em
setembro alcançaram a marca de 25 bilhões de downloads de aplicativos.
- Todo mês, mais de 20 mil novos aplicativos são enviados.
- (imagem) em Dezembro de 2011, Apple tinha quase 450 mil aplicativos, e Google
quase 350 mil
- A cada dia, 900 mil dispositivos Android são ativados. Espera-se que este
número chegue a 1,5 milhão e mantenha-se estável a partir de então em 2014
![Page 13: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/13.jpg)
Perspectivas para desenvolvedores
- O Market vende mais do que a App Store
desde março de 2011
- Desde janeiro de 2011, é permitida a
inclusão de pagamentos dentro de
aplicativos
- Projeção de lucro para desenvolvedores
independentes x empresas
Oportunidades de trabalho com Android:
– Sites de free-lancers
– Projetos open source
Empregos fixos: entre R$ 2000,00 para
desenvolvedores e R$ 8000,00 para
analistas
- Visibilidade
Android
Imagem desatualizada
![Page 14: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/14.jpg)
Tendências encontradas
– Vendas de aplicativos na China cresce exponencialmente,
tendendo a ultrapassar os EUA como maior comprador de apps*
– Grandes jogos baixam seus preços cada vez mais
– 91% das grandes companhias já têm aplicativos para pelo
menos uma plataforma, e estudam a criação de aplicativos para
todas
– Entrada do WP
* Chineses não consomem aplicativos Android
Android
![Page 15: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/15.jpg)
Android
![Page 16: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/16.jpg)
Smartphones
– Marcos:
Nov 2009 – Lançamento do Motorola Milestone
Jun 2010 – Lançamento do Samsung Galaxy S
Maio 2012 – Lançamento do Samsung Galaxy SIII
– Top Android phones (10/2012):
Motorola - Droid Razr HD (bateria)
Samsung - Galaxy SIII
Samsung - Galaxy Nexus (Galaxy X no Brasil)
LG Optimus G (ainda não disponível no Brasil)
HTC - One X+ (ainda não disponível no Brasil)
– Curiosidades:
• O lucro da HTC triplicou no primeiro trimestre de 2011 em função da
demanda por Androids, mas já apresenta forte queda
• A Motorola estudava desenvolvimento de um mobile OS próprio
• Nokia mantem prejuizos com o Windows Phone
• Microsoft lucra mais com Android do que com WP
Android
![Page 17: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/17.jpg)
Smartphones de baixo custo
- Samsung Galaxy 5 – 2.1 (R$ 300,00)
- Sony Ericsson Xperia X10 – 2.1 (R$ 300,00)
Android
![Page 18: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/18.jpg)
Problemas do Market • Aplicativos maliciosos – roubo de
informações
• Em março de 2011 foram descobertos e
removidos 52 aplicativos virais do
Android Market. Eles representavam
diversas ameaças aos usuários,
responsáveis pelos mais de 50 mil
downloads (escondidos em
calculadoras, jogos de xadrez, entre
outros)
• Identificado um bug ao acessar páginas
HTML que resetava o aparelho para o
padrão de fábrica
• Iniciada a utilização do Google remote
kill, implementado desde 2008
Android
![Page 19: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/19.jpg)
![Page 20: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/20.jpg)
Fragmentação de versões do Android
Fragmentação de versões operando em smartphones (04/2012)
![Page 21: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/21.jpg)
Tentativa de diminuição da fragmentação
Ainda não é possível medir a diminuição da fragmentação ocorrida
com o lançamento do 4.0 – ICS, que é compatível com smarthpones e
tablets
Foi feito um acordo entre fabricantes e Google para que todos os
novos modelos de smartphone sejam atualizados por pelo menos 18
meses, mas até o momento as fabricantes não o cumprem
Fragmentação de versões do Android
![Page 22: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/22.jpg)
![Page 23: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/23.jpg)
Baixando o SDK
Ambiente de desenvolvimento
![Page 24: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/24.jpg)
Escolhendo os SDK que serão instalados
Ambiente de desenvolvimento
![Page 25: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/25.jpg)
Montando o ambiente de desenvolvimento
1 – Baixar o eclipse em eclipse.org/downloads
2 – Instalar o ADT (Android development tools) plugin
Ambiente de desenvolvimento
![Page 26: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/26.jpg)
Ambiente de desenvolvimento
![Page 27: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/27.jpg)
Ambiente de desenvolvimento
![Page 28: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/28.jpg)
Ambiente de desenvolvimento
Montando o ambiente de desenvolvimento – alternativa
1 – Baixar o plugin diretamente no site do Android
2 – Repetir o procedimento mostrado anteriormente, porém escolhendo o
arquivo localmente
Após a instalação, é necessário indicar qual SDK deverá ser utilizado através
do menu Window > Preferences > Android
IMPORTANTE: é necessário verificar periodicamente as atualizações, através do menu
Help > Check for Updates, ou através do site do Android
![Page 29: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/29.jpg)
Ambiente de desenvolvimento
Motodev studio –Gratuito
–Não há restrição a aparelhos da Motorola
–Principais diferenciais:
* App validator (permissões, e uso de
código)
* Code snippets (adicionar facilmente
códigos já construídos)
* Application signing automático
* Suporta o Android NDK (desenvolvimento
em C e C++)
* Screen capture de dispositivos emulados e físicos*
* Tradutor de aplicativos nativo
![Page 30: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/30.jpg)
Construtor de interface
Ambiente de desenvolvimento
![Page 31: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/31.jpg)
![Page 32: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/32.jpg)
Testes de Aplicativos
Criando dispositivos de teste
![Page 33: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/33.jpg)
Emulador
Testes de Aplicativos
![Page 34: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/34.jpg)
ADB – Android Debug Bridge
- Localizado em <sdk-path>/platform-tools/
- Pode receber instruções via linha de comando
Testes de Aplicativos
![Page 35: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/35.jpg)
![Page 36: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/36.jpg)
Publicando Aplicativos
Criando conta no Android Market
![Page 37: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/37.jpg)
- Inserindo dados
comerciais na conta do
Google Checkout para
poder vender aplicativos
- É permitido o cadastro de
pessoas físicas
Publicando Aplicativos
![Page 38: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/38.jpg)
Atrelando conta do AdSense ao Google Checkout
Publicando Aplicativos
![Page 39: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/39.jpg)
Manage board
Publicando Aplicativos
![Page 40: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/40.jpg)
Passos para publicar um aplicativo:
1. Enviando o .apk
2. Enviar recursos para divulgação
3. Descrever detalhes sobre a aplicação
4. Opções de publicação
5. Informações para contato a ser divulgada aos usuários
6. Autorização ao Google
Publicando Aplicativos
![Page 41: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/41.jpg)
Enviar recursos para divulgação
Publicando Aplicativos
![Page 42: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/42.jpg)
Descrever detalhes sobre a aplicação
Publicando Aplicativos
![Page 43: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/43.jpg)
Descrever detalhes sobre a aplicação / Opções de
publicação
Publicando Aplicativos
![Page 44: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/44.jpg)
– Informações para contato a ser divulgada aos usuários
– Autorização ao Google
Publicando Aplicativos
![Page 45: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/45.jpg)
![Page 46: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/46.jpg)
Desenvolvimento
Fundamentals
- Os aplicativos de Android são instalados através de um .apk
- A partir do momento em que é instalado, cada aplicativo do Android
tem sua sandbox (baseia-se no conceito de multi-usuários do Linux)
- Cada processo recebe suas permissões específicas
- Cada processo executa dentro de uma VM
- Cada aplicação consegue acessar apenas o que foi determinado
através do manifest
![Page 47: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/47.jpg)
Manifest
Desenvolvimento
![Page 48: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/48.jpg)
Desenvolvimento
- ADB – Android Debug Bridge
- AVD – Android Virtual Device
- Logcat
- Captura de telas
- Debug.startMethodTracing(String fileName)
Debugging
![Page 49: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/49.jpg)
Desenvolvimento
Activities
- Uma Activity é um componente da aplicação (uma classe), que proverá uma
tela com a qual o usuário poderá interagir
- Geralmente o desenho ocupa a tela inteira, mas ela pode ser diminuída para
ser feito o efeito de flutuação sobre outras telas já existentes
- Implementando métodos obrigatórios:
onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()
- Intents:
ACTION_VIEW
ACTION_DIAL
ACTION_EDIT
ACTION_MAIN
![Page 50: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/50.jpg)
- Definindo a tela que será exibida:
setContentView( String
codigoArquivoXML)
- Iniciando sub atividade:
startActivity(Intent nova)
- Capturando resultado de uma
atividade: startActivityForResult() /
onActivityResult()
- Finalizando uma atividade: finish() /
finishActivity()
- Guardando o estado de uma Activity –
onSaveInstanceState() /
onRestoreInstanceState()
- Outros eventos importantes:
onCreateOptionsMenu, onKeyDown,
onMenuItemSelected, onTouchEvent,
onWindowFocusChanged
Desenvolvimento
![Page 51: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/51.jpg)
- São atividades que operam em background por um longo tempo
e não provêem interface para o usuário
- É necessário declarar os Services, que a aplicação poderá
disparar, no manifest
- Pode ser executado, desacoplado, e capturado futuramente
- onCreate(), onStartCommand(), onBind(), onUnbind(),
onRebind(), onDestroy()
Services
Desenvolvimento
![Page 52: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/52.jpg)
Desenvolvimento
![Page 53: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/53.jpg)
UI – User Interface
Desenvolvimento
![Page 54: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/54.jpg)
- Shared Preferences – dados de usuário / internos do smartphone
- Internal storage
MODE_PRIVATE
MODE_APPEND
MODE_WORLD_READABLE
MODE_WORLD_WRITABLE
- External storage
Environment.getExternalStorageState()
getExternalStoragePublicDirectory() –
images/music/ringtones/videos
- SQLite databases
- Network connection
Data Storage
Desenvolvimento
![Page 55: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/55.jpg)
- Nenhuma aplicação tem permissão para interferir em outros processos,
outras aplicações, ou informações confidenciais do sistema
- Application signing
- Permissões
Existem 115 diferentes tipos de permissões
Security
Desenvolvimento
![Page 56: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/56.jpg)
- Manifest
- AppWidgetProviderInfo
- onUpdate() onDeleted(), onEnabled(), onDisabled(), onReceive()
Widgets
Desenvolvimento
![Page 57: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/57.jpg)
![Page 58: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/58.jpg)
![Page 59: Introdução a programação em Android](https://reader033.vdocuments.com.br/reader033/viewer/2022052505/556458f9d8b42a90338b45cf/html5/thumbnails/59.jpg)
Obrigado! Guilherme Sesterheim
@guisester
facebook.com/guilherme.sesterheim
Perguntas