Upload
guisester
View
3.398
Download
0
Embed Size (px)
DESCRIPTION
Apresentação montada para
Citation preview
Introdução à programação em
Android
Guilherme Callegaro Sesterheim
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
Agenda
• Quem é a ilegra?
• Android e smartphones
• Fragmentação de versões Android
• Ambiente de desenvolvimento
• Testes de aplicativos
• Publicando aplicativos
• Desenvolvimento
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
Curiosidade
O Android em 2006
– Sem touch-screen
– Com teclado físico
Android
Android
- Hoje o Android Market possui mais de 450 mil aplicativos disponíveis (em maio de
2011 eram 200 mil)
- Todo mês, em média 20 mil novos aplicativos são enviados
- (imagem) em Dezembro de 2011, Apple tinha quase 450 mil aplicativos, e Google
quase 350 mil
Perspectivas para desenvolvedores
- O Market vende mais do que a App Store
(maior loja de aplicativos existente) 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
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
– Líderes das app stores de hoje não são os de amanhã
- Entrada do WP
* Chineses não consomem aplicativos Android
Android
Android
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 (04/2012):
Motorola - Droid Razr Maxx
Samsung - Galaxy Nexus (Galaxy X no Brasil)
HTC - One S
Samsung - Galaxy SII
– Curiosidades:
O lucro da HTC triplicou no primeiro trimestre de 2011 em função
da demanda por Androids
A Motorola estudava o desenvolvimento de um mobile OS próprio
Entrada tímida do WP no mercado não segura prejuízos da Nokia
Android
Smartphones de baixo custo
- Samsung Galaxy 5 – 2.1 (R$ 300,00)
- Sony Ericsson Xperia X10 – 2.1 (R$ 300,00)
Android
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 (calculadora, xadrez, entre
outros)
- Iniciada a utilização do Google remote kill,
implementado desde 2008
Android
Fragmentação de versões do Android
Fragmentação de versões operando em smartphones (01/2012)
Tentativa de diminuição da fragmentação
Há a expectativa de diminuição da fragmentação de Androids
operando em smartphones e tablets através da liberação do 4.0 – Ice
Cream Sandwich, que será compatível com ambas as plataformas
Há uma negociação entre fabricantes e Google para que todos os
novos modelos de smartphone sejam atualizados por pelo menos 18
meses
Uma mudança recente da Google sobre o Market, fez
com que a partir de então os aplicativos que não são
compatíveis com o aparelho que está fazendo a
busca, não sejam mostrados
Fragmentação de versões do Android
Baixando o SDK
Ambiente de desenvolvimento
Escolhendo os SDK que serão instalados
Ambiente de desenvolvimento
Montando o ambiente de desenvolvimento
1 – Baixar o eclipse em eclipse.org/downloads
2 – Instalar o ADT (Android development tools) plugin
Ambiente de desenvolvimento
Ambiente de desenvolvimento
Ambiente de desenvolvimento
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
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
Construtor de interface
Ambiente de desenvolvimento
Testes de Aplicativos
Criando dispositivos de teste
Emulador
Testes de Aplicativos
ADB – Android Debug Bridge
- O que é
- Localizado em <sdk-path>/platform-tools/
- Pode receber instruções via linha de comando
Testes de Aplicativos
Publicando Aplicativos
Criando conta no Android Market
- Inserindo dados
comerciais na conta do
Google Checkout para
poder vender aplicativos
- É permitido o cadastro de
pessoas físicas
Publicando Aplicativos
Atrelando conta do AdSense ao Google Checkout
Publicando Aplicativos
Manage board
Publicando Aplicativos
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
Enviar recursos para divulgação
Publicando Aplicativos
Descrever detalhes sobre a aplicação
Publicando Aplicativos
Descrever detalhes sobre a aplicação / Opções de
publicação
Publicando Aplicativos
– Informações para contato a ser divulgada aos usuários
– Autorização ao Google
Publicando Aplicativos
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
Manifest
Desenvolvimento
Desenvolvimento
- ADB – Android Debug Bridge
- AVD – Android Virtual Device
- Logcat
- Captura de telas
-Debug.startMethodTracing(String fileName)
Debugging
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
- 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
- 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
Desenvolvimento
UI – User Interface ViewGroup, View
addView(View)
Listeners
Desenvolvimento
- 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
- 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
- Manifest
- AppWidgetProviderInfo
- onUpdate() onDeleted(), onEnabled(), onDisabled(), onReceive()
Widgets
Desenvolvimento
Perg
untas
?