Как полностью разработать приложение для Android с использованием Python?

Я хотел бы разработать (довольно простое) приложение для Android, которое будет распространяться через Play Store. Я хотел бы сделать это полностью на питоне. Однако онлайн-исследование меня не совсем прояснило: большинство комментариев либо устарели (старше 1 года, и я чувствую, что с тех пор может быть улучшена интеграция python), либо они говорят о запущенный питон в android (например, здесь).

Поэтому ищу информацию по вопросам:

  • возможно ли полностью разработать приложение на Python и какие инструменты для этого есть? (Например, рекомендуется ли Киви?)
  • Если да, то в какой программной среде лучше всего это реализовать? (Я безуспешно пытался использовать Android Studio, но не смог найти способ запустить там код Python.)

Я новичок в разработке приложений и был бы очень признателен за любые попытки сделать это на python, а не на Jave и т. д., О которых я еще не знаю.

Большое спасибо за вашу помощь заранее.

раньше я использовал kivy и их программу buildozer. у них есть документация здесь kivy.org/docs/guide/packaging-android.html

e.s. 24.05.2018 17:37

Изначально вы должны использовать либо Java, либо Kotlin, однако, как указывали другие, существуют сторонние «конструкторы приложений» или фреймворки, которые вы можете использовать с python, такие как PyMob или Kivy.

Dominik Schmidt 29.05.2018 19:30

Я создал игру для Android, полностью разработанную на Python с использованием Kivy. Он называется CoinTex и доступен здесь, в Google Play: play.google.com/store/apps/details?id=coin.tex.cointexreactf‌ ast. Исходный код игры доступен здесь, на GitHub: github.com/ahmedfgad/CoinTex. Я также написал книгу, которая будет опубликована в этом году, о создании приложений для Android с использованием Python. Он называется «Создание приложений Android на Python с помощью Kivy с Android Studio: с Pyjnius, Plyer и Buildozer Ahmed Fawzy Gad», доступный здесь на Amazon: amazon.com/dp/1484250303.

Ahmed Gad 23.07.2019 02:56

Не могу опубликовать ответ, но вот кажется решение: Будут продемонстрированы различные технологии, в том числе графические интерфейсы QML на основе PySide с использованием порта Necessitas Qt и подход на основе Py4A / SL4A, который можно комбинировать с Android WebKit и повторно использовать веб-фреймворки Python.

Basj 30.10.2019 09:18

Я не понимаю, почему этот вопрос был закрыт. Он должен быть открыт снова.

cknoll 14.10.2020 11:32
131
5
256 411
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вы можете попробовать BeeWare - как описано на их веб-сайте:

Write your apps in Python and release them on iOS, Android, Windows, MacOS, Linux, Web, and tvOS using rich, native user interfaces. One codebase. Multiple apps.

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

Вот Учебник для приложений Android.

Вы сами создали приложение с помощью BeeWare?

Berry Tsakala 06.03.2019 12:39

Android, Python!

Когда я увидел эти два ключевых слова вместе в вашем вопросе, первое, что пришло мне в голову, - это Киви.

Kivy logo

Прежде чем приступить к собственной разработке Android на Java с помощью Android Studio, я пробовал Киви. Это просто потрясающе. Вот несколько преимуществ, которые я смог выяснить.


Простой в использовании

С основами Python у вас не возникнет проблем с его изучением.


Хорошее сообщество

Он хорошо задокументирован и имеет отличное активное сообщество.


Кросс-платформенный.

Вы можете разрабатывать вещи для Android, iOS, Windows, Linux и даже Raspberry Pi с помощью этого единого фреймворка. Открытый источник.


Это бесплатное программное обеспечение

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


Поддержка ускоренной графики

Графический движок Киви, созданный поверх OpenGL ES 2, делает его подходящим для программного обеспечения, которое требует быстрой визуализации графики, такого как игры.



Теперь, переходя к следующей части вопроса, вы не можете использовать Android Studio IDE для Kivy. Здесь - подробное руководство по настройке среды разработки.

Поддержка Windows сильно отстает от производственных стандартов (или даже от стандартов любителей). К тому же половина мира не может его использовать из-за отсутствия поддержки RTL.

Berry Tsakala 06.03.2019 12:42

Почему вы оставили Kivy и перешли на нативные инструменты разработки? Вы предполагаете, что у него есть недостатки.

igoemon 24.01.2020 08:32

Есть два основных претендента на приложения Python на Android

Chaquopy

https://chaquo.com/chaquopy/

Он интегрируется с системой сборки Android и предоставляет Python API для всех функций Android. Процитируем сайт: «Полный набор инструментов Android API и пользовательского интерфейса прямо в вашем распоряжении».

Beeware (набор инструментов для виджетов Toga)

https://pybee.org/

Это обеспечивает многоцелевой транспилятор, поддерживает многие цели, такие как Android и iOS. Он использует общий набор инструментов виджетов (тога), который сопоставляется с вызовами интерфейса хоста.

Который из?

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

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

С другой стороны, Chaquopy гораздо точнее отображает API Python на Android. Это также позволяет вам смешивать в Java, что полезно, если вы хотите использовать существующий код из других ресурсов. Если у вас есть строгие цели дизайна и вы в основном хотите ориентироваться на Android, это гораздо лучший ресурс.

Ответ принят как подходящий

Чтобы ответить на ваш первый вопрос: да, возможно разработать приложение для Android на чистом питоне, для этого я предлагаю вам использовать BeeWare, который представляет собой просто набор инструментов Python, которые очень хорошо работают вместе и позволяют разрабатывать собственные приложения для платформы на Python.

checkout это видео создателя BeeWare, который прекрасно объясняет и демонстрирует его применение

Как это работает

Предпочтительным языком реализации Android является Java, поэтому, если вы хотите написать приложение Android на Python, вам необходимо иметь способ запускать код Python на виртуальной машине Java. Это то, что делает ЛОС. ЛОС - это транспилятор: он берет исходный код Python, компилирует его в байт-код CPython, а затем транспилирует этот байт-код в Java-совместимый байт-код. Конечным результатом является то, что ваши файлы исходного кода Python компилируются непосредственно в файл Java .class, который можно упаковать в приложение Android.

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

После того, как вы написали собственное приложение для Android, вы можете использовать Портфель для упаковки кода Python в виде приложения для Android.

Портфель - это инструмент для преобразования проекта Python в автономное собственное приложение. Вы можете упаковать проекты для:

  • Mac
  • Окна
  • Linux
  • iPhone / iPad
  • Android
  • AppleTV
  • tvOS.

Вы можете проверить этот собственный Android Крестики-нолики, написанный на Python, с помощью пакета BeeWare. на GitHub

В дополнение к инструментам BeeWare вам потребуется установить JDK и Android SDK для тестового запуска вашего приложения.

и чтобы ответить на ваш второй вопрос: хорошей средой может быть все, что вам удобно, будь то текстовый редактор и командная строка или IDE, если вы ищете хорошую IDE на Python, я бы посоветовал вам попробовать Pycharm, в ней есть бесплатная версия для сообщества, аналогичная среде Android Studio, потому что она была сделана той же компанией.

Надеюсь, это было полезно

Это только у меня, или от ЛОС отказались?

Fund Monica's Lawsuit 22.11.2018 08:18

это тупик (последний раз проверял: декабрь 2018). Один или несколько компонентов в этом слишком сложном решении больше не работают или не могут поддерживать себя в актуальном состоянии.

Berry Tsakala 06.03.2019 12:39

Просто обновление на 2019 год, но Kotlin теперь является предпочтительным языком для разработки Android.

DaveTheMinion 04.07.2019 22:57

@BerryTsakala, ты можешь уточнить? Как вы думаете, решения BeeWare умрут в ближайшем будущем (тогда я не хочу тратить на это время ...)?

Basj 26.10.2019 23:25

@Basj Я хотел бы сказать, что Beeware определенно будет существовать какое-то время, потому что, просто взглянув на его учетную запись GitHub, вы обнаружите, что она активно развивается, и если вы перейдете на канал Gitter, вы можете всегда доходят до всей команды, особенно доктора Рассела (freakyboy), создателя, и сообщество довольно дружелюбное, а также недавно был опубликован твит (26 сентября 2019 г.) из их официального аккаунта, в котором сообщалось, что они получили грант на образование от Python программный фундамент. Я думаю, это того стоит, особенно если вам нравится Python как язык.

maroof shittu 27.10.2019 21:19

В любом случае BeeWare, похоже, не поддерживает Android (Java) на данном этапе.

Mark Anderson 16.02.2020 04:46

но beeware не поддерживает изображения и другие виджеты

Search Imtiyaz 07.01.2021 14:41

привет @SearchImtiyaz из документации тоги, вы можете использовать ImageView, вы также можете проверить полный Ссылка на Тога для списка доступных виджетов

maroof shittu 12.01.2021 04:32

@maroofshittu спасибо, дружище, это было очень полезно для меня

Search Imtiyaz 13.01.2021 11:36

Другие вопросы по теме