【レポート】

JavaアプリをAndroidに移植する方法 - JRubyの場合は1時間

1 SDKコマンドから推測しながら移植にとりかかる

  • <<
  • <

1/2

JRuby on Android - RUBOTO

JRuby開発者、Charles Nutter氏のブログにJRubyをAndroidに移植したとみられる記事が掲載されたわけだが、その翌日、事の詳細がHeadius: Ruboto Is Your Friendで公開された。結論からいえばJRubyはAndroidで動作するようになり、そして今後の修正点の洗い出しもできたことになる。Androidで動作させるための修正は執筆現在で最新版となるJRuby 1.2RC1に取り込まれている。どのように移植したのか、どういった問題があるのかが記載されており参考になる。

Headius: Ruboto Is Your Friendによれば、Charles Nutter氏は2009年1月の早い時期にすでにJRubyをAndroidへ移植することを考えていたという。AndroidのJava環境DalvikがJava 1.5とほぼ互換性がありJava MEプロファイルよりも多くの拡張ライブラリを備えているため、JRubyを移植して『Mobile JRuby』と言い出すいい機会だと考えていたようだ。しかし開発環境をダウンロードしてオンラインドキュメントを眺めたりはしたものの、実際の作業には至らなかったという。

事の転機は2月23日(米国時間)に実施されたユーザグループ(Ruby Users of Minnesota)で実施されたセッションにはじまる。同セッションではAndroidでの開発、iPhoneでの開発、StrutsからJRubyへのマイグレーションといった話があり、それに触発されて同日の夜にJRubyの移植作業に着手、なんと1時間後には動作するようにしたという。Headius: Ruboto Is Your Friendには作業の様子がコミカルにまとまっている。しかもその方法がおもしろい。

最初はEclipseのGUIベース環境を使ってAndroidアプリを作成。次にJRubyライブラリを追加しようとしたが方法が分からないためあきらめて、SDKのコマンドをいじくって探っていく方法に転向。ツールをいじるうちに既存のクラスやJarファイルをDalvikバイトコードへ変換するdxコマンドを発見。--dexでDalvikバイトコードへの変換を指定、-JXmx1024Mで1GBまでメモリを使うように指定、--outputで出力ファイルを指定している。

dxコマンドでJRubyのJarファイルをDalvikバイトコードへ変換 - Headius: Ruboto Is Your Friendより抜粋

変換後のJarファイルにはclassed.dexファイルが含まれている - Headius: Ruboto Is Your Friendより抜粋

  • <<
  • <

1/2

インデックス

目次
(1) SDKコマンドから推測しながら移植にとりかかる
(2) 1時間で動くように - 今後は事前コンパイラで高速化
関連キーワード


転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

求人情報