Diego Keller
keller.diego@gmail.com
@diegokeller
   Primeiros conceitos
   Desafios
   Ambiente de desenvolvimento
   Números sobre o Android
   Buscando Informação
   Android Ice Cream Sandwich
   Android é uma pilha!!!
 “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.
Dalvik VM



  Java VM



Máquina virtual Java simplificada e otimizada para execução
   de aplicações em dispositivos com menor poder de
                processamento e memória.
   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
   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.
 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
 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.
 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.
   Performance
     Menos memória e processador, velocidade de
     conexão.
   Usabilidade
     Telas menores
   Diversidade
     de dispositivos
   Compatibilidade
     Diferentes versões da API do Android.
   Escolha as estruturas de dados corretas
    dependendo do seu problema.
   Assegure-se de utilizar algoritmos eficientes
    e de rápida execução.
   Escolher as estruturas de dados corretas e os
    algoritmos mais eficientes são a melhor
    forma de otimizar o seu programa.
 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.
   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!";
 Use a seguinte sintaxe do for
for (Foo a : mArray) {
  // Código
}
   Threads
   Estruturas de Dados
     API de coleções
   Webservices
   ANR - Application
    Not Responding
   Tamanho da tela (em polegadas)
   Densidade da tela (resolução), medida em
    pixels por polegada.
   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)
   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
   Emulador
   Android SDK and AVD Manager
 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
   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.
   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.
 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.
 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.
 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.
   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.
Fonte: http://www.businessinsider.com/chart-of-the-day-android-activations-2011-10
Fonte: http://blog.nielsen.com/nielsenwire/?p=27418
Março de 2011
Fonte: http://blog.nielsen.com/nielsenwire/?p=27418
Agosto de 2011
Fonte: http://goo.gl/k4nm0
Fonte: http://blog.nielsen.com/nielsenwire/?p=27418
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
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
 O melhor local para buscar informações é a
  página do desenvolvedor:
 http://developer.android.com/index.html
   Lá você entra:
     SDK’s
     Documentação
     Referência da API
     Download de exemplos
 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.
   Unificação do Android para tablets e
    smartphones.
Desenvolvimento android

Desenvolvimento android

  • 1.
  • 3.
    Primeiros conceitos  Desafios  Ambiente de desenvolvimento  Números sobre o Android  Buscando Informação  Android Ice Cream Sandwich
  • 5.
    Android é uma pilha!!!
  • 6.
     “Pilha desoftwares 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.
  • 8.
    Dalvik VM Java VM Máquina virtual Java simplificada e otimizada para execução de aplicações em dispositivos com menor poder de processamento e memória.
  • 9.
    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
  • 10.
    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.
  • 11.
     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
  • 12.
     Ao criarsua 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.
  • 13.
     Aplicações Androidsã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.
  • 15.
    Performance  Menos memória e processador, velocidade de conexão.  Usabilidade  Telas menores  Diversidade  de dispositivos  Compatibilidade  Diferentes versões da API do Android.
  • 16.
    Escolha as estruturas de dados corretas dependendo do seu problema.
  • 17.
    Assegure-se de utilizar algoritmos eficientes e de rápida execução.
  • 18.
    Escolher as estruturas de dados corretas e os algoritmos mais eficientes são a melhor forma de otimizar o seu programa.
  • 19.
     Prefira ostipos 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.
  • 20.
    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!";
  • 21.
     Use aseguinte sintaxe do for for (Foo a : mArray) { // Código }
  • 22.
    Threads  Estruturas de Dados  API de coleções  Webservices
  • 23.
    ANR - Application Not Responding
  • 24.
    Tamanho da tela (em polegadas)  Densidade da tela (resolução), medida em pixels por polegada.
  • 26.
    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)
  • 27.
    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
  • 30.
    Emulador
  • 31.
    Android SDK and AVD Manager
  • 32.
     Contém umasé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
  • 33.
    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.
  • 34.
    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.
  • 35.
     A plataformafornece 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.
  • 36.
     A partirda 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.
  • 37.
     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.
  • 38.
    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.
  • 40.
  • 41.
  • 42.
    Março de 2011 Fonte:http://blog.nielsen.com/nielsenwire/?p=27418
  • 43.
    Agosto de 2011 Fonte:http://goo.gl/k4nm0
  • 44.
  • 45.
    Dispositivos que acessaramo 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
  • 46.
    Dispositivos que acessaramo Android Market num período de 7 dias terminando em 3 de Outubro de 2011. Fonte: http://developer.android.com/resources/dashboard/screens.html
  • 48.
     O melhorlocal para buscar informações é a página do desenvolvedor:  http://developer.android.com/index.html
  • 49.
    Lá você entra:  SDK’s  Documentação  Referência da API  Download de exemplos
  • 52.
     Lançado dia19/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.
  • 53.
    Unificação do Android para tablets e smartphones.