Clojure and Android Daniel Solano Gómez Sattvik Software & T echnology Resources, Ltd. Co. Clojure/conj 2011
Clojure in Small Places Daniel Solano Gómez Sattvik Software & T echnology Resources, Ltd. Co. Clojure/conj 2011
Clojure to go Daniel Solano Gómez Sattvik Software & T echnology Resources, Ltd. Co. Clojure/conj 2011
Overview Android and the Dalvik VM Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Android Daniel Solano Gómez Android and the Dalvik VM Android and the What is Android? Dalvik VM Java VM vs. Dalvik VM What is Android? Frome source to a running app Java VM vs. Dalvik VM Frome source to a What it all means running app What it all means Dynamic Dynamic compilation compilation Performance Performance Improving the Clojure/Android Improving the Clojure/Android experience experience Closing thoughts Closing thoughts
Clojure and What is Android? Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Android architecture Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Android architecture Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Android architecture Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Android architecture Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Android architecture Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and The good news Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
; => false Clojure and The bad news Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic (= JavaVM DalvikVM) compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and The bad news Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic (= JavaVM DalvikVM) compilation Performance Improving the ; => false Clojure/Android experience Closing thoughts
Clojure and Java VM vs. Dalvik VM Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Processing power Up to 2 1.2GHz Up to lots Max heap size 256MiB+ 16-48 MiB APIs Java SE Not quite Java SE Executable format class Dalvik EXecutable (DEX) Clojure and Java VM vs. Dalvik VM Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a Java VM Dalvik VM running app What it all means Dynamic VM type stack-based register-based compilation JIT type method trace Parallel GC? Yes Only Android 2.3+ Performance Improving the Clojure/Android experience Closing thoughts
APIs Java SE Not quite Java SE Executable format class Dalvik EXecutable (DEX) Clojure and Java VM vs. Dalvik VM Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a Java VM Dalvik VM running app What it all means Dynamic VM type stack-based register-based compilation JIT type method trace Parallel GC? Yes Only Android 2.3+ Performance Improving the Processing power Up to 2 × 1.2GHz Up to lots Clojure/Android Max heap size 256MiB+ 16-48 MiB experience Closing thoughts
Clojure and Java VM vs. Dalvik VM Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a Java VM Dalvik VM running app What it all means Dynamic VM type stack-based register-based compilation JIT type method trace Parallel GC? Yes Only Android 2.3+ Performance Improving the Processing power Up to 2 × 1.2GHz Up to lots Clojure/Android Max heap size 256MiB+ 16-48 MiB experience Closing thoughts APIs Java SE Not quite Java SE Executable format class Dalvik EXecutable (DEX)
Clojure and A class file Android Daniel Solano Gómez Android and the Dalvik VM Class file What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and A class file Android Daniel Solano Gómez Android and the Dalvik VM Class file What is Android? Java VM vs. Dalvik VM Header Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and A class file Android Daniel Solano Gómez Android and the Dalvik VM Class file What is Android? Java VM vs. Dalvik VM Header Frome source to a running app What it all means Constant pool Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and A class file Android Daniel Solano Gómez Android and the Dalvik VM Class file What is Android? Java VM vs. Dalvik VM Header Frome source to a running app What it all means Constant pool Dynamic compilation Performance Improving the Clojure/Android experience Other data/code Closing thoughts
Clojure and An application Android Daniel Solano Gómez Android and the Dalvik VM A.class B.class B.class C.class What is Android? Java VM vs. Dalvik VM Frome source to a running app What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and An application Android Daniel Solano Gómez Android and the Dalvik VM App.jar What is Android? Java VM vs. Dalvik VM Frome source to a running app A.class B.class B.class C.class What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and A problem Android Daniel Solano Gómez Android and the Dalvik VM App.jar What is Android? Java VM vs. Dalvik VM Frome source to a running app A.class B.class B.class C.class What it all means Dynamic compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Creating a DEX Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app App.jar classes.dex What it all means Dynamic A.class B.class B.class C.class compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Creating a DEX Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app App.jar classes.dex What it all means Dynamic A.class B.class B.class C.class compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Creating a DEX Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app App.jar classes.dex What it all means Dynamic A.class B.class B.class C.class compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Creating a DEX Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app App.jar classes.dex What it all means Dynamic A.class B.class B.class C.class compilation Performance Improving the Clojure/Android experience Closing thoughts
Clojure and Creating a DEX Android Daniel Solano Gómez Android and the Dalvik VM What is Android? Java VM vs. Dalvik VM Frome source to a running app App.jar classes.dex What it all means Dynamic A.class B.class B.class C.class compilation Performance Improving the Clojure/Android experience Closing thoughts
Recommend
More recommend