Пишем на Erlang под Android

18 января 2013

Несколько дней назад, 13 января, Erik Reitsma анонсировал в рассылке erlang-questions созданный им порт Erlang для Android. Этого порта нет (пока что) в Google Play, но его не сложно установить вручную. Для этого требуется только разрешить устанавливать приложения из неизвестных источников в настройках Android’а. Рутить устройство не нужно.

Итак, приступим:

  1. Подключаемся с Android-устройства к Wi-Fi, нам понадобится хороший интернет;
  2. Заходим на http://code.google.com/p/android-scripting/, скачиваем и устанавливаем sl4a_r6.apk из раздела Downloads;
  3. Затем идем на http://code.google.com/p/erlang4android/ и делаем то же самое для ErlangForAndroid.apk, а также скачиваем fac_example.zip;
  4. Запускаем приложение Erlang4Android, нажимаем большую кнопку «Install» и ждем, пока загрузится и установится весь Erlang/OTP;
  5. Открываем приложение SL4A и проверяем, что в списке интерпретаторов появится Erlang (если не появился, значит он еще распаковывается);
  6. Берем client.erl из fac_example.zip и кладем его в /sl4a/scripts/ (если у вас не установлено архиватора и/или файлового менеджера, поищите в Google Play, их там полно)
  7. На ноутбуке, подключенном к тому же Wi-Fi, берем server.erl из fac_example.zip и говорим erlc server.erl, erl -pa ./, а затем server:start().;
  8. На телефоне/планшете через SL4A запускаем client.erl, вводим IP-адрес ноутбука и какое-нибудь число, жмем кнопку «Fac!»;

Если все было сделано правильно, мы увидим факториал введенного числа:

Erlang-программа, запущенная под Android

При запуске программы на Erlang через SL4A, управление передается в функцию main/0. Если в том же каталоге еще нет соответствующего beam-файла, он создается (на данный момент при изменении программы beam-файл приходится удалять вручную). При необходимости, в той же директории, где находится скрипт, компилируются другие erl-файлы, а также подгружаются beam’ы. Взаимодействие с API Android’а происходит через модуль android. Помимо него нам также доступны все стандартные средства Erlang’а.

Ссылки по теме:

Помимо игрушечных скриптов с помощью Erlang4Android можно писать и вполне полезные вещи. Например, можно написать gen_server, отправляющий SMS-сообщения. Или, скажем, тестирующий скорость загрузки сайтов по мобильному интернету. В общем, применений Erlang4Android при желании можно найти немало.

Метки: , , , .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.