é uma ferramenta para gerar o DEX → O DEX é um arquivo do tipo Dalvik EXecutable → DEX é o bytecode usado pela virtual machine para rodar o app - UÉ... bytecode?
é uma ferramenta para gerar o DEX → O DEX é um arquivo do tipo Dalvik EXecutable → DEX é o bytecode usado pela virtual machine para rodar o app - UÉ... bytecode? → Android não usa a JVM, tem a sua própria VM
é uma ferramenta para gerar o DEX → O DEX é um arquivo do tipo Dalvik EXecutable → DEX é o bytecode usado pela virtual machine para rodar o app - UÉ... bytecode? → Android não usa a JVM, tem a sua própria VM → Dalvik (DVM) e Android Runtime (ART) são as VMs do Android e usam o DEX
mas para executar o app, código de máquina é necessário → JIT - A Dalvik transforma o DEX em código de máquina em tempo de execução do app → AOT - O Android Runtime transforma o DEX em código de máquina em tempo de compilação do app
Android gera o código Java (.java) → O código Java é compilado e gera o Java bytecode (.class) → O Java bytecode é convertido para Dalvik bytecode (.dex)
forma mais otimizada: tamanho menor e operação mais rápida → Foi "motivado" pelo principal "mal" do Android: A retrocompatibilidade - suporte ao Java 8
artefato em duas etapas: compilação e link → Compila os resources separadamente (telas, imagens, classes...) → Junta tudo para gerar o APK → Melhor experiência em builds incrementais
feita, não utilizáva-mos antes ! → org.apache.http.legacy.jar foi removido do android.jar no Android >= 6 → Também tivemos problemas com o okhttp-3.14.2.jar
feita, não utilizáva-mos antes ! → org.apache.http.legacy.jar foi removido do android.jar no Android >= 6 → Também tivemos problemas com o okhttp-3.14.2.jar → A "promessa" é que a questão do org.apache.http.legacy.jar seja resolvida em releases futuras do Visual Studio
feita, não utilizáva-mos antes ! → org.apache.http.legacy.jar foi removido do android.jar no Android >= 6 → Também tivemos problemas com o okhttp-3.14.2.jar → A "promessa" é que a questão do org.apache.http.legacy.jar seja resolvida em releases futuras do Visual Studio → Link do issue: https://github.com/xamarin/xamarin-android/pull/2736
feita, não utilizáva-mos antes ! → org.apache.http.legacy.jar foi removido do android.jar no Android >= 6 → Também tivemos problemas com o okhttp-3.14.2.jar → A "promessa" é que a questão do org.apache.http.legacy.jar seja resolvida em releases futuras do Visual Studio → Link do issue: https://github.com/xamarin/xamarin-android/pull/2736 → Link da solução https://github.com/xamarin/xamarin-android/issues/ 2670
Android 4 → Link do issue: https://github.com/xamarin/xamarin-android/ issues/3314 (PARECE que já tem uma solução ) → ⚠ Tínhamos dois projetos Android: um com código C# e outro com telas e imagens
Android 4 → Link do issue: https://github.com/xamarin/xamarin-android/ issues/3314 (PARECE que já tem uma solução ) → ⚠ Tínhamos dois projetos Android: um com código C# e outro com telas e imagens → ❌ AAPT2 compila separadamente cada resource e depois junta tudo - isso deu problema
Android 4 → Link do issue: https://github.com/xamarin/xamarin-android/ issues/3314 (PARECE que já tem uma solução ) → ⚠ Tínhamos dois projetos Android: um com código C# e outro com telas e imagens → ❌ AAPT2 compila separadamente cada resource e depois junta tudo - isso deu problema → ✅ Unificamos novamente os projetos Android e tudo certo
Format - https://www.bugsnag.com/blog/dex-and-d8 → From Code to Dex: A Compilation Story - https://medium.com/upday-devs/from-code-to- dex-a-compilation-story-e1d62f63ad6a → Xamarin Developer Summit talk - https://www.youtube.com/watch? v=ZxKNGW8Br0M&list=PLM75ZaNQSFYkolOLIcZFi3eSORFZxHx&index=3&t=0s → DVM vs ART - https://android.jlelse.eu/closer-look-at-android-runtime-dvm-vs- art-1dc5240c3924 → Difference between DVM and ART - https://stackoverflow.com/questions/31957568/what- is-difference-between-dvm-and-art-why-dvm-has-been-officially-replaced-wi → What are "sugar", "desugar" terms in context of Java 8? - https://stackoverflow.com/ questions/22060894/what-are-sugar-desugar-terms-in-context-of-java-8 → A deep dive into Android’s D8 dexer and R8 shrinker with Xamarin - https:// medium.com/@hakimgulamali88/a-deep-dive-into-androids-d8-dexer-and-r8-shrinker- with-xamarin-ca66e00b1c8d → Next-generation Dex Compiler Now in Preview - https://android- developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html → Android Callable Wrappers for Xamarin.Android - https://docs.microsoft.com/pt-br/ xamarin/android/platform/java-integration/android-callable-wrappers → Building Android Application Bundles (APKs) by Hand - https://spin.atomicobject.com/ 2011/08/22/building-android-application-bundles-apks-by-hand/ → Android’s D8 dexer and R8 shrinker - https://devblogs.microsoft.com/xamarin/androids- d8-dexer-and-r8-shrinker/ → Android's Java 8 Support - https://jakewharton.com/androids-java-8-support/ → How Xamarin.Android AOT works - https://xamarinhelp.com/xamarin-android-aot-works/