スタッフのブログです。個以上あるコメントは受け付けない設定になってます。)2010年08月26日AndroidのNDKツールを使ってrubyをビルドして動かす前回の知識を使ってNDKのツールで先日リリースされたruby-1.9.2をビルドしてAndroid上で動かしてみました。アップデート記事を書きました。(x86_64)を使っています。1.9.2がインストールされている必要があります。(ビルド中に実行されるrubyスクリプトが1.9.2用になっているため。installAndroid用のビルド基本的な手順は以下の通りです。環境変数を設定した状態でconfigureスクリプトを実行してMakefileを生成する。makeして、コンパイルエラーをなんとか修正する。install必要なファイルだけ実機にコピーする。環境変数の設定まずNDKをインストールしたディレクトリをNDK_TOPにセットします。--enable-sharedこれでうまくいけばよかったのですが、rubyのconfigureはクロスビルドに対応していない部分がありました。修正してなんとかできるようにしました。その修正点はこのページの最後に貼っておきます。これがないと一見正常にビルドが終了していてもrubyからネイティブのダイナミックリンクライブラリをdlopenした時に失敗します。makeこれで無事に最後までビルドできたら、いったん/system/localのディレクトリにインストールしてみます。installここで、/system/local/binと/system/local/lib以下のファイルだけ実機にコピーします。インクルードヘッダやドキュメントは不要です。コマンドを使うところですが、私の場合は実機のファイルシステムはNFSマウントしているので以下のようにコピーしました。システムのライブラリパスが通っているディレクトリに置く必要があります。今回はシンボリックリンクを張りました。libruby.soAndroid上でRubyを実行ためしにirbを起動してみます。RubyでのHTTPサーバの実行このページを参考にして、以下のプログラムを動かしてみました。/PCからこの実機のURLをブラウザで開いて表示できることも確認できました。実機を起動したときに自動的にこのHTTPサーバを起動するには/init.rcにserviceとして登録すればよいです。stderrへの出力をlogcatで見ることができます。そのうちやってみたいなと思っていたことをすでにやっている人がいました。オープンソースって素晴らしい。自分でもやってみました。10:444コアのCortex-A9のKZM-CA9-01ボードを使って実験したことを書いたページをまとめてみました。(11)タグクラウドABCadbaidlAndroidARMarmv7asmbinderbionicBootbuildbuildrootbuiltinbusyboxcccacheCELFcelfjpClangcortex-a8Cortex-A9cpuinfodalvikvmDebiandebuggerdDMAelcembeddedemulatorEventexeGCCFlashfpufroyogccGDBGingerbreadgoldfishIceCreamSandwichinitinitrdinterpreterJAVAjavacjavapjitK&Rkernelkeykzm-a9-dualKZM-A9-GTkzm-ca9-01LinarolinuxLLVMloglogcatltsimingwMIPSmultiarchndkneonnetinstallnfsnon-stopobjdumppartnerPARTNER-JetportingpowermanagementprintfpropertyPyMitepythonqemuQTQTextCodecrootstockrubysdServiceSHsimdsmpTCGtuninguartubootUbuntuuclibcUNIXUSBv8vlinkwakelockwirelessx86zygote計測QRコード京都マイクロコンピュータ。