Сборка Spiel из исходных кодов

Дата публикации:07.02.2012
Twitter Facebook Vkontakte

Программа экранного доступа Spiel для операционной системы Android является проектом с открытым исходным кодом, поэтому любой желающий может самостоятельно видоизменять и компилировать её исходники, при условии соблюдения положений лицензии Apache 2.0.

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

В данном материале будет описан процесс компиляции дистрибутива Spiel из исходных кодов в корректном изложении на момент написания статьи (февраль 2012, Spiel 1.2.0 source). Следует учитывать, что со временем алгоритм может претерпеть определённые изменения, главным образом, в отношении необходимых версий используемых инструментов. При этом уточнить их можно будет в служебной информации файлов проекта.

В целом весь процесс условно можно разделить на четыре этапа:

  1. Установка и настройка среды разработки под Android OS
  2. Дополнительная настройка для работы с языком программирования Scala
  3. Получение исходных кодов Spiel
  4. Непосредственно выполнение сборки кода в рабочий дистрибутив

Установка и настройка среды разработки

Данный процесс описан в статье Разработка под платформу Android: установка и настройка среды, поэтому для получения подробных рекомендаций следует обратиться к этому материалу.

Следует отметить лишь тот факт, что на момент написания, Spiel требует наличия API Android 2.2, а использующаяся версия ProGuard не поддерживает формат файлов компилятора Java из последних версий JDK, поэтому рекомендуем устанавливать JDK 6u30.

Кроме того, для корректного вызова файла javac.exe из других программ следует внести директорию его размещения в переменную путей Path, например для Windows:

C:\Program Files\Java\jdk1.6.0_30\bin

Дополнительная настройка

В качестве языка разработки в Spiel используется Scala. Поэтому для работы с её исходным кодом требуется установить соответствующие дополнительные компоненты. В проекте Spiel эту задачу выполняет система сборки SBT в виде Java-загрузчика sbt-launch.

На момент написания статьи, для сборки кода Spiel следует использовать sbt-launch версии 11.1, который использует sbt-android-plugin 0.6.0.

Процедуру установки sbt-launch для конкретной операционной системы можно уточнить на странице руководства по установке и началу работы с системой сборки SBT.

Например, для Windows файл sbt-launch.jar следует поместить в директорию, прописанную в переменной путей Path, и там же создать пакетный файл "sbt.bat" со следующим содержанием:

set ANDROID_SDK_HOME=C:\droid\android-sdk
set PATH=C:\droid\android-sdk;%PATH%
set SCRIPT_DIR=%~dp0
java -Xmx512M -jar "%SCRIPT_DIR%sbt-launch.jar" %*

Вместо "C:\droid\android-sdk" в переменной окружения PATH и в качестве значения ANDROID_SDK_HOME следует указать путь до директории, куда установлен Android SDK.

Загрузка исходных кодов Spiel

Для разработки Spiel используется система контроля версий Fossil. После загрузки версии под интересующую операционную систему следует поместить исполняемый файл в каталог, прописанный в переменной путей Path.

Чтобы загрузить исходный код из репозитория Spiel, в рабочем каталоге следует выполнить команду (подразумевается, что пользователь работает в консольном окне командного интерпретатора)

fossil clone http://spielproject.info spiel.fossil

При этом в текущую директорию будет загружен файл spiel.fossil, представляющий собой запакованный пакет данных. Для его распаковки следует выполнить команду

fossil open spiel.fossil

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

Компиляция программы

Если на предыдущих этапах все действия были выполнены корректно, то для сборки кода достаточно в директории с файлами Spiel выполнить команду

sbt android:package-debug

Для пересборки -

sbt ~android:package-debug

Если же к компьютеру подключено Android-устройство, то собранный дистрибутив можно сразу установить прямо на него. Для этого служит команда

sbt android:install-device

При этом если на устройстве уже установлена программа Spiel, то она будет автоматически обновлена.

В рабочей директории скомпилированный файл появляется по пути "\target\spiel-xxx.apk", где "xxx" номер собранной версии.

Прочие возможные проблемы и их решения

  • Загрузчик sbt-launch.jar завершает работу с ошибкой в ситуации, когда имя пользователя содержит нелатинские символы. Поэтому сборку кода следует осуществлять из под учётных записей, чьи имена состоят исключительно из латинских букв.
  • Работу sbt.launch.jar может блокировать системный firewall, когда этот загрузчик будет обращаться к удалённому репозиторию для закачки нужных компонентов. В таких ситуациях следует либо временно отключить firewall, либо разрешить sbt-launch доступ в сеть.
  • Собранные описанным методом дистрибутивы Spiel не имеют сертификата безопасности, поэтому для их установки в меню устройства предварительно необходимо выполнить следующее действие: Настройки (Settings) > Приложения (Applications) > отметить флаг Неизвестные источники (Unknown sources).


Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2017