iexを使うとちょっとした動作確認がササッとできて便利ですよね。
このちょっとした動作確認をいつでもどこでもできるよう、elixirをAndroid端末で実行する方法を紹介します。
SL4Aのインストール
SL4A(Scripting Layer for Android)は、Android上で、スクリプトの編集と実行、対話式のインタプリタの実行ができるソフトウェアです。
SL4Aは、GooglePlay以外から入手するアプリなのでインストールするには、Android端末で、「設定->セキュリティ->提供元不明のアプリ」、をチェックしインストールを許可する必要があります。
現在の最新バージョンは、Release 6です。このapkをAndroid端末にダウンロード&インストールします。
erlang4androidのインストール
erlang4androidは、SL4AにErlang/OTPをダウンロード&インストールする為のものです。
R16BのapkをAndroid端末にダウンロード&インストールします。R16B以外のバージョンもありますが、elixirはR16B以降が必須なので注意したください。
elixir precompiled packageの入手
elixirのprecompiled packageをAndroid端末にダウンロードし、展開します。
現時点の最新バージョンはv0.11.2。なので、v0.11.2のzipファイルをダウンロードします。
ダウンロードしたzipファイルを解凍して、「/mnt/sdcard/elixir」 に配置します。Androidのパスは端末依存があるので、環境に合わせて指定してください。
erlang4Androidの設定
erlang4androidを起動して、InstallボタンをクリックしErlangをインストールします。インストール完了後、「メニュー->Settings」から、コマンドライン引数に
-pa /elixirルートパス/lib/elixir/ebin
のパスを設定します。
今回配置したelixirのprecompiled packageのパスに合わせると、
-pa /mnt/sdcard/elixir/lib/elixir/ebin
になります。
Erlangインタプリタの起動
SL4Aを起動し、「メニュー->View->Interpreters」を選択します。
Interpreter画面からErlangを選択すると、Erlangの対話コンソールが起動します。
スクリプトの実行
コンソールから以下のコードを実行します。
elixir:eval("IO.puts to_string(20131202)",[]).
実行すると、
20131202
{ok,[],
{elixir_scope,nil,nil,false,false,false,nil,nil,[],nil,[],
nil,nil,[],nil,[],[],[],<<"nofile">>,
['Elixir.Integer','Elixir.Kernel','Elixir.Kernel.Typespec',
'Elixir.Record'],
[],
[{'Elixir.Kernel',[{...}|...]}],
[],
[{'Elixir.Kernel',...}]}}
まとめ
なんとか実行はできましたが、iexと比べるとだいぶイマイチですね。。
もう少し取り回しし易い方法を調べたいと思います。
明日は@yaottiさんです