Jabberwocky

snicker-snack!

Android and JRuby (1)

| Comments

Well, i’ve delved into it a little more – specifically i’ve watched presentation by Charles Nutter about the JRuby compiler, and tried to dx (transform the bytecode to fit the Dalvik Virtual Machine) a simple jruby compiled class.

1
2
jrubyc mvm.rb
dx --dex --output=mvm.dex mvm.class

I couldn’t actually test this (except performing a dump) on the virtual machine – something missing from the android toolset here, for as far as i could see.

(other interesting writeup about the DVM here)

I don’t really know much about compilers, but my intuition is that this might not work:

* The compilation of JRuby code transforms the structure beyond recognition - lots of 'method's are created to compensate for Ruby's dynamic nature.  My impression is that Android expects certain predefined classes (Activity, Intent and whatnot) - extending those classes with JRuby might produce something totally different, and ultimately unuseable.
* Even if it works, the use of Ruby might be severely constrained - no Ruby magic, weird inclusions etc.  Actually, would there be a point to making this work at all ?

Anyhow, these are initial impressions. I’ll need to experiment with Android some more, and then test some with both (JRuby and android) toolsets. I might also be in over my head, and this might require language expert intervention. Live and learn, right ?

Comments