Пишем на Erlang под Android
18 января 2013
Несколько дней назад, 13 января, Erik Reitsma анонсировал в рассылке erlang-questions созданный им порт Erlang для Android. Этого порта нет (пока что) в Google Play, но его не сложно установить вручную. Для этого требуется только разрешить устанавливать приложения из неизвестных источников в настройках Android’а. Рутить устройство не нужно.
Итак, приступим:
- Подключаемся с Android-устройства к Wi-Fi, нам понадобится хороший интернет;
- Заходим на http://code.google.com/p/android-scripting/, скачиваем и устанавливаем sl4a_r6.apk из раздела Downloads;
- Затем идем на http://code.google.com/p/erlang4android/ и делаем то же самое для ErlangForAndroid.apk, а также скачиваем fac_example.zip;
- Запускаем приложение Erlang4Android, нажимаем большую кнопку «Install» и ждем, пока загрузится и установится весь Erlang/OTP;
- Открываем приложение SL4A и проверяем, что в списке интерпретаторов появится Erlang (если не появился, значит он еще распаковывается);
- Берем client.erl из fac_example.zip и кладем его в /sl4a/scripts/ (если у вас не установлено архиватора и/или файлового менеджера, поищите в Google Play, их там полно)
- На ноутбуке, подключенном к тому же Wi-Fi, берем server.erl из fac_example.zip и говорим
erlc server.erl
,erl -pa ./
, а затемserver:start().
; - На телефоне/планшете через SL4A запускаем client.erl, вводим IP-адрес ноутбука и какое-нибудь число, жмем кнопку «Fac!»;
Если все было сделано правильно, мы увидим факториал введенного числа:
При запуске программы на Erlang через SL4A, управление передается в функцию main/0
. Если в том же каталоге еще нет соответствующего beam-файла, он создается (на данный момент при изменении программы beam-файл приходится удалять вручную). При необходимости, в той же директории, где находится скрипт, компилируются другие erl-файлы, а также подгружаются beam’ы. Взаимодействие с API Android’а происходит через модуль android. Помимо него нам также доступны все стандартные средства Erlang’а.
Ссылки по теме:
- Erlang4Android: http://code.google.com/p/erlang4android/;
- Обсуждение: https://groups.google.com/d/topic/erlang-programming/3s_6jTVUW5c/discussion;
- Описание API: http://code.google.com/p/android-scripting/wiki/ApiReference;
- Еще один проект по портированию Erlang на Android: http://erlanger.ru/ru/page/1524/erlang-na-android-e;
- О программировании под Android на Perl: /perl-on-android/;
Помимо игрушечных скриптов с помощью Erlang4Android можно писать и вполне полезные вещи. Например, можно написать gen_server, отправляющий SMS-сообщения. Или, скажем, тестирующий скорость загрузки сайтов по мобильному интернету. В общем, применений Erlang4Android при желании можно найти немало.
Метки: Android, Erlang, Кроссплатформенность, Функциональное программирование.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.