No Image

Программирование на андроид на питоне

СОДЕРЖАНИЕ
410 просмотров
10 марта 2020

Рассказывает Александр Тейлор, разработчик проекта Kivy

В последнее время появляется большое количество ресурсов по разработке на Python под Andro >

Python-for-android

Прежде всего давайте посмотрим на то, с помощью чего Python получает возможность работать под Android — инструмент, названный, как ни странно, python-for-android. Его основная функция состоит в том, чтобы создать дистрибутив — папку проекта, содержащую все необходимое для запуска вашего приложения. А точнее, сам интерпретатор, Kivy и библиотеки, от которых он зависит: Pygame, SDL и несколько других. Также дистрибутив включает в себя загрузчик Java, отображающий OpenGL и выступающий в качестве посредника между Kivy и операционной системой. Затем вы добавляете ко всему этому свои скрипты, настройки вроде иконки и имени, компилируете с помощью Android NDK и вуаля — APK с вашим приложением готов!

И это всего лишь базовая процедура, на самом деле сгенерированный пакетный файл может включать (и включает) в себя гораздо больше. Вместе со всем прочим в APK вшивается большая часть стандартной библиотеки, а любой сторонний модуль, написанный на Python, может быть легко добавлен — все так же, как и при разработке десктоп-приложений. Добавка модулей с компилируемыми компонентами тоже не вызывает трудностей, необходимо лишь указать, как их нужно собирать. Как правило, это не представляет собой ничего сложного, достаточно лишь поставить пару галочек перед запуском процедуры сборки, хотя в редких отдельных случаях могут понадобиться дополнительные действия. Python-for-android уже включает в себя указания для компиляции таких популярных модулей, как: numpy, sqlite3, twisted и даже django!

Вышеописанные принципы лишь в общих словах объясняют, как работает python-for-android. В любой момент вы можете получить больше информации на данную тему, заглянув в документацию Kivy. Я рекомендую вам Buildozer — надстройку для python-for-android, предоставляющую собой удобный интерфейс и автоматическое разрешение некоторых зависимостей. Мы стараемся сделать так, чтобы написанная выше цепочка действий использовалась не только в Kivy, но и в других проектах. Основной процесс сборки останется таким же, но нужда в загрузчике Java отпадет, так как он необходим только для поддержки некоторых специфичных нужд фреймворка.

Обращение к Android API с помощью PyJNIus

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

«Яндекс», Москва, от 100 000 до 250 000 ₽

В качестве простого примера приведем программу, которая заставит телефон вибрировать на протяжении 10 секунд:

Если вы знакомы с Android API, то без труда заметите, что код выше очень похож на аналогичный на Java — PyJNIus просто позволяет нам обращаться к тому же API, но прямо из Python. Большая часть Android API может быть вызвана подобным образом, что позволяет достичь того же функционала, что и при разработке на Java.

Читайте также:  Чем панель отличается от телевизора

Главный минус PyJNIus в том, что он требует неплохого понимания структуры Android API, а код выходит громоздким, хотя его эквивалент на Java выглядит точно так же. Для решения этой проблемы Kivy включает в себя Plyer.

Plyer: кроссплатформенное API для платформоспецифичных задач

Проект Plyer ставит себе цель создать простой «питоничный» интерфейс для функций, которые присутствуют на большинстве платформ. Например, код выше легким движением руки превращается в…

Более того, написанный код попытается выполнить свою задачу на всех поддерживаемых Plyer платформах — на данный момент это: Android, iOS, Linux, Windows и OS X (для iOS также существует аналог PyJNIus, называемая PyOBJus). На самом деле, вибрация — не самый лучший пример, потому что сейчас она реализована только для Android, но такие функции как проверка уровня заряда батареи:

— работают как в десктопных, так и в мобильных приложениях, а получение данных с компаса/гироскопа и отправка SMS без проблем реализуются на Android и iOS.

Plyer находится на начальной стадии развития, так что любая помощь в разработке приветствуется. Также, мы участвуем с ним в Google Summer of Code в этом году.

Не только ради Kivy

Все вышеперечисленные инструменты были разработаны для нашего фреймворка, но на самом деле они больше предназначены для разработки под Python в целом. В Plyer мы специально избегаем какой-либо зависимости от Kivy, а PyJNIus нужен лишь для доступа к Android JNI. Искренне надеемся, что эти инструменты станут полезны для любого, кто пишет на Python под Android. Вы уже можете попробовать PyJNIus, используя QPython. Python-for-android больше завязан на взаимодействии с Kivy, но мы будем рады обсудить этот вопрос.

Многое можно реализовать при разработке на Android с помощью Python, несмотря на все различия с Java, которая предназначена для этого, но эти возможности могут быть расширены еще больше в ближайшем будущем. И если вы заинтересовались описанными выше проектами, то самое время присоединиться к нашей команде!

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

Из этой статьи вы узнаете:

Добро пожаловать на страницы блога kip-world! С вами как всегда я, Гридин Семён, и сегодня мы расскажем вам о программировании на языке Python для Android. Мы рассмотрим такие темы как установка Python, разработка и запуск приложений.

Python-приложения для Android OS

На данный момент, Python является одним из самых любимых языков разработки для начинающих программистов, в особенности для людей, интересующихся разработкой программного обеспечения для устройств под управлением операционной системы Android.

Читайте также:  При звонке абоненту все время занято

Python for android позволяет создавать несложные приложения с минимумом затрат. Более того, поняв один раз принцип разработки на python для android, разработчику больше не потребуется вникать в подробности и нюансы написания программы. Более того, Android API здорово систематизирован и прост в применении.

В первую очередь, нам понадобится правильная среда разработки. Определитесь с актуальной на данный момент версией Android, учитывая, что данная операционная система поддерживает обратную совместимость.

Иными словами, приложения, разработанные для версии 6.0.2, будут работать и на 5.0.1, однако зачастую приложения, разработанные для более старых версий ОС, не поддерживаются более новыми версиями.

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

Стоит также учесть, что приложения python могут быть разработаны и установлены не только на операционную систему android, но также на устройства под управлением других операционных систем: MAC OS, Windows и Linux. Такая возможность расширяет горизонты разработки, позволяя использовать ту среду, которая удобна в данный момент.

Установка python на android

Следующий вопрос – как именно python для андроид получает возможность запускать наши приложения на девайсе. Разработка на python для android с инструментом python for android упрощает работу тем, что данный инструмент создает на вашем устройстве дистрибутив – специальную зашифрованную папку, которая содержит все необходимые для проекта данные.

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

Для удобной разработки и, собственно, разработки непосредственно с девайса, нам понадобится интерпретатор Python. Качественное программирование на python для андроид требует установки правильного интерпретатора.

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

Если вы хотите запустить интерпретатор без использования приложения, вам придется написать небольшой скрип, создание которого займет не более 30 минут. С помощью такого скрипта, мы можем запустить приложение непосредственно из терминала, или же с помощью автоматизированного скрипта.

Такой скрипт может быть написан заранее и размещен на удобном источнике (в том числе на карте памяти) и запущен в удобное для пользователя время. Существует множество интерпретаторов, потому чтобы найти свой, понадобится какое-то время.

QPython

Интерпретатор QPython позволяет запускать приложения, в том числе игры для андроид на python, непосредственно на выбранном устройстве. Данный интерпретатор содержит также консоль, условную среду разработки, SL4A-библиотеку, которая просто необходима при создании сценариев для скриптов.

Плюсами QPython являются:

  1. Поддержка таких интерфейсов, как GPS, мобильная сеть и Bluetooth.
  2. Возможность выполнения сценария непосредственно на девайсе.
  3. Поддержка пакетов питона для андроида, которые разрабатываются заранее и единожды.
  4. Поддержка множества наиболее популярных библиотек, которые делают разработку максимально правильной, быстрой и комфортной.
  5. Возможность программирования непосредственно на девайсе.
  6. Возможность запуска написанного кода на разных девасов – от мобильных до полноценным успехом.
Читайте также:  Mb quart hd f200 отзывы

Удобство работы с Python заключается в доступности десятков качественных официальных мануалов, позволяющих создавать отличные приложения самостоятельно и практически с нуля.

Это дает возможность не только научиться самостоятельному программированию, но и получить полноценную программу для мобильного устройства.

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

Вы можете выбрать и более простой язык, который будет не просто легче в изучении и использовании, но и будет более «Эластичным» и применяемым в жизни при изменении условий, в которых нам необходимо учувствовать.

Мы надеемся, что наша статья была полезна и информативна для пользователя. Расскажите нам, какими языками программирования пользуетесь вы? Как часто обновляете знания или изучаете новые языки программирования?

Оставляйте свои комментарии под постом, делитесь с друзьями записью и задавайте вопросы, на которые я с радостью отвечу.

Поискал в гугле и быстро запутался от разнообразия ссылок и названий продуктов.

У кого-то есть опыт написания приложений под андроид используя питон? Поделитесь опытом и списком, что за чем пробовать и устанавливать?

  • Вопрос задан более трёх лет назад
  • 62529 просмотров

Питон для Андроида — достаточно мозгозатратное занятие.
Я бросил эту затею, хотя иногда слежу за проектами, подающими надежду в этом направлении.

Если нужно создавать игры, то это PyGame for Android — pygame.renpy.org
Если нужно бизнес-приложения, то это Kivy — kivy.org (их гитхаб — github.com/kivy/python-for-android)

Недостатки первого:
1. проект не развивается
2. ориентирован на создание игр
3. только arm-архитектура
4. поддерживается только одно касание

Достоинства первого:
1. ниже порог вхождения — достаточно легко устанавливается (не без бубна, но легче, чем kivy)
2. куча документации по самой PyGame, которую можно использовать при разработке

Недостатки второго:
1. требует от устройства поддержку gles 2.0 (даже для простенького интерфейса)
2. везде с собой тянет библиотеку для построения интерфейсов
3. нужно постараться, чтобы установить всё это добро (кросс-компиляция и всё такое)

Достоинства второго:
1. любая поддерживаемая Андроидом архитектура
2. проект развивается
3. поддержка мультитач
4. использует наработки PyGame for Android

По поводу sl4a — он не позволяет создавать обособленные пакеты — требуется отдельно установленный интерпретатор Питона. По этой причине я его не рассматриваю.

В любом случае, стоит быть готовым к тому, что размер пакета будет минимум 3 МБ даже в случае HelloWorld — каждое приложение будет тянуть с собой интерпретатор и стандартную библиотеку.

Следует отметить, что это не аналитическое сравнение — я отметил те пункты на которые обращал внимание. Возможно дела обстоят по-другому и я заблуждаюсь — я не использую Питон для Андроида ни в одном из своих проектов, хотя хотел бы.

Комментировать
410 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector