Desenvolvendo aplicações em Java para o Google Android




Desenvolvendo aplicações em 
        Java para o 
      Google ...
Desenvolvendo aplicações em Java para o Google Android




                        O Palestrante




                     ...
Desenvolvendo aplicações em Java para o Google Android



            Android, como começou?




                         ...
Desenvolvendo aplicações em Java para o Google Android


            Android, como começou?
●   Julho de 2005, Google adqu...
Desenvolvendo aplicações em Java para o Google Android



           Porque dispositivos móveis?
●   O crescimento de disp...
Desenvolvendo aplicações em Java para o Google Android


                Android, como apareceu?
●    Dia 5 de novembro de...
Desenvolvendo aplicações em Java para o Google Android


                     Depois do anuncio...
●   Dia 12 de Novembro ...
Desenvolvendo aplicações em Java para o Google Android


                           ?Android?

●   Um sistema operacional?...
Desenvolvendo aplicações em Java para o Google Android


                            ?Android?
●   Um SDK?
     –     Tem ...
Desenvolvendo aplicações em Java para o Google Android


                               ?Android?
●    Tem uma linguagem d...
Desenvolvendo aplicações em Java para o Google Android



                           ?Android?

                      É tu...
Desenvolvendo aplicações em Java para o Google Android



                             Licenças
●   “The platform also inc...
Desenvolvendo aplicações em Java para o Google Android


                           Licenças
✔   Licenças de Software Livr...
Desenvolvendo aplicações em Java para o Google Android




                      Tchelinux
Desenvolvendo aplicações em Java para o Google Android



      Porque licença Apache (ASL)?
●   We took a close look earl...
Desenvolvendo aplicações em Java para o Google Android



               Então, é Open Source!

●   Apache 2.0 
●   GPL v2...
Desenvolvendo aplicações em Java para o Google Android


                               Aberto
●   Em três pontos de vista...
Desenvolvendo aplicações em Java para o Google Android



                        E o Java ME?




                       ...
Desenvolvendo aplicações em Java para o Google Android


                             Java ME
●   Subset do JSE, utilizada...
Desenvolvendo aplicações em Java para o Google Android

              Android API vs Java API
                       Pacot...
Desenvolvendo aplicações em Java para o Google Android

                Android API vs Java API
                         P...
Desenvolvendo aplicações em Java para o Google Android

               Android API vs Java API
                        Pac...
Desenvolvendo aplicações em Java para o Google Android

               Android API vs Java API
                        Pac...
Desenvolvendo aplicações em Java para o Google Android

              Android API vs Java API
                     Pacotes...
Desenvolvendo aplicações em Java para o Google Android

                  Android API vs Java API
                        ...
Desenvolvendo aplicações em Java para o Google Android

                            Android API
                  Pacotes ...
Desenvolvendo aplicações em Java para o Google Android




  Mas... Porque o Google 
     escolheu Java?




             ...
Desenvolvendo aplicações em Java para o Google Android


                    Software Livre e Java
✔    Freshmeat ranking ...
Desenvolvendo aplicações em Java para o Google Android

                     Adoção do Java
     TIOBE Programming Communi...
Desenvolvendo aplicações em Java para o Google Android

                     Adoção do Java
 TIOBE Programming Community I...
Desenvolvendo aplicações em Java para o Google Android



                           Arquitetura




                     ...
Desenvolvendo aplicações em Java para o Google Android


                 Android ­ Arquitetura




                      ...
Desenvolvendo aplicações em Java para o Google Android


                             Linux Kernel


●     Versão do kerne...
Desenvolvendo aplicações em Java para o Google Android


                 Android ­ Arquitetura




                      ...
Desenvolvendo aplicações em Java para o Google Android

                               Bibliotecas



●     Andróid inclui...
Desenvolvendo aplicações em Java para o Google Android


                             Runtime



●   Aplicação Android:
  ...
Desenvolvendo aplicações em Java para o Google Android


                 Android ­ Arquitetura




                      ...
Desenvolvendo aplicações em Java para o Google Android



                           Framework


