Есть ли способ запустить Python на Android? [закрытый]

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

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

25 ответов


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

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

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

Kivy приложения "витрина"


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

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


да!

пример через Мэтта Каттса через SL4A -- " вот сканер штрих-кода, написанный в шести строках кода Python:

import android
droid = android.Android()
code = droid.scanBarcode()
isbn = int(code['result']['SCAN_RESULT'])
url = "http://books.google.com?q=%d" % isbn
droid.startActivity('android.intent.action.VIEW', url)

там же системы SL4A написано большими сотрудниками Google.


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

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


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

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


скриптовый слой для Android

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

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

API

SL4A обеспечивает порт их android библиотека для каждого поддерживаемого языка. Библиотека предоставляет интерфейс для базового API Android через один 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");

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

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

  • вы можете легко использовать общие, родные диалоги и меню через ПРИКЛАДНОЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС. Этот хорошо подходит для диалогов подтверждения и других основных пользовательских входов.
  • вы также можете открыть webview изнутри скрипта Python, а затем использовать HTML5 для пользовательского интерфейса. Когда вы используете webviews из Python, вы можете передать сообщения взад и вперед, между webview и процессом Python, который породил его. Пользовательский интерфейс не будет родным, но это все еще хороший вариант иметь.
  • здесь какой-то поддержка собственных пользовательских интерфейсов Android, но я не уверен, насколько хорошо он работает, просто я никогда им не пользовался.

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

QPython

существует сторонний проект с именем QPython. Он строится на SL4A и бросает некоторые другие полезные вещи.

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

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

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


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

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

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


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


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

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

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

Kivy


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

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

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

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

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

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

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

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

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

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

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

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


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


с Python для android сайт:

Python для android-это проект для создания собственного дистрибутива Python, включая модули, которые вы хотите, и создания apk, включая python, libs и ваше приложение.


еще одна попытка: https://code.google.com/p/android-python27/

Это одна врезать прямо питона interpretter в APK приложение.


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

обратите внимание, что apt install python install python 3. для python 2 вы должны вызвать apt install python2.

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

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


вы можете запустить свой код на Python, используя системы SL4A. sl4a поддерживает Python,Perl, JRuby, Луа, BeanShell, JavaScript,на TCL, и сценарий оболочки.

вы можете узнать sl4a Примеры Python.


там также python-на-чипе, возможно, работает mosync:группа google


можно использовать QPython:

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

http://qpython.com/

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

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

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


Chaquopy

Chaquopy это плагин для системы сборки на основе Gradle Android Studio. Он фокусируется на тесная интеграция со стандартными инструментами разработки Android.

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

  • Он может автоматически скачать пакеты PyPI и построить их в приложение, включая выбранные собственные пакеты, такие как NumPy.

  • он обеспечивает полный доступ ко всем API Android от Python, включая собственный пользовательский интерфейс toolkit (пример активности pure-Python).

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

(Я создатель этого продукта.)


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

Playstore link

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

pkg install python

Playstore Link


не видел этого здесь, но вы можете сделать это с Pyside и Qt теперь, когда Qt работает на Android благодаря Necessitas.

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

http://qt-project.org/wiki/PySide_for_Android_guide


другой вариант, если вы ищете 3.4.2 или 3.5.1, это архив на GitHub.

Python3-Android 3.4.2 или Python3-Android 3.5.1

в настоящее время он поддерживает Python 3.4.2 или 3.5.1 и 10D-версию NDK. Он также может поддерживать 3.3 и 9c, 11c и 12

приятно, что вы просто загрузите его, запустите make и получите.так или иначе .а

в настоящее время я использую это для запуска raw Python на устройствах android. С парой модификаций файлов сборки вы также можете сделать x86 и armeabi 64 бит


еще один вариант, вроде бы pyqtdeploy который цитирует документы:

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

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


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


проверить enaml-уроженца который принимает концепцию react-native и применяет ее к python.

Он позволяет пользователям создавать приложения с собственными виджетами Android и предоставляет API для использования библиотек android и java из python.

Он также интегрируется с android-studio и разделяет несколько приятных функций React, таких как перезагрузка кода и удаленная отладка.