(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

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

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

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

Согласно распространенному заблуждению относительно разработки для платформы 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) введите необходимую информацию в полях NameTarget и 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-устройства на своей машине разработки.



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 21.04.2014 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
IBM Domino Messaging Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
IBM Domino Enterprise Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
IBM Domino Messaging Client Access License Authorized User License + SW Subscription & Support 12 Months
IBM Domino Enterprise Server Processor Value Unit (PVU) Annual SW Subscription & Support Renewal
IBM DOMINO COLLABORATION EXPRESS AUTHORIZED USER LICENSE + SW SUBSCRIPTION & SUPPORT 12 MONTHS
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Утиль - лучший бесплатный софт для Windows
Новые программы для Windows
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100