скачать - Есть ли способ запустить Python на Android?




скачать python на андроид (17)

Kivy

Я хочу опубликовать это как расширение того, что @JohnMudd уже ответил ( но, пожалуйста, несите меня, поскольку английский не является моим первым языком )

Прошло много лет с тех пор, и Киви превратился в v1.9-dev. На мой взгляд, самой большой точкой продаж Kivy является кросс-платформенная совместимость. Вы можете кодировать и тестировать в локальной среде (Windows / * nix и т. Д.), Вы также можете создавать, отлаживать и упаковывать приложение для работы на устройствах Android / iOS / Mac / Windows.

С собственным KV языком Kivy вы можете легко и легко создавать код интерфейса GUI (это похоже на Java XML, но вместо TextView и т. Д. У KV есть свои ui.widgets для аналогичного перевода), что, на мой взгляд, довольно легко принять.

В настоящее время Buildozer и python-for-android являются наиболее рекомендуемыми инструментами для создания / упаковки ваших приложений. Я попробовал их обоих и могу твердо сказать, что они создают приложения для Android с Python. Пользователи, которые чувствуют себя комфортно в своей консоли / терминале / командной строке, не должны иметь проблем с их использованием, а их руководства также хорошо документированы.

Кроме того, iOS - еще одна важная точка продаж Kivy, при условии, что вы можете использовать ту же базу кода с небольшими изменениями, необходимыми для тестирования на устройстве iOS, с помощью kivy-ios Homebrew, хотя Xcode требуется для сборки перед запуском их устройства (AFAIK iOS Simulator в Xcode в настоящее время не работает для сборки архитектуры x86). Также есть некоторые проблемы с зависимостями, которые необходимо вручную скомпилировать и использовать в Xcode, чтобы иметь успешную сборку, но их было бы непросто разрешить, и люди в Kivy Google Group тоже очень полезны.

При всем том, что пользователи с хорошим знанием Python не должны испытывать проблем, забирая основы недель (если не дни) для создания некоторых простых приложений.

Также стоит упомянуть, что вы можете связывать (создавать рецепты) свои модули Python со сборкой, чтобы пользователи могли действительно использовать многие существующие библиотеки, которые Python приносит нам, например Requests & PIL и т. Д. Через поддержку расширения Kivy .

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

Последнее, но не менее важное: если вы собираетесь использовать Kivy для более серьезных / коммерческих проектов, вы можете найти существующие модули неудовлетворительными. Есть некоторые приемлемые решения, хотя, с «незавершенной работой» pyjnius для Android и pyobjus . Теперь пользователи могут обращаться к классам Java / Objective-C через эти модули для управления некоторыми собственными API.

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

Я действительно надеюсь, что некоторые программисты приложений Python найдут эту информацию полезной и начнут смотреть на Kivy. Он может только улучшиться (с большей поддержкой и по мере того, как библиотеки / модули будут перенесены), если у сообщества будет большой интерес.

PS У меня нет никаких отношений с Киви, я просто программист, которому очень нравится идея принести удовольствие Python для мобильных / кросс-платформенных разработок.

Мы работаем над версией S60 и на этой платформе есть хороший API Python.

Тем не менее, в Python нет ничего официального на Android, но, поскольку Jython существует, есть ли способ позволить змее и роботу работать вместе?


Сценарий для Android

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

Он поддерживает ряд языков. Python - самый зрелый. По умолчанию он использует Python 2.6, но вместо этого вы можете использовать 3,2 порт . Я использовал этот порт для всех вещей на Galaxy S2, и он отлично работал.

API

SL4A предоставляет порт своей библиотеки android для каждого поддерживаемого языка. Библиотека предоставляет интерфейс для базового Android API через один объект Android .

from android import Android

droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade

Каждый язык имеет почти такой же API. Вы даже можете использовать JavaScript API внутри webviews.

let droid = new Android();
droid.ttsSpeak("hello from js");

Пользовательские интерфейсы

Для пользовательских интерфейсов у вас есть три варианта:

  • Вы можете легко использовать общие, собственные диалоги и меню через API. Это хорошо для диалогов подтверждения и других основных пользовательских входов.
  • Вы также можете открыть веб-представление из сценария Python, а затем использовать HTML5 для пользовательского интерфейса. Когда вы используете webviews из Python, вы можете передавать сообщения туда и обратно между веб-просмотром и процессом Python, который породил его. Пользовательский интерфейс не будет родным, но он по-прежнему остается хорошим вариантом.
  • Существует некоторая поддержка для пользовательских пользовательских интерфейсов Android, но я не уверен, насколько хорошо это работает; Я просто никогда не использовал его.

Вы можете смешивать параметры, чтобы вы могли иметь веб-интерфейс для основного интерфейса и по-прежнему использовать собственные диалоги.

QPython

Существует сторонний проект с именем http://qpython.com/ . Он основывается на SL4A и бросает некоторые другие полезные вещи.

QPython дает вам более удобный интерфейс для управления вашей установкой и включает в себя небольшой редактор кода сенсорного экрана, оболочку Python и оболочку PIP для управления пакетами. У них также есть порт Python 3. Обе версии доступны в Play Store бесплатно. QPython также связывает библиотеки из группы Python в проектах Android, включая Kivy, поэтому это не просто SL4A.

Обратите внимание, что QPython по-прежнему развивает свою вилку SL4A (хотя и не очень, если честно). Сам проект SL4A в значительной степени мертв.

Полезные ссылки


В playstore есть приложение под названием QPython3, которое может использоваться как для редактирования, так и для запуска скрипта python.

Связь с PlayStore

Другое приложение под названием Termux, в котором вы можете установить python с помощью команды

pkg install python

PlayStore Link


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


Вы можете использовать QPython :

Он имеет консоль Python, редактор, а также управление пакетами / установщики

http://qpython.com/

Это проект с открытым исходным кодом с реализациями Python 2 и Python 3. Вы можете скачать исходный код и файлы .apk для Android непосредственно из github.

QPython 2: https://github.com/qpython-android/qpython/releases

QPython 3: https://github.com/qpython-android/qpython3/releases


Вы можете использовать приложение Termux :

Обратите внимание, что apt install python install python 3. для python 2 вы shoud call apt install python2.

Некоторые демонстрации здесь: https://www.youtube.com/watch?v=fqqsl72mASE

А также страницу github: https://github.com/termux



Еще одним вариантом является pyqtdeploy который ссылается на документы:

инструмент, который вместе с другими инструментами, поставляемыми с Qt, позволяет развертывать приложения PyQt4 и PyQt5, написанные с помощью Python v2.7 или Python v3.3 или новее. Он поддерживает развертывание на настольных платформах (Linux, Windows и OS X) и на мобильных платформах (iOS и Android).

Согласно развертыванию приложения PyQt5 на Android через pyqtdeploy и Qt5, он активно развивается, хотя трудно найти примеры работающих приложений для Android или учебник о том, как перекрестно скомпилировать все необходимые библиотеки на Android. Это интересный проект, который нужно иметь в виду!


Используя SL4A (который уже упоминался сам по себе в других ответах), вы можете run полномасштабный экземпляр web2py (другие потенциальные кандидаты на python также являются кандидатами). SL4A не позволяет вам создавать собственные компоненты пользовательского интерфейса (кнопки, полосы прокрутки и т. П.), Но поддерживает WebViews . WebView - это не что иное, как полосатый веб-браузер, указывающий на фиксированный адрес. Я считаю, что родное приложение Gmail использует WebView вместо обычного маршрута виджетов.

Этот маршрут будет иметь некоторые интересные особенности:

  • В случае большинства веб-фреймворков python вы можете фактически разработать и протестировать, не используя Android-устройство или эмулятор Android.
  • Какой бы ни был код Python, который вы в конечном итоге пишете для телефона, можно также разместить на общедоступном веб-сервере с очень небольшой (если есть) модификацией.
  • Вы можете использовать все сумасшедшие веб-материалы: запрос, HTML5, CSS3 и т. Д.

Как любитель Python и программист на Android, мне грустно говорить, что это не очень хороший способ. Есть две проблемы.

Одна из проблем заключается в том, что для инструментов разработки Android существует гораздо больше, чем просто язык программирования. Большая часть графики Android включает файлы XML для настройки дисплея, аналогичные HTML. Встроенные Java-объекты действительно интегрированы с этим XML-макетом, и это намного проще, чем писать собственный код, чтобы перейти от логики к растровому изображению.

Другая проблема заключается в том, что G1 (и, вероятно, другие устройства Android для ближайшего будущего) действительно не так быстр. 200 МГц и RAM очень ограничены. Даже в Java вы должны сделать приличное количество переписывания, чтобы избежать создания большего количества объектов, если вы хотите сделать ваше приложение совершенно гладким. Python будет слишком медленным на некоторое время на мобильных устройствах.


Не сейчас, и вам повезет, что скоро Jython начнет работать. Если вы планируете начать разработку сейчас, вам будет лучше с тем, чтобы просто придерживаться Java на данный момент.


Один из способов - использовать Kivy :

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

Kivy работает на Linux, Windows, OS X, Android и iOS. Вы можете запустить такой же код [python] на всех поддерживаемых платформах.

Приложение Kivy Showcase


Существует также проект Android Scripting Environment (ASE / SL4A). Он выглядит потрясающе, и он имеет некоторую интеграцию с родными компонентами Android.

Примечание: больше не происходит «активное развитие», но некоторые вилки могут быть.


Также есть python-on-a-chip, возможно, работает mosync: google group


Я использую приложение QPython. У него есть редактор, консоль, и вы можете запускать с ним свои программы Python. Приложение бесплатное, а ссылка - http://qpython.com/ .


Я опубликовал инструкции и патч для кросс-компиляции Python 2.7.2 для Android, вы можете получить его в моем блоге здесь: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

EDIT: Я открыл источник Ignifuga , мой 2D Game Engine, это Python / SDL, и он перекрестно компилирует для Android. Даже если вы не используете его для игр, вы можете получить полезные идеи из кода и утилиты builder (по имени Шафер, после Тима ... вы знаете, кто).


«Подраздел Pygame для Android - это порт подмножества функций Pygame для платформы Android. Цель проекта - разрешить создание Android-специфических игр и облегчить перенос игр с ПК-подобных платформ на Android «.

Примеры включают полную игру, упакованную в APK, что довольно интересно.





android-scripting