LoginSignup
5
4

More than 5 years have passed since last update.

elixir on Android

Posted at

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さんです

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4