Разница между Kivy и PY4A

Я новичок в разработке Android, и у меня был некоторый опыт работы с Java, С#, Python и т.д. Python был моим любимым, я бы хотел с ним связать приложение Android.
Тогда я увидел этот вопрос:
Есть ли способ запустить Python на Android?
Наиболее проголосовавшие ответы Kivy и ASE (теперь SL4A и включает PY4A).
Однако после некоторых Kivy PY4A я не смог найти никакой полезной информации о разнице между Kivy и PY4A. Поиск разницы между Kivy и SL4A тоже был бесплодным.

Итак, что касается Kivy и PY4A,
может кто-то объяснить, в простых терминах:
- Какое сходство и разница между ними?
- Каковы их хорошие и плохие детали?
- Есть ли другие хорошие альтернативы?

Ответ 1

Смутно, есть два проекта под названием "python для android".

SL4A позволяет запускать скрипты python на Android. Их PY4A является шагом в их инструментальной цепочке, но я мало знаю об этом. Я понимаю, что есть некоторая интеграция с android apis (вы можете использовать какое-то оборудование и т.д.), Но ограничения в том, как запускать программы (это не полные приложения, без gui и т.д.). Это то, что я делаю, когда вижу другие записи, я не пробовал, не беру слово на детали. (Edit: на самом деле кажется, что есть возможность упаковать apks и несколько способов создать gui, я не знаю деталей)

Kivy - это графическая структура, которая поддерживает многие операционные системы (Linux, Windows, OSX, Android, iOS, может быть, уже уже). Вы используете его для создания guit python. Проект kivy также начал свой собственный проект python для Android, который предоставляет способы скомпилировать интерпретатор python для android и упаковать его в качестве реального приложения для Android (включая интеграцию java api с pyjnius и т.д.). Kivy хорошо интегрирован с ним, так что вы можете легко скомпилировать приложение для python gui для Android, хотя я не думаю, что этот python-for-android ограничен приложениями kivy.

Таким образом, это совершенно разные проекты, у которых есть компонент с тем же именем. SL4A предназначен для запуска скриптов python на Android, я мало знаю о его ограничениях или деталях. Kivy - это графическая инфраструктура python (не ограничиваясь андроидом), которая может быть скомпилирована через свой собственный проект python для Android и полностью интегрирована в приложения для Android.

Вы можете увидеть (например) витрину kivy для примеров некоторых простых возможностей kivy или плоских драгоценностей на примере простой игры, сделанной в киви. Это всего лишь примеры, гораздо больше возможностей.

Ответ 2

Я нашел это очень полезным (и последним):

Встраивание Python в Android (серия Tutorial)

http://techventura.wordpress.com/2014/04/21/embedding-python-in-android-series/

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

Поскольку Kivy Python-for-Android более активно развит, чем SL4A (ASE) Py4A, мне кажется, что это путь.

(Я думаю, что было бы очень актуально и, вероятно, более уместно, есть ли способ запустить Python на Android?, Но для ответа требуется большая репутация, чем у меня в настоящее время.)

К первому вопросу: самая важная разница между Kivy Python-for-Android и SL4A (ASE) Py4A заключается в том, что последняя по-прежнему предлагается в качестве "альфа-качества", в то время как первая кажется гораздо более активной, Конечно, если вы возьмете Kivy в целом, это кросс-платформенная библиотека графического интерфейса.

Кроме того, результаты моих исследований по различным решениям:

  • Google Py4A + SL4A (ASE): используется, но альфа-качество, не активно развивается
  • Киви:
    • предлагает Python-for-Android, чтобы вызвать код python с Java
    • предлагает Pyjnius, чтобы вызвать Java-код из python
    • как представляется, активно развивается
    • там учебник, который я связал выше, чтобы встроить в приложение Java Android
    • если интересно, кросс-платформенный графический интерфейс (сам Киви)
  • QPython:
    • прежде всего интерактивная среда для запуска сценариев python на Android
    • основанный на Py4A, но Pyjnius (см. выше) считается полезным
    • вложение в Java-приложение доступно, но несколько ограничено: задание Python должно начинаться с Intent, и результаты собираются из stdout; я думаю, что это означает большее разделение, которое может быть желательно в некоторых сценариях.
  • python.org: вообще не упоминается Android

Ответ 3

Вы пробовали QPython? Это новый python для экземпляра android, который предлагает больше функций.

Ответ 4

В дополнение к ответам здесь я добавлю вилку оригинального Py4A, который, как представляется, активно развивается: https://github.com/kuri65536/sl4a

Я не могу ручаться за качество или простоту использования. Есть.apks для установки, поэтому это выглядит довольно просто.