【レポート】

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

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

    後藤大地  [2009/03/03]

    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より抜粋

    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン