Инструментарий для разработки приложений на языке Python для платформы Android
9 января 2012 года
Представлен проект Python for Android, в рамках которого подготовлен инструментарий, позволяющий создавать приложения для платформы Android на языке Python. Итоговые приложения оформляются в виде APK-пакетов, которые можно установить как обычные приложения для Android. Для обеспечения выполнения интерпретатора Python используется Android NDK (Native Development Kit), позволяющий организовать выполнение нативного Си/Си++ кода с задействованием API платформы Android. Код проекта распространяется в рамках лицензии LGPLv2.1.
Для формирования пользовательского интерфейса в Python программах для платформы Android предлагается использовать Python-библиотеку Kivy, предназначенную для быстрого создания многоплатформенных GUI-интерфейсов, которые кроме Android также смогут работать в Linux, Windows и Mac OS X. Для формирования интерфейса напрямую используется OpenGL ES 2. Возможно использование различных протоколов ввода, таких как WM_Touch, WM_Pen, Mac OS X Trackpad, Magic Mouse, Mtdev, HID (ядро Linux), TUIO. Поддерживается мультитач, в том числе возможна эмуляция мультитач через использование двух мышей.
Python-приложения для платформы Android пока могут использовать ограниченное число внешних модулей, круг которых постепенно будет расширяться. Например, в данный момент поддерживается jpeg, pil, png, sdl, sqlite3, pygame, kivy, android, libxml2, libxslt, lxml, ffmpeg и openssl. В APK-пакет включается специально формируемый для каждого проекта дистрибутив Python, содержащий только необходимый для выполнения текущего приложения набор runtime-компонентов. Для запуска приложения требуется создать скрипт main.py.
Следует отметить, что кроме Python for Android развивается несколько других проектов, позволяющих выполнять приложения для платформы Android, но они либо ограничивают возможности языка, либо не предоставляют средств сборки готовых к использованию пакетов, либо не поддерживают формирование GUI-интерфейса, либо не позволяют формировать сборки с желаемым набором компонентов. Среди таких проектов:
- SL4A (Scripting Layer for Android) - проект по обеспечению запуска скриптов на языках Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl и shell, развиваемый при участии компании Google. В скриптах может быть использован API Android через специальную обвязку вокруг стандартного JSON RPC платформы Android, что позволяет использовать из скриптов функции телефонии, отправлять SMS, получать данные с GPS, web-камеры и акселерометров, обрабатывать события, использовать функции синтезатора речи, формировать интерфейс пользователя.
- PGS4A (Pygame Subset for Android) - порт Pygame для платформы Android, позволяющий создавать и портировать игры на языке Python с использованием стандартных модулей Pygame.
- Python-on-a-Chip (p14p) - урезанный вариант виртуальной машины Python (PyMite), поддерживающий лишь часть языка Python.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.