~/talk

Digging into D8 and R8

slides:none on file

D8 replaces DX and folds Java 8 desugaring into dexing so command-line experiments reproduce how lambdas become generated classes, and D8 emits different Dalvik opcodes based on minSdk (example: not vs xor optimization that saves an instruction but avoids buggy phones). R8 replaces ProGuard by running shrink/optimize during dexing and proves things like class staticization for Kotlin companion objects and nullability-driven elim, plus range propagation that can remove hundreds of AndroidX API-level branches. Build-plugin flags enable each; try on a real APK to see size and opcode changes.

AI-written summary · about

  1. 0:00Introduction to D8 and R8
  2. 1:09Compilation pipeline overview
  3. 3:15D8 replaces DX with modern techniques
  4. 8:09Lambda transformations in D8
  5. 11:58D8’s bite code optimizations
  6. 16:35R8 integrates minification
  7. 18:23Cotlin companion object optimization
  8. 23:40Nullability and dead code elimination
  9. 28:59API level conditional code removal
  10. 36:27Using D8 and R8 in Gradle
  11. 40:23Conclusion and next steps
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.