Инструментарий для разработки приложений на языке Python для платформы Android
Представлен проект 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.
© OpenNet