desenvolvimento android
DESCRIPTION
Apresentação sobre desenvolvimento Android realizada por Diego Keller em Caxias do Sul - RS em evento promovido pela Flexxo.TRANSCRIPT
![Page 1: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/1.jpg)
Diego Keller [email protected] @diegokeller
![Page 2: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/2.jpg)
![Page 3: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/3.jpg)
Primeiros conceitos Desafios Ambiente de desenvolvimento Números sobre o Android Buscando Informação Android Ice Cream Sandwich
![Page 4: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/4.jpg)
![Page 5: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/5.jpg)
Android é uma pilha!!!
![Page 6: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/6.jpg)
“Pilha de softwares para dispositivos móveis que inclui um sistema operacional, middleware e aplicações chave.”
O Android SDK provê as ferramentas e API’s necessárias para o desenvolvimento de aplicações para a plataforma Android usando a linguagem de programação Java.
![Page 7: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/7.jpg)
![Page 8: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/8.jpg)
Java VM
Dalvik VM
Máquina virtual Java simplificada e otimizada para execução de aplicações em dispositivos com menor poder de
processamento e memória.
![Page 9: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/9.jpg)
Não é compatível com a especificação da JVM:
Não pode rodar aplicativos Java SE nem ME
Executa arquivos no formato próprio .DEX É Open Source: Apache License 2.0
![Page 10: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/10.jpg)
Cada aplicação é executada em uma instância da VM Dalvik.
Aplicações não compartilham dados (memória) nem código.
A sistema Android foi adaptado para poder gerenciar diversas instância da VM simultaneamente.
![Page 11: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/11.jpg)
Existe uma API para cada versão do Android
Novas versões são compatíveis com as anteriores.
Fonte: http://developer.android.com/guide/appendix/api-levels.html
![Page 12: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/12.jpg)
Ao criar sua aplicação, procure compilar usando a menor versão da API possível.
Novas versões irão rodar sua aplicação sem problemas. Mas é importante que você teste a aplicação no maior número de versões possível.
E usando a menor versão possível, você aumenta o número de dispositivos que podem executar sua aplicação.
![Page 13: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/13.jpg)
Aplicações Android são empacotadas no formato .APK.
O Android é um sistema Linux multiusuário, onde cada aplicação tem o seu usuário.
Permissões são definidas em todos os arquivos da aplicação, de modo que apenas o usuário da própria aplicação tenha acesso.
Cada aplicação roda em um processo, que é uma instância da Dalvik.
![Page 14: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/14.jpg)
![Page 15: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/15.jpg)
Performance
Menos memória e processador, velocidade de conexão.
Usabilidade
Telas menores
Diversidade
de dispositivos
Compatibilidade
Diferentes versões da API do Android.
![Page 16: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/16.jpg)
Escolha as estruturas de dados corretas dependendo do seu problema.
![Page 17: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/17.jpg)
Assegure-se de utilizar algoritmos eficientes e de rápida execução.
![Page 18: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/18.jpg)
Escolher as estruturas de dados corretas e os algoritmos mais eficientes são a melhor forma de otimizar o seu programa.
![Page 19: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/19.jpg)
Prefira os tipos primitivos int aos objetos Integer.
Prefira dois arrays de objetos ao invés de um único array de um objeto novo. Pessoa[] destinatarios
String[] nomes
String[] emails Evite criar objetos que você não precisa, ou
objetos de vida curta. Quanto menos objetos você criar, melhor.
![Page 20: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/20.jpg)
Não use getters e setter para acesso a campos dentro da própria classe. Acesse-os diretamente.
Em comparação ao acesso por getter, o acesso direto é 3 x mais rápido em VM’s sem o JIT e 7 x mais rápido em VM’s com JIT.
Sempre que possível use constantes
static final int intVal = 42; static final String strVal = "Hello, world!";
![Page 21: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/21.jpg)
Use a seguinte sintaxe do for for (Foo a : mArray) { // Código }
![Page 22: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/22.jpg)
Threads Estruturas de Dados
API de coleções
Webservices
![Page 23: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/23.jpg)
ANR - Application Not Responding
![Page 24: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/24.jpg)
Tamanho da tela (em polegadas) Densidade da tela (resolução), medida em
pixels por polegada.
![Page 25: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/25.jpg)
![Page 26: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/26.jpg)
JDK
JAVA_HOME nas variáveis de ambiente
Adicionar a pasta JAVA_HOME/bin no PATH
Eclipse Android SDK
Apenas descompactar em um diretório
Plugin ADT para Eclipse
Configurar o caminho do Android SDK (pasta extraída anteriormente)
![Page 27: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/27.jpg)
Eclipse
Editor visual no estilo arrastar e soltar para construção das telas.
Execução em modo debug
Editor visual para o arquivo Manifest
Compilação, empacotamento e assinatura de sua aplicação em um arquivo .APK
![Page 28: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/28.jpg)
![Page 29: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/29.jpg)
![Page 30: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/30.jpg)
Emulador
![Page 31: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/31.jpg)
Android SDK and AVD Manager
![Page 32: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/32.jpg)
Contém uma séria de informações sobre sua aplicação.
Nele são feitas definições como: Permissões que sua aplicação precisa (acesso a
internet, a lista de contatos, etc)
Hardware e software necessários (câmera, bluetooth, etc)
Versão mínima do Android necessária para rodar a aplicação
Outras bibliotecas que não as nativas da plataforma.
Versão de sua aplicação
![Page 33: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/33.jpg)
O Android Market irá ler todas as informações do arquivo Manifest de modo a apresentar para o usuário apenas as aplicações que o seu dispositivo pode suportar.
![Page 34: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/34.jpg)
Inscrição:
https://market.android.com/publish/signup
Taxa de US$25,00 com cartão de crédito via Google Checkout.
Taxa de 30% do valor de cada cópia vendida do Android Market
Esse dinheiro vai para as entidades de pagamento e outros, não fica para o Google.
![Page 35: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/35.jpg)
A plataforma fornece uma ferramenta para aplicar licenciamento em aplicações.
Disponível apenas para aplicações pagas. Não tem custo nenhum. Exige API nível 3 no mínimo.
![Page 36: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/36.jpg)
A partir da versão 8 da API, você pode escolher que sua aplicação seja instalada no SD Card ao invés da memória interna.
É uma decisão que o desenvolvedor deve fazer. Para permitir isso, defina o parâmetro “android:installLocation” no seu arquivo de manifesto.
A qualquer momento o usuário pode mover a aplicação para o SD Card ou para a memória interna.
![Page 37: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/37.jpg)
O arquivo .APK fica no SD Card, mas todos os dados do usuário, bancos de dados e arquivos .DEX otimizados ficam dentro da memória interna.
Ao ser instalada no SD Card a aplicação é criptografada usando uma chave aleatória. Apenas o dispositivo aonde a aplicação foi instalada pode descriptografar e acessar a aplicação.
![Page 38: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/38.jpg)
Quando o cartão de memória for desmontado, ou o dispositivo conectado ao PC para armazenamento de arquivos, todas as aplicações instaladas no SD Card são automaticamente finalizadas.
![Page 39: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/39.jpg)
![Page 40: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/40.jpg)
Fonte: http://www.businessinsider.com/chart-of-the-day-android-activations-2011-10
![Page 42: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/42.jpg)
Março de 2011 Fonte: http://blog.nielsen.com/nielsenwire/?p=27418
![Page 45: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/45.jpg)
Dispositivos que acessaram o Android Market num período de 14 dias terminando em 3 de Outubro de 2011. Fonte: http://developer.android.com/resources/dashboard/platform-versions.html
![Page 46: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/46.jpg)
Dispositivos que acessaram o Android Market num período de 7 dias terminando em 3 de Outubro de 2011. Fonte: http://developer.android.com/resources/dashboard/screens.html
![Page 47: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/47.jpg)
![Page 48: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/48.jpg)
O melhor local para buscar informações é a página do desenvolvedor:
http://developer.android.com/index.html
![Page 49: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/49.jpg)
Lá você entra:
SDK’s
Documentação
Referência da API
Download de exemplos
![Page 50: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/50.jpg)
![Page 51: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/51.jpg)
![Page 52: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/52.jpg)
Lançado dia 19/10/2011 Unificação do Android para tablets e
smartphones. Aparelhos lançados em 2011 com Android 2.3
de fábrica serão atualizados para o ICS.
![Page 53: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/53.jpg)
Unificação do Android para tablets e smartphones.
![Page 54: Desenvolvimento android](https://reader036.vdocuments.pub/reader036/viewer/2022062319/5579a131d8b42ac1148b47f1/html5/thumbnails/54.jpg)