YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Portuguese, Brazilian subtitles

← Multi Deck Support

Get Embed Code
4 Languages

Showing Revision 8 created 06/20/2016 by Udacity Robot.

  1. Nesse projeto acontece
    algo estranho.
  2. Temos 100 classes,
    cada qual tem 700 métodos.
  3. Esse é claramente
    um exemplo artificial.
  4. Em princípio não há nada para impedir
    que um projeto grande fique enorme,
  5. particularmente se você
    tiver várias dependências grandes.
  6. Vamos tentar compilá-lo.
  7. Opa, parece que temos um erro.
  8. Problema na escrita da saída.
  9. Excessivas referências de método.
  10. 70.000, máximo é 65.000.
  11. Vamos desvendar o que está acontecendo.
  12. A máquina virtual Android não executa
    realmente Java bytecode.
  13. Ela executa Dalvik bytecode.
  14. E há uma etapa de compilação
    depois da compilação java,
  15. em que o Java bytecode é
    convertido em Dalvik bytecode.
  16. A etapa se chama dexing.
  17. Parte desse processo é compilar
    uma tabela de cada método
  18. no aplicativo,
    que então é indexado com dois bytes.
  19. Isso significa que somos
    limitados a 65 mil métodos.
  20. Felizmente, podemos pedir que o gradle
    divida essa tabela em várias outras,
  21. configurando no arquivo build.gradle,
    em default config,
  22. multiDexEnabled true.
  23. Se compilamos novamente, observando
    o log da compilação vemos que o
  24. processo dex foi executado com sucesso,
    então agora nossa compilação está ok,
  25. mesmo com nosso projeto gigantesco.
  26. Isso é algo que temos de conhecer,
    para não sermos surpreendidos no futuro.