~/talk

Clojure and Android

links:none on file
slides:none on file

Achieves true dynamic compilation on Android by converting emitted JVM class files to DEX in memory using code pulled from dx.jar, packaging a tiny APK and loading it via the Android runtime; the approach works on >97% of devices but some macros can blow the stack and Java-only APIs like java.beans and clojure.repl are unavailable. Runtime costs: Clojure shrinks a 3MB JAR to ~1MB DEX, adds ~1.2MB to heap and increases cold startup to ~2.3s vs 0.4s for Java/Scala; tooling (Neko, REPL-on-device, Lein plugins) is prototype-level.

AI-written summary · about

  1. 0:00Intro
  2. 1:30Overview
  3. 1:58What is Android?
  4. 2:13Android architecture
  5. 2:52The good news
  6. 3:13Java VM vs. Dalvik VM
  7. 4:06A class file
  8. 4:32An application
  9. 4:51Creating a DEX
  10. 5:31An Android application
  11. 6:13Consequences
  12. 7:07Dynamic compilation on Android
  13. 9:16What about Android?
  14. 9:28A new class loader
  15. 10:02The Dalvik process
  16. 11:07New dependency
  17. 11:35Android compatibility
  18. 11:52Clojure compatibility
  19. 12:52Benchmarking Clojure and the competition
  20. 13:14Package size (MB)
  21. 13:39Installed size (MB)
  22. 13:56Startup time (s)
  23. 14:57Heap size (MB)
  24. 16:54Measuring time, a test
  25. 19:34Improving performance
  26. 20:43Making Clojure a first-class language for Android development
  27. 21:44Android development version of Clojure
  28. 22:14Build tools
  29. 22:42REPL/dynamic development tools
  30. 23:20What about ClojureScript?
  31. 24:52Android and Clojure
  32. 26:14Decaffeinated Android
  33. 26:42Questions?
~/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.