●   View
●   Content Prov...
Desenvolvendo aplicações em Java para o Google Android


                 Android ­ Arquitetura




                      ...
Desenvolvendo aplicações em Java para o Google Android


                            Aplicações


●   Cliente de email    ...
Desenvolvendo aplicações em Java para o Google Android



                                S D K




                      ...
Desenvolvendo aplicações em Java para o Google Android



                           Android SDK
●   O Android SDK é forma...
Desenvolvendo aplicações em Java para o Google Android


                          Android SDK

●   É suportado em platafo...
Desenvolvendo aplicações em Java para o Google Android


                          Android SDK
●   Depende de:
      –    ...
Desenvolvendo aplicações em Java para o Google Android


                          Android SDK
●   Ferramentas de linha de...
Desenvolvendo aplicações em Java para o Google Android




                                 Tchelinux
12/11/08            ...
Desenvolvendo aplicações em Java para o Google Android


                          Android SDK

●   Para os fans do NetBea...
Desenvolvendo aplicações em Java para o Google Android



                         Android SDK




                       ...
Desenvolvendo aplicações em Java para o Google Android

                Suas Caracteristicas...
 ●   Application Framewok:...
Desenvolvendo aplicações em Java para o Google Android

                  Suas Caracteristicas...
 ●   Dependente do hardw...
Desenvolvendo aplicações em Java para o Google Android



                            Emulador
●   Emula o hardware (QEMU)...
Desenvolvendo aplicações em Java para o Google Android



                    Instalando o SDK

●   http://code.google.com...
Desenvolvendo aplicações em Java para o Google Android


                         Aplicação Android
●     Existem 4 tipos ...
Desenvolvendo aplicações em Java para o Google Android



                          Hello World!


●   http://code.google....
Desenvolvendo aplicações em Java para o Google Android

                          Ferramenta
●   DroidDraw – editor de tel...
Desenvolvendo aplicações em Java para o Google Android



            Hello World! Melhorado...


●   http://code.google.c...
Desenvolvendo aplicações em Java para o Google Android




                     Em um passado
                        não ...
Desenvolvendo aplicações em Java para o Google Android



                 Macintosh X IBM­PC




●   Plataforma Fechada  ...
Desenvolvendo aplicações em Java para o Google Android



                        Mac brasileiro
●   Mac512 Unitron – prim...
Desenvolvendo aplicações em Java para o Google Android


                    IPhone X Android




●   Plataforma Fechada  ...
Desenvolvendo aplicações em Java para o Google Android



                   SDK Concorrência
●   É lançado e disponibiliz...
Desenvolvendo aplicações em Java para o Google Android



                  Android não é Java
●   Não executa bytecodes
 ...
Desenvolvendo aplicações em Java para o Google Android



           JCP ­ Quem “manda” no Java
●   JCP – Java Community P...
Desenvolvendo aplicações em Java para o Google Android


                          Membros JCP
    –   Apache Software Fou...
Desenvolvendo aplicações em Java para o Google Android



                                Dalvik
●   Interpreter­only, reg...
Desenvolvendo aplicações em Java para o Google Android



                    Dalvik – Jar x Dex




                     ...
Desenvolvendo aplicações em Java para o Google Android


JVM – O segredo do desempenho
                         J I T 
   ...
Desenvolvendo aplicações em Java para o Google Android



JVM – O segredo do desempenho




                        Tcheli...
Desenvolvendo aplicações em Java para o Google Android



                    Dalvik – sem JIT
●   Geralmente não precisa
...
Desenvolvendo aplicações em Java para o Google Android



                   Garbage Collector
●   Mais de uma referência ...
Desenvolvendo aplicações em Java para o Google Android



                   Garbage Collector
●   Se o objeto não possui ...
Desenvolvendo aplicações em Java para o Google Android


                   Garbage Collector




                        ...
Desenvolvendo aplicações em Java para o Google Android



                            GC Dalvik
●   Separate process, sepa...
Desenvolvendo aplicações em Java para o Google Android




                          Obrigado !!!




                    ...
Desenvolvendo aplicações em Java para o Google Android



Bibliografia
✔ http://www.fatecjp.com.br/posgraduacao/posgraduac...
Próximos SlideShares
Carregando em…5
×

Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fernandes

13.629 visualizações

Publicada em

Publicada em: Tecnologia, Educação
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
13.629
No SlideShare
0
A partir de incorporações
0
Número de incorporações
445
Ações
Compartilhamentos
0
Downloads
327
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fernandes

  1. 1. Desenvolvendo aplicações em Java para o Google Android Desenvolvendo aplicações em  Java para o  Google Android Ranieri de Souza Fernandes Tchelinux
  2. 2. Desenvolvendo aplicações em Java para o Google Android O Palestrante ranieri@dev.java.net Tchelinux 12/11/08 2
  3. 3. Desenvolvendo aplicações em Java para o Google Android Android, como começou? Tchelinux 12/11/08 3
  4. 4. Desenvolvendo aplicações em Java para o Google Android Android, como começou? ● Julho de 2005, Google adquire a Android Inc,  com sede em Palo Alto, CA. ● Objetivos – Desenvolver um OS para dispositivos móveis  baseado em Linux – Terá como premissa proporcionar uma estrutura  flexível e atualizável ● Começam os rumores que ao Google planeja  entrar no mercado de telefonia móvel... Tchelinux 12/11/08 4
  5. 5. Desenvolvendo aplicações em Java para o Google Android Porque dispositivos móveis? ● O crescimento de dispositivos móveis, ligados a  rede é maior que o de PC's... ● Pessoas com o primeiro contato com a web via  celular... ● Todos terão um... Tchelinux 12/11/08 5
  6. 6. Desenvolvendo aplicações em Java para o Google Android Android, como apareceu? ● Dia 5 de novembro de 2007, a Open Handset  Alliance, foi anunciada. – Consorcio formado por empresas como, Google,  HTC, Intel, Motorola, Qualcomm, T­Mobile, Sprint  Nextel e NVIDIA (mais de 30 empresas) – Seu objetivo é desenvolver padrões abertos para os  dispositivos móveis – Anunciou seu primeiro produto o Android,  construído sobre o sistema operacional Linux Tchelinux 12/11/08 6
  7. 7. Desenvolvendo aplicações em Java para o Google Android Depois do anuncio... ● Dia 12 de Novembro de 2007 ­ primeira versão do SDK ● De Janeiro a Agosto de 2008 ­ Android Developer Challenge I ● Dia 18 Agosto de 2008 ­ Android 0.9 SDK beta released ● Dia 28 Agosto de 2008 ­ apresentação para o mercado ● Dia 23 Setembro de 2008 ­ Android 1.0 SDK Release 1  ● Dia 21 de Outubro de 2008 ­ Código fonte disponibilizado  ● Dia 22 de Outubro de 2008 ­ aparelho com Android 1.0 a venda (G1) ● Q4 2008 – Anúncio do Android Developer Challenge II Tchelinux 12/11/08 7
  8. 8. Desenvolvendo aplicações em Java para o Google Android ?Android? ● Um sistema operacional? ● Um middleware? ● Um framework? ● Um conjunto de aplicações? Tchelinux 12/11/08 8
  9. 9. Desenvolvendo aplicações em Java para o Google Android ?Android? ● Um SDK? – Tem projetos – Tem ferramentas de desenvolvimento – Tem um emulador – Tem um conjunto de bibliotecas Tchelinux 12/11/08 9
  10. 10. Desenvolvendo aplicações em Java para o Google Android ?Android? ● Tem uma linguagem de programação? – Java ● Tem uma máquina virtual? – Dalvik (Kernel GNU/Linux) Tchelinux 12/11/08 10
  11. 11. Desenvolvendo aplicações em Java para o Google Android ?Android? É tudo isto.... É uma Plataforma aberta  para dispositivos móveis!!! Tchelinux 12/11/08 11
  12. 12. Desenvolvendo aplicações em Java para o Google Android Licenças ● “The platform also includes a modified version  of the Linux Kernel, which is distributed under  the GNU's General Public License (GPL).” ● “The source code released today also includes  Google's Dalvik virtual machine and Java­based  middleware layer, which are distributed under  version 2 of the Apache Software License  (ASL).“ Tchelinux 12/11/08 12
  13. 13. Desenvolvendo aplicações em Java para o Google Android Licenças ✔ Licenças de Software Livre: • GPL (General Public License) • BSD (Berkeley Software Distribution) • Mozilla • Apache • etc ... Tchelinux
  14. 14. Desenvolvendo aplicações em Java para o Google Android Tchelinux
  15. 15. Desenvolvendo aplicações em Java para o Google Android Porque licença Apache (ASL)? ● We took a close look earlier this year at why  Google chose the ASL for its Android userspace  components and pointed out that its  permissiveness will encourage commercial  adoption and allow handset makers to create  proprietary enhancements on top of the  technology. Tchelinux 12/11/08 15
  16. 16. Desenvolvendo aplicações em Java para o Google Android Então, é Open Source! ● Apache 2.0  ● GPL v2 (kernel) ● Repositório Git  ● Fontes: http://source.android.com Tchelinux 12/11/08 16
  17. 17. Desenvolvendo aplicações em Java para o Google Android Aberto ● Em três pontos de vista (três reis): – Industria: Licença Apache 2.0 – Usuários: Controle total – Desenvolvedor: não precisa pedir permissão Tchelinux 12/11/08 17
  18. 18. Desenvolvendo aplicações em Java para o Google Android E o Java ME? Tchelinux 12/11/08 18
  19. 19. Desenvolvendo aplicações em Java para o Google Android Java ME ● Subset do JSE, utilizada para ambientes  embedded ● É a tecnologia mais utilizada no mundo para  dispositivos embedded ● Pode rodar numa infinidade de dispositivos:  telefones celulares, PDA's, TV's, impressoras,  etc... ● Recursos nivelados por baixo ● Industria: problemas com licenças Tchelinux 12/11/08 19
  20. 20. Desenvolvendo aplicações em Java para o Google Android Android API vs Java API Pacotes Suportados ● java.io ­ File and stream I/O ● java.lang (except java.lang.management) ­ Language and  exception support ● java.math ­ Big numbers, rounding, precision ● java.net ­ Network I/O, URLs, sockets ● java.nio ­ File and channel I/O Tchelinux 12/11/08 20
  21. 21. Desenvolvendo aplicações em Java para o Google Android Android API vs Java API Pacotes Suportados ● java.security ­ Authorization, certificates, public keys ● java.sql ­ Database interfaces ● java.text ­ Formatting, natural language, collation ● java.util ­ Lists, maps, sets, arrays, collections – including java.util.concurrent Tchelinux 12/11/08 21
  22. 22. Desenvolvendo aplicações em Java para o Google Android Android API vs Java API Pacotes Suportados ● javax.crypto ­ Ciphers, public keys ● javax.net ­ Socket factories, SSL ● javax.security except: – javax.security.auth.kerberos – javax.security.auth.spi – javax.security.sasl ● javax.sound ­ Music and sound effects Tchelinux 12/11/08 22
  23. 23. Desenvolvendo aplicações em Java para o Google Android Android API vs Java API Pacotes Suportados ● javax.sql ­ More database interfaces – except javax.sql.rowset ● javax.xml.parsers ­ XML parsing ● org.w3c.dom ­ DOM nodes and elements – but not sub­packages ● org.xml.sax ­ Simple API for XML Tchelinux 12/11/08 23
  24. 24. Desenvolvendo aplicações em Java para o Google Android Android API vs Java API Pacotes não Suportados ● java.applet ● javax.accessibility ● java.awt ● javax.activity ● java.beans ● javax.imageio ● java.lang.management ● javax.management ● java.rmi ● javax.naming Tchelinux 12/11/08 24
  25. 25. Desenvolvendo aplicações em Java para o Google Android Android API vs Java API Pacotes não Suportados ● javax.print ● javax.xml  ● javax.rmi – except javax.xml.parsers ● javax.security.auth.kerberos ● org.ietf.* ● javax.security.auth.spi ● org.omg.* ● javax.security.sasl ● org.w3c.dom.*  ● javax.swing – sub­packages ● javax.transaction Tchelinux 12/11/08 25
  26. 26. Desenvolvendo aplicações em Java para o Google Android Android API Pacotes Suportados (não JSE) ● org.apache.commons.codec – Utilities for encoding and decoding ● org.apache.commons.httpclient – HTTP authentication, cookies, methods, and  protocolorg.bluez ­ Bluetooth support ● org.json ­ JavaScript Object Notation Tchelinux 12/11/08 26
  27. 27. Desenvolvendo aplicações em Java para o Google Android Mas... Porque o Google  escolheu Java? Tchelinux
  28. 28. Desenvolvendo aplicações em Java para o Google Android Software Livre e Java ✔ Freshmeat ranking de linguagens ✔ 1­ C  (9223 projetos)   ✔ 2­ Java  (6225 projetos)   ✔ 3­ C++  (5156 projects)   ✔ Portal java.net ✔ Projetos   ✔ Grupos de usuários ✔ Fóruns  Tchelinux 12/11/08 28
  29. 29. Desenvolvendo aplicações em Java para o Google Android Adoção do Java TIOBE Programming Community Index for October 2008 Tchelinux 12/11/08 29
  30. 30. Desenvolvendo aplicações em Java para o Google Android Adoção do Java TIOBE Programming Community Index for October 2008 Tchelinux 12/11/08 30
  31. 31. Desenvolvendo aplicações em Java para o Google Android Arquitetura Tchelinux 12/11/08 31
  32. 32. Desenvolvendo aplicações em Java para o Google Android Android ­ Arquitetura Tchelinux 12/11/08 32
  33. 33. Desenvolvendo aplicações em Java para o Google Android Linux Kernel ● Versão do kernel: 2.6     – Camada de  de abstração entre o hardware e o resto da  pilha de software – Segurança – Gerenciamento de memória – Gerenciamento de processos – Protocolos de rede – Modelo de drivers Tchelinux 12/11/08 33
  34. 34. Desenvolvendo aplicações em Java para o Google Android Android ­ Arquitetura Tchelinux 12/11/08 34
  35. 35. Desenvolvendo aplicações em Java para o Google Android Bibliotecas ● Andróid inclui um conjunto de bibliotecas C/C++ usadas por  diversos componentes do sistema: ●  System C Library ● SGL ●  Media Libraries ● 3D Libraries ● Surface Manager ● FreeType ● LibWebCore ● SQLite Tchelinux 12/11/08 35
  36. 36. Desenvolvendo aplicações em Java para o Google Android Runtime ● Aplicação Android: – É um processo Linux – Própria instância da máquina vitual Dalvik ● Executa arquivos .dex (ferramenta dx) Tchelinux 12/11/08 36
  37. 37. Desenvolvendo aplicações em Java para o Google Android Android ­ Arquitetura Tchelinux 12/11/08 37
  38. 38. Desenvolvendo aplicações em Java para o Google Android Framework ● View ● Content Providers ● Resource Manager ● Notification Manager ● Ativity Manager Tchelinux 12/11/08 38
  39. 39. Desenvolvendo aplicações em Java para o Google Android Android ­ Arquitetura Tchelinux 12/11/08 39
  40. 40. Desenvolvendo aplicações em Java para o Google Android Aplicações ● Cliente de email  ● Mapas ● Programa SMS   ● Navegador ● Calendário   ● Contatos ...      Tchelinux 12/11/08 40
  41. 41. Desenvolvendo aplicações em Java para o Google Android S D K Tchelinux 12/11/08 41
  42. 42. Desenvolvendo aplicações em Java para o Google Android Android SDK ● O Android SDK é formado por: – Ferramentas de linha de comando – Debugger – Libraries – Emulador (baseado no QEMU) – Documentação  – Códigos de exemplo – Tutoriais Tchelinux 12/11/08 42
  43. 43. Desenvolvendo aplicações em Java para o Google Android Android SDK ● É suportado em plataformas baseadas em x86 – Linux (qualquer distribuição) – Mac OS X 10.4.8 or later,  – Windows XP or Vista.  Tchelinux 12/11/08 43
  44. 44. Desenvolvendo aplicações em Java para o Google Android Android SDK ● Depende de: – JDK ­ Java Development Kit – Apache Ant – Python 2.2 or later.  ● IDE oficial – Eclipse 3.2 or later – Android Development Tools (ADT) Plugin ● Não é compatível com o Gnu Compiler for Java (gcj) Tchelinux 12/11/08 44
  45. 45. Desenvolvendo aplicações em Java para o Google Android Android SDK ● Ferramentas de linha de comando – emulator  – Android emulator – aapt – Android asset packaging tool – adb  – Android debug bridge – aidl  – Android IDL compiler Tchelinux 12/11/08 45
  46. 46. Desenvolvendo aplicações em Java para o Google Android Tchelinux 12/11/08 46
  47. 47. Desenvolvendo aplicações em Java para o Google Android Android SDK ● Para os fans do NetBeans IDE – Android plugin for NetBeans (unandroid) – http://kenai.com/projects/nbandroid/ Tchelinux 12/11/08 47
  48. 48. Desenvolvendo aplicações em Java para o Google Android Android SDK Tchelinux 12/11/08 48
  49. 49. Desenvolvendo aplicações em Java para o Google Android Suas Caracteristicas... ● Application Framewok: torna possível o reuso e a substituição  de componentes ● Máquina virtual Dalvik: Otimizada para rodar em dispositivos  móveis ● Navegador integrado: Baseado no WebKit, mesmo que o   Chrome e Safari ● Otimização gráfica:  – Bibliotecas 2D – Gráficos 3D (OpenGL 1.0) ● SQLite: Para persistência de dados ● Suporte para mídias: Aúdio, vídeo, formatos de imagens  (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG e GIF) Tchelinux 12/11/08 49
  50. 50. Desenvolvendo aplicações em Java para o Google Android Suas Caracteristicas... ● Dependente do hardware: – GPRS/GSM e EDGE – Bluetooth – Telefonia 3G – WiFi – Câmera – GPS – Bússola – Acelerômetro Tchelinux 12/11/08 50
  51. 51. Desenvolvendo aplicações em Java para o Google Android Emulador ● Emula o hardware (QEMU) ● Não possui suporte: – Fazer e receber chamadas – Captura de foto/áudio/vídeo – Nível da bateria – Bluetooth Tchelinux 12/11/08 51
  52. 52. Desenvolvendo aplicações em Java para o Google Android Instalando o SDK ● http://code.google.com/android/intro/installing.html Tchelinux 12/11/08 52
  53. 53. Desenvolvendo aplicações em Java para o Google Android Aplicação Android ● Existem 4 tipos básicos de elementos: – Activities – Intents e IntentFilters ( BroadcastReceivers) – Services – Content Providers ● Os componentes que compõe a aplicação estão no  AndroidManifest.xml. Tchelinux 12/11/08 53
  54. 54. Desenvolvendo aplicações em Java para o Google Android Hello World! ● http://code.google.com/android/intro/hello­android.html Tchelinux 12/11/08 54
  55. 55. Desenvolvendo aplicações em Java para o Google Android Ferramenta ● DroidDraw – editor de telas – http://www.droiddraw.org/ Tchelinux 12/11/08 55
  56. 56. Desenvolvendo aplicações em Java para o Google Android Hello World! Melhorado... ● http://code.google.com/android/intro/hello­android.html Tchelinux 12/11/08 56
  57. 57. Desenvolvendo aplicações em Java para o Google Android Em um passado não muito distante.... A concorrência.. Tchelinux 12/11/08 57
  58. 58. Desenvolvendo aplicações em Java para o Google Android Macintosh X IBM­PC ● Plataforma Fechada ● Plataforma Aberta ● Um fornecedor ● Varios fornecedores ● Considerado o melhor ● Dominou o mercado Tchelinux 12/11/08 58
  59. 59. Desenvolvendo aplicações em Java para o Google Android Mac brasileiro ● Mac512 Unitron – primeiro clone de um  Macintosh feito no mundo... ● Não podemos usá­lo... :( Tchelinux 12/11/08 59
  60. 60. Desenvolvendo aplicações em Java para o Google Android IPhone X Android ● Plataforma Fechada ● Plataforma Aberta ● Um fornecedor ● Varios fornecedores ● Considerado o melhor ● ??????? Tchelinux 12/11/08 60
  61. 61. Desenvolvendo aplicações em Java para o Google Android SDK Concorrência ● É lançado e disponibilizado o SDK do Android ● Logo depois... o SDK do Iphone ● Quem ganha? Nós.... Tchelinux 12/11/08 61
  62. 62. Desenvolvendo aplicações em Java para o Google Android Android não é Java ● Não executa bytecodes – Execura arqquivos dex ● Não possui JVM (????) – Dalvik não é uma JVM ● Não segue as especificações do JCP Tchelinux 12/11/08 62
  63. 63. Desenvolvendo aplicações em Java para o Google Android JCP ­ Quem “manda” no Java ● JCP – Java Community Process ● Qualquer um pode participar (JSR's) ● O processo é aberto (papel da Sun) ● Compatibility Test Suite: mais de 5000 itens Tchelinux 12/11/08 63
  64. 64. Desenvolvendo aplicações em Java para o Google Android Membros JCP – Apache Software Foundation – BEA Systems – Borland – Google – Fujitsu Limited – Hewlett­Packard – IBM – Intel – Oracle – Red Hat – SAP – Sun Microsystems Tchelinux 12/11/08 64
  65. 65. Desenvolvendo aplicações em Java para o Google Android Dalvik ● Interpreter­only, register based virtual machine – Dan Bornstein ● Optimized to run multiple VM instances ● Executes files in .dex format ● Runs on posix­compliant operating systems ● Looks like Java ● Dalvik? – village of Dalvík in Iceland Tchelinux 12/11/08 65
  66. 66. Desenvolvendo aplicações em Java para o Google Android Dalvik – Jar x Dex Tchelinux 12/11/08 66
  67. 67. Desenvolvendo aplicações em Java para o Google Android JVM – O segredo do desempenho J I T  Compilador just­in­time Dalvik não possui J I T !!! Tchelinux
  68. 68. Desenvolvendo aplicações em Java para o Google Android JVM – O segredo do desempenho Tchelinux
  69. 69. Desenvolvendo aplicações em Java para o Google Android Dalvik – sem JIT ● Geralmente não precisa ● Lotes de código nativo ● Sistema proporciona libs para gráficos, mídia ● JNI disponível ● Suporte a hardware comum (gráficos, áudio) – Dan Bornstein Tchelinux
  70. 70. Desenvolvendo aplicações em Java para o Google Android Garbage Collector ● Mais de uma referência pode apontar para o  mesmo objeto Tchelinux 12/11/08 70
  71. 71. Desenvolvendo aplicações em Java para o Google Android Garbage Collector ● Se o objeto não possui referências, está  liberado para o coletor de lixo Tchelinux 12/11/08 71
  72. 72. Desenvolvendo aplicações em Java para o Google Android Garbage Collector Tchelinux 12/11/08 72
  73. 73. Desenvolvendo aplicações em Java para o Google Android GC Dalvik ● Separate process, separate heaps, separate  GCs ● GCs must be independent ● GC should respect the sharing! Tchelinux 12/11/08 73
  74. 74. Desenvolvendo aplicações em Java para o Google Android Obrigado !!! Tchelinux 12/11/08 74
  75. 75. Desenvolvendo aplicações em Java para o Google Android Bibliografia ✔ http://www.fatecjp.com.br/posgraduacao/posgraduacao­ddm.htm ✔ http://www­di.inf.puc­rio.br/~endler/courses/Mobile/Tarefas/MAP­slides/ ✔ http://www.android­br.mobi/ ✔ http://code.google.com/android/ ✔ http://source.android.com/ ✔ http://ranierifernandes.blogspot.com ✔ http://java.sun.com ✔ http://www.jcp.org/en/participation/members/ ✔ http://www.tiobe.com/tpci.htm ✔ http://www.droiddraw.org/ ✔ Tchelinux 12/11/08 75

×