jamrubyというものを作り始めました
せっかくmrubyを触ったので、mrubyの内部実装に使われている各種APIを直接Androidのアプリから触れる様にしたいなと思いました。
まぁ、やることと言えば頑張ってしこしこJNIのラッパーを書くだけなので、やればそのうちできるかなという感じですね。
ということで、作りはじめてみました。
名前はjamrubyという名前にしました。Javaのjaとmrubyをくっつけただけという非道いネーミングですが、細かいことは(ry
ソースコードはgithubに突っ込んであります。
https://github.com/crimsonwoods/jamruby
これはただのLibrary Projectなので、別でActivityを起こして、そこから参照するようにしてください。
JNIの部分はndk-buildするようになっていますが、buildにはmrubyのソースとビルド済みのバイナリが必要になります。
また、Android.mk中に、環境に合わせてmrubyの場所を記述する必要があります。
ビルドの手順なんかは、時間のあるときにまとめて公開できればなぁと思っています。
Activityの中ではこんな感じでrubyのcodeを呼んで実行できます。
ただし、出力は標準出力に吐き出されますので、そのままだと何が出力されているかはわかりません。
標準出力に吐き出されたものを見る場合は、↓の「Viewing stdout and stderr」にある設定を行なって下さい。
http://developer.android.com/guide/developing/tools/adb.html
try { Jamruby.getInstance().run("p \"Hello, mruby!\""); } finally { Jamruby.getInstance().close(); }
このコードでは、mrubyで以下のことを行ったときと同様の動作を行います。
$ mruby -e 'p "Hello, mruby!"'