SL4A: сценарии для "Андроида"

SL4A (Scripting Layer for Android) - это приложение для Google Android, которое приносит интерпретируемые языки программирования на гуглофоны. При помощи SL4Aможно редактировать и запускать исполняемые сценарии Python, Shell, Ruby непосредственно на этих Android-устройствах.


Программирование для Android

Прежде, чем познакомиться с проектом SL4A, перечислим, какие способы создания приложений есть для мобильной платформы "Андроид" на данный момент.

Основным языком разработки для "Андроид" является язык Java. Программы создаются при помощи пакета Google Android SDK и среды разработки Eclipse. Приложения для "Андроида" компилируются в нестандартный байт-код для виртуальной машины Dalvik, работающей на ядре Linux.

Так как "Андроид" основан на ядре Linux, то для этой мобильной операционной системы есть возможность писать код на языках СИ, СИ++ с помощью специального пакета Android Native Development Kit. Это позволяет создавать программы или библиотеки, требующие большей производительности, чем предоставляет Dalvik. Однако за скорость NDK приходится платить возросшей сложностью реализации программы.

 

Совсем недавно компания Google предложила совсем простой способ создания программ для "Андроида" - это App Inventor. Данный способ предназначен для начинающих разработчиков и представляет собой WYSWYG-редактор, где программы создаются из готовых компонент в визуальном режиме.

Но, благодаря проекту SL4A (Scripting Layer for Android), ранее известному как Android Scripting Environment или ASE, на "Андроиде" есть место и для скриптовых языков, таких, как Python, JavaScript, Ruby и др. С этой возможностью и познакомимся поближе.


Да здравствуют сценарии!

Языки сценариев для "Андроида" не помешают по нескольким причинам. Смартфоны претендуют на звание полноценных компьютеров, и поэтому, как на настоящем компьютере, здесь должна быть возможность писать сценарии. Тем более что "Андроид" - это всё-таки Linux-система, и наличие скриптовых языков здесь просто идеологически необходимо.

Основное преимущество скриптовых языков непосредственно на платформе "Андроид" - это то, что они позволяют создать и запустить приложение прямо на смартфоне и не нужно быть привязанным к компьютеру. Все остальные способы разработки предполагают для создания программы обязательное наличие старшего собрата в лице настольной системы или ноутбука.

Забегая вперёд, скажу, что скриптовые языки не требуют закачки из Сети больших по размеру пакетов и SDK. Для конкретного выбранного языка сценария потребуется скачать всего лишь пару-тройку мегабайт и можно сразу же приступать к написанию программы.

Языки сценариев хорошо подходят для написания прототипов программ, для обучения программированию, для решения частных специализированных задач. Большие серьёзные программы на них не пишут, но для создания мини-программ они подходят хорошо.

Конечно, стоит упомянуть и слабые стороны скриптовых языков. Это и меньшая производительность, по сравнению со скомпилированным приложением. Также скрипты обладают меньшей функциональностью в отношении GUI.


Знакомство с SL4A

В общем, без скриптовых языков никак нельзя. И поэтому программист Дэймон Кохлер (Damon Kohler) около года назад вплотную занялся реализацией этой возможности. Сначала для "Андроида" появился интерпретатор Python. Потом проект перерос в общую среду выполнения скриптовых языков Android Scripting Environment. Сейчас проект называется "Слой сценариев для Android" (Scripting Layer for Android).

Следует сразу же сказать, что SL4A всё ещё находится в экспериментальном состоянии. Поэтому нет гарантий, что он будет работать на всех моделях ныне выпускаемых гуглофонов. Но на смартфоне Huawei 8230 слой сценариев установился без проблем. Для работы SL4A нужна версия "Андроида" не менее 1.5.

Слой сценариев представляет собой среду, в которой можно редактировать и тут же выполнять скрипты. Также SL4A предоставляет скриптам интерфейс для таких базовых мобильных функций, как звонки, отправка текстовых сообщений, сканирование штрих-кодов, преобразование текста в речь и другое мобильное API.

Распространяется SL4A как обычное apk-приложение для "Андроида", которое можно установить непосредственно с сайта проекта code.google.com/p/android-scripting. Бар-код приложения давать не буду, так как прямая ссылка может быстро оказаться неактуальной.

Так как этот слой сценариев распространяется не через "Маркет", то для его установки нужно включить в настройках смартфона возможность установки приложений из внешних источников. В разделе настроек "Приложения" нужно включить опцию "Unknown Sources".

Размер пакета около мегабайта. Распространяется по лицензии Apache. Интерфейс программы английский.

Перед установкой SL4A будет показан список всего, к чему имеет доступ слой сценариев. Список этот внушительный, сюда входят такие опасные возможности, как доступ к телефонным функциям и данным. Так что нужно быть осторожным, запуская чужие скрипты из непроверенных источников.

Что же касается поддерживаемых языков, то непосредственно в SL4A имеется только командный интерпретатор Shell для выполнения сценариев Unix. Другие языки нужно устанавливать отдельно.

Установщики других скриптовых языков тоже являются обычными apk-приложениями. Многие пакеты этих языков находятся прямо на сайте SL4A. Другие же, как PHP, имеют собственные сайты.

Наиболее удобно установить другие языки через сам слой сценариев. Запускаем SL4A и идём в "Menu - View - Interpreters", где будет показан список всех доступных в данный момент в системе языков. На этой странице идём в "Menu - Add" и получаем уже список всех доступных языков для установки. Делаем тап на нужном из этого списка - и запустится процесс установки, в результате которого будут загружены несколько архивов со всем необходимым для данного языка.

На текущий момент через SL4A можно установить следующие языки: Python, Perl, JRuby, Lua, BeanShell, PHP, Rhino (вариант JavaScript).

Общий размер установленного языка составляет несколько мегабайт. Так, например, Python занял четыре мегабайта памяти. При этом и SL4A, и установленные языки создадут на флэш-карте свои каталоги с необходимыми ресурсами и скриптами.

Удалять установленные языки нужно через стандартный менеджер приложений "Андроида".

Несколько слов о режимах работы SL4A. При запуске слоя сценариев показывается список всех скриптов, находящихся в папке /sdcard/sl4a/scripts. Тап по названию скрипта запустит выбранный сценарий. Через "Menu - Exit&Edit" можно отредактировать этот запущенный сценарий, а через "Menu - Save&Run" запустить снова.

Но в SL4A имеется и режим интерпретатора, когда команды сценария выполняются последовательно, по мере ввода. Идём "Menu - View - Interpreters" и выбираем нужный язык, после чего SL4A перейдёт в терминальный режим выполнения команд.

API функций смартфона, которое предоставляет SL4A, позволяет получить доступ к практически всем базовым функциям гуглофона: работа с буфером обмена, отсылка e-mail, логирование, ввод-вывод, вибрация, доступ к камере, доступ к управлению приложениями, телефонные функции, мониторинг батареи, доступ к bluetooth и wi-fi и многое другое. Но реализация этих возможностей в каждом конкретном языке может быть не полной.

Доступ к API SL4A в сценариях происходит через специальный объект. Для примера приведём классический "hello, world" на Python.

/* импортируем класс для доступа к API */
import android

/* создаем объект доступа к API */
droid = android.Android();

/* приветствуем */
droid.makeToast("Hello,World!")

/* дополним приветствие дружеской вибрацией */
droid.vibrate() 

В режиме редактирования через "Menu" можно получить справку обо всех функциях API SL4A. Но это, кажись, пока единственное удобство SL4A. Больше каких-то удобств, встроенных в редактор, слой сценариев не поддерживает. Разве что можно отрегулировать в настройках шрифт и цвета редактора и консоли.


Вывод

Таким образом, нельзя сказать, что SL4A - это полноценный интерпретатор, как в настоящих больших операционных системах. Однако SL4A даёт возможность быстро написать сценарий, мини-программу для "Андроида" на своём любимом скриптовом языке, и это может понравиться многим обладателям гуглофонов.

Михаил АСТАПЧИК

Версия для печатиВерсия для печати

Номер: 

34 за 2010 год

Рубрика: 

Мобильные системы
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя namc
уже ставлю
Аватар пользователя Александр Колосов
спасибо за статью. Хочу начать программировать для android т.к. это очень перспективная ось.