Создание Android-приложений с использованием Python и SL4A: Часть 1. Построение среды разработки

Конфигурирование рабочей станции под управлением Windows для исполнения системы Scripting Layer for Android

Данный цикл статей посвящен созданию приложений для платформы Google Android с помощью языка Python и системы SL4A (Scripting Layer for Android). В данной статье, первой в цикле, описываются шаги по установке и запуску всех необходимых компонентов.

Пол Ферилл (Paul Ferrill), технический директор, ATAC

Пол Ферилл (Paul Ferrill) пишет для компьютерной прессы на протяжении более 20 лет. Он начинал с обзоров сетевых продуктов для PC Magazine, в том числе таких, как LANtastic и ранние версии Novell Netware. У Пола есть степени бакалавра и магистра технических наук в области электроники. Он писал программы для такого количества компьютерных платформ и архитектур, что уже сам не может вспомнить их все.



17.12.2013

Об этом цикле статей

Эта статья, первая в цикле, демонстрирует читателю, как установить все необходимые компоненты, чтобы приступить к написанию Python-скриптов для Android-устройства. Во второй статье цикла будут представлены примеры практически полезных скриптов. В ней также будут рассмотрены некоторые доступные для использования вызовы Android API, в том числе различные окна. И, наконец, в статьях цикла будет описан процесс построения полного пользовательского интерфейса — примерно так, как это делалось бы в языке Java.

Согласно распространенному заблуждению относительно разработки для платформы Google Android, программный для нее должен быть написан на языке Java™. В действительности имеется множество различных возможностей, реализуемых в рамках проекта SL4A (Scripting Layer for Android). Проект SL4A был начат сотрудником компании Google Деймоном Колером (Damon Kohler) в рамках 20-процентной квоты (Google официально разрешает своим разработчикам до 20% рабочего времени тратить на "инициативные" проекты). Это было почти два года назад. За это время было выпущено четыре этапные версии.

SL4A предоставляет платформу для нескольких скриптовых языков, включая Beanshell, Lua, Perl, Python и Rhino. Кроме того, поддерживаются базовые скрипты оболочки. В настоящее время работы по языку Python, проводившиеся в рамках проекта SL4A, выделилась в собственный отдельный проект. В значительной степени это произошло благодаря популярности Python и потребности в отделении выпусков новой функциональности Python от основного цикла выпусков системы SL4A.

В данной статье основное внимание уделяется применению языка Python при написании приложений для платформы Android. Python – это превосходный инструмент для написания как простых скриптов, так и сложных многопоточных приложений. Поддержка Python на платформе Android важна потому, что позволяет использовать огромные объемы уже написанного и находящегося в свободном доступе программного кода. Язык Python прост в изучении даже для абсолютных новичков, к тому же в Интернете имеется множество ресурсов, помогающих ускорить его освоение.

Установка и настройка

Прежде чем вы сможете приступить к разработке с помощью SL4A, необходимо загрузить и установить несколько обязательных компонентов. Первым их них является полный комплект разработчика Java Development Kit (JDK). Его последнюю версию можно найти на сайте Oracle для разработчиков.

Затем вам потребуется комплект Android software development kit (SDK). На основном сайте для Android-разработчиков имеется два варианта загрузки: в виде zip-файла и в виде exe-файла. Если вы загрузите этот exe-файл и запустите его на исполнение, на экране появится окно, в котором вы должны выбрать, какие версии SDK и файлов поддержки вы хотите установить (см. рис. 1).

Рисунок 1. Выбор нужных опций Android SDK для загрузки
Window in which you choose your SDK options

Все необходимое для этой статьи я установил и протестировал на машине под управлением 64-разрядной версии Windows® 7.

Эта статья посвящена разработке приложений для платформы Android с помощью языка Python, поэтому вполне очевидно, что вам необходимо установить Python на своей машине разработки. На Windows-компьютерах язык Python изначально не установлен. На момент написания этой статьи актуальная версия пакета SL4A Python имела номер 2.6.2. Для обеспечения совместимости со своей системой загрузите соответствующую версию Python 2.6 — 32-разрядную или 64-разрядную.

Рекомендуется добавить несколько ссылок на Android SDK в директиве PATH— это упростит запуск SDK Manager и других инструментов. Чтобы сделать это в среде Windows 7, выполните следующие шаги.

  1. Нажмите клавишу Windows, а затем нажмите Search.
  2. В текстовом поле введите Environment.
  3. Нажмите на Edit the system environment variables.
  4. В открывшемся окне нажмите Environment Variables, а затем выберите переменную PATH в списке User variables.
  5. Нажмите Edit, а затем добавьте соответствующий маршрут к своему каталогу инструментов Android SDK.

Строка, которую необходимо добавить, имеет следующий вид

;C:\Users\paul\Downloads\android-sdk-windows\platform-tools

Необходимо поставить точку с запятой (;) перед новым маршрутом для добавления нового каталога. После того как вы введете соответствующую строку, нажмите OK три раза.

Избегайте пробелов в именах каталогов

Некоторые инструменты, например эмулятор, могут не запуститься, если вы установите SDK в каталог, имя которого имеет пробелы. Это относится и к местоположению по умолчанию: C:\Program Files\android-sdk-windows.

Процесс установки SL4A на Android-устройстве подобен процессу установки любого другого Android-приложения. Вы можете просканировать QR- код на основном сайте проекта SL4A с помощью своего устройства, чтобы загрузить SL4A installation file. После завершения загрузки этого файла он должен запуститься автоматически. В этот момент вы должны увидеть экран установки, показанный на рисунке 2.

Рисунок 2. Экран установки SL4A
The installation screen for SL4A

Нажмите Install для запуска процесса.

Заключительный шаг состоит в установке интерпретатора Python на вашем устройстве. Это можно сделать с использованием любого из нескольких методов. Из эмулятора вы можете ввести текст sl4a download в поисковом поле браузера (рис. 3).

Рисунок 3. Экран загрузки SL4A
Image showing the SL4A download screen

Нажмите на ссылку PythonForAndroid_r4.apk для запуска процесса загрузки. Чтобы действительно запустить установщик, просмотрите экран уведомления, для чего нажмите на него и переместитесь по нему от верхней до нижней части экрана. Нажмите на сообщение Download complete для запуска установщика Python for Android (рис. 4).

Рисунок 4. Начальный экран установки Python for Android
Image showing the initial SL4A installation screen

Нажмите Install для запуска процесса, который загружает и распаковывает несколько zip-файлов. В данном случае просто нажмите Install на основном экране установки (рис. 5).

Рисунок 5. Основной экран установки Python for Android
Imaging showing the primary Python installation screen

Вы должны увидеть три отдельных окна хода выполнения. Первое окно демонстрирует процесс загрузки, а затем извлечения файлов на SD-карту. Если все прошло нормально, появится сообщение "Installation Successful".


Основы Android SDK

Есть два основных метода для тестирования Python-кода с помощью SL4A: с использованием эмулятора или с использованием реального физического устройства. Android SDK предоставляет базовые возможности эмулятора и инструменты для создания эмулированного устройства с такими же характеристиками, как у соответствующего физического устройства. В некоторых случаях, например, при создании дополнительных модулей для планшетов Samsung, вы можете воспользоваться готовым эмулятором.

Инструмент SDK Manager действует в качестве менеджера обновлений и инструмента для создания виртуального устройства. При каждом запуске инструмента SDK Manager он подключается к сайту для Android-разработчиков с целью проверки на наличие новых выпусков (вы можете пропустить этот процесс, нажав на Cancel). В этой точке вы должны видеть окно Android SDK and AVD Manager (см. рис. 6).

Рисунок 6. Окно Android SDK and AVD Manager
Image showing the Android SDK and AVD Manager screen

Выберите Virtual devices в дереве каталогов для отображения всех ранее определенных виртуальных Android-устройств (AVD — Android virtual device) в панели подробностей. Чтобы создать новый эмулятор устройства, нажмите New. В окне Create New Android Virtual Device (AVD) введите необходимую информацию в полях Name, Target и SD Card Size. На рисунке 7 показаны параметры моего тестового устройства. Имя устройства не должно содержать пробелов; для хранения данных необходимо выделить не менее 100 МБ. Выберите соответствующий номер версии Android для своего целевого устройства. Этот ниспадающий список отображает только доступные опции, загруженные ранее.

Рисунок 7. Мастер создания нового AVD-устройства
The Create New Android Virtual Device (AVD) window

Теперь нажмите Create AVD. Появится всплывающее окно со сведениями о вашем новом устройстве. Чтобы запустить любой из доступных образов эмулятора, выберите требуемую цель, а затем нажмите Start. В окне Launch Options можно оставить значения по умолчанию для размеров экрана или поставить флажок в контрольном окошке Scale display to real size (Масштабировать экран до реального размера) и указать иные размеры экрана. Значение "7" меня полностью устраивает (см. рис. 8). Чтобы запустить эмулятор "с чистого листа", поставьте флажок в контрольном окошке Wipe user data (Стереть данные пользователя).

Рисунок 8. Опции запуска AVD-устройства
Image showing the AVD launch options

В состав Android SDK входит еще один обязательный инструмент под названием ADB (Android Device Bridge). Этот инструмент поддерживает такие функции, как установка приложений (apk-файлы), копирование файлов на устройство или с устройства, выдача команд оболочки на устройство. Кроме того, инструмент ADB используется для запуска SL4A на устройстве, что позволяет разработчику запускать программы на исполнение с рабочей станции. Чтобы установить коммуникационный канал между хостом (рабочей станцией) разработчика и устройством, необходимо с помощью ADB перенаправить TCP/IP-трафик с порта 9999 на конкретный порт на этом устройстве. Откройте командное окно и введите в него следующую командную строку:

$ adb forward tcp:9999 tcp:42306

Второй номер порта соответствует устройству. В последней версии SL4A этот номер можно задать в предпочтениях. В стандартном выпуске вы должны использовать номер, который предоставит вам SL4A.

Теперь запустите SL4A, а затем нажмите Menu. В области с шестью опциями в нижней части окна нажмите View, а затем нажмите Interpreters (рис. 9).

Рисунок 9. Запуск удаленного сервера из меню Interpreters системы SL4A
Imaginge showing the Interpreters menu, from which you launch a remote server

Нажмите еще раз Menu, а затем нажмите Private для запуска сервера в приватном режиме.

Для реального устройства различие состоит в том, что опция Private запускает сервер с использованием USB-порта, а опция Public использует Wi-Fi. Если вы снова посмотрите страницу уведомлений, то увидите, что сервис SL4A Service исполняется (рис. 10).

Рисунок 10. Экран уведомления Android
Image showing that the SL4A service is running

Нажмите на сообщение, чтобы увидеть фактический присвоенный номер порта. В нашем случае для второго значения TCP в команде adb forward мы используем номер порта 42306. Теперь вы готовы к тому, чтобы написать какой-либо Python-код и протестировать его на устройстве.


Программа Hello World на языке Python for Android

Практически в каждой вводной статье по программированию ее автор считает своим долгом написать программу "hello world". Я делаю это здесь для того, чтобы продемонстрировать несколько способов для написания и тестирования Python-кода с помощью SL4A. Мой код выглядит следующим образом.

import android
droid = android.Android()
result = droid.makeToast('Hello, world!')

Каждый скриптовый язык SL4A использует файл импорта — в случае Python это файл android.py — для формирования интерфейса между скриптом и поддерживающими API-интерфейсами Android. Этот код можно ввести непосредственно на своем устройстве в интерпретаторе (см. рисунок 9) или с помощью редактора. Чтобы использовать интерпретатор Python, запустите его на экране Interpreters, для чего выберите опцию Python 2.6.2. На появившемся в результате экране вы сможете ввести показанный выше код; после ввода последней строки вы должны увидеть всплывающее окно со словами: "Hello, world!"

Текстовый ввод как на эмулированном, так и на реальном устройстве может оказаться утомительным занятием. Python предоставляет среду IDLE (консоль/редактор), которая в сочетании с инструментом ADB очень удобна для написания кода на персональном компьютере и тестировании его на Android-устройстве. Вам потребуется лишь локальная копия файла android.py. Вы можете извлечь ее из файла python_extras_r14.zip, доступного на странице загрузки SL4A, или передать ее с устройства с помощью команды adb pull. Кроме того, весьма удобно иметь каталог с именем SDCARD в корне своего первичного системного диска для зеркалирования всего содержимого эмулируемого устройства. Это существенно упрощает маршрут к файлу при исполнении скрипта на локальной машине, которому необходимо обращаться к файловой системе. На рисунке 11 показан скрипт Hello World в консоли IDLE.

Рисунок 11. Скрипт Hello World в Python-консоли IDLE
Image showing the Hello World application in the Python IDLE console

Если вы запустили сервер и выполнили команду adb forward, то должны увидеть Toast-сообщение, показанное на рисунке 12, и не должны увидеть никаких ошибок.

Рисунок 12. Всплывающее сообщение Hello World
Image showing the Hello World pop-up message on the device

В Windows-системе для запуска окна редактирования в среде IDLE нажмите: File > New Window. Это окно предоставляет все необходимые средства для редактирования и тестирования эмулированного или реального Android-устройства на своей машине разработки.

Ресурсы

Научиться

Получить продукты и технологии

  • Загрузите SL4A или посетите сайт с неофициальными релизами.
  • Загрузите Python for Android.
  • Загрузите Android SDK.
  • Загрузите новейшую версию JDK.
  • Загрузите и оцените пакет IBM Mobile Technology Preview— он содержит набор примеров кода и сервисов, которые помогают приступить к созданию мобильных приложений, которые могут интегрироваться с корпоративными системами и расширять их возможности. В состав пакета входят: RESTful-сервис уведомлений; среда с открытым исходным кодом PhoneGap для создания гибридных мобильных приложений; облегченная среда исполнения WebSphere Application Server; а также пример кода, позволяющий увидеть, как это все работает.
  • IBM WebSphere Application Server Feature Pack for Web 2.0 and Mobile: в состав этого пакета входят инструментарий IBM Dojo 1.7 Toolkit, новые стандартные блоки для построения мобильных приложений и RIA-приложений (rich Internet application) и компонент для построения схем на основе Dojo. Кроме того, в состав пакета входят инструменты Rational, позволяющие адаптировать к мобильным устройствам приложения WebSphere, изначально разработанные для настольных браузеров, а затем развертывать эти приложения на мобильных устройствах.
  • Оцените продукты IBM наиболее удобным для вас способом. Загрузите ознакомительные версии программных продуктов, воспользуйтесь их онлайновыми пробными версиями, поработайте с продуктами в облачной среде или обратитесь к ресурсу SOA Sandbox для изучения эффективной реализации решений на основе сервис-ориентированной архитектуры.

Обсудить

  • Присоединяйтесь к сообществу developerWorks. Связывайтесь с другими пользователями developerWorks и знакомьтесь с ориентированными на разработчиков форумами, блогами, группами и вики-ресурсами.

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Мобильные приложения, Open source
ArticleID=957714
ArticleTitle=Создание Android-приложений с использованием Python и SL4A: Часть 1. Построение среды разработки
publish-date=12172013