Error formatting macro: pagetree: java.lang.NullPointerException
Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

Rationale

Android is an important target for JVM languages. Clojure should run well there

Plan

  • Figure out what works and what doesn't
    • find it and write it up
  • Fast startup
  • Small footprint
    • Selectively strip metadata?

Issues

  • Needs a motivated owner
  • Be careful not to compromise Clojure for base and other platforms in making Android work well
  • Will we need some sort of conditional compilation?

Findings

  • Works out of the box with 1.2.0+
  • Startup time is a little sluggish, but not too bad
  • The bean function causes some unnecessary GC and load time
  • -zip, xml, and set loading in RT.java add 1-2 seconds on to the load time- (fixed)
  • -Average load time for a hello world app on stock clojure is 8-9 seconds using my macbook pro and the android emulator running Froyo-
  • Average load time for a hello world app drops to around 5 seconds with the bean function removed and zip, set, and xml removed from the load in RT.java
  • Clojure adds =~ 4MB of overhead on application size (without any metadata stripped)
    • Standard Hello Android on Java: 20.01KB
    • Standard Hello Android on Clojure: 4.21MB
Labels: