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

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

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

1753
задан 19 сент. '08 в 16:21
источник поделиться
26 ответов

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

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

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

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

733
ответ дан 19 нояб. '11 в 0:49
источник

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

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

287
ответ дан 10 июня '09 в 8:24
источник

ДА!

Пример через Matt Cutts через SL4A -" heres сканер штрих-кода, написанный в шести строках кода 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)
168
ответ дан 10 июня '09 в 8:13
источник

Там также SL4A, написанный сотрудниками Google.

69
ответ дан 26 мая '11 в 12:21
источник

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

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

66
ответ дан 28 янв. '11 в 15:18
источник

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

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

60
ответ дан 12 окт. '11 в 16:49
источник

SL4A

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

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

API

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

import android
droid = android.Android()

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

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

var droid = new Android();
droid.ttsSpeak('hello from js');

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

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

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

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

QPython

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

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

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


51
ответ дан 19 марта '12 в 18:45
источник

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

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

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

50
ответ дан 01 нояб. '08 в 23:29
источник

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

30
ответ дан 19 сент. '08 в 16:26
источник

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

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

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

Kivy


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

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

С Kivy собственный KV язык, вы можете легко конкретизировать и компоновать интерфейс графического интерфейса (это похоже на 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. Он может только улучшиться (с большей поддержкой и портированием библиотек/модулей), если у сообщества есть большой интерес.

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

23
ответ дан 13 янв. '15 в 5:08
источник

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

18
ответ дан 12 июня '13 в 22:46
источник

На веб-сайте Python для android:

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

17
ответ дан 09 янв. '12 в 7:46
источник

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

Это встроенное прямое интерпретатор Python в apk приложения.

14
ответ дан 09 мая '12 в 18:44
источник

Вы можете запустить свой код Python с помощью sl4a. sl4a поддерживает Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl и shell script.

Вы можете узнать примеры p440 Python.

8
ответ дан 11 марта '13 в 12:36
источник

Существует несколько способов использования Python на Android.

BeeWare - это набор инструментов для создания пользовательских интерфейсов

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

Kivy - это кросс-платформенный инструментарий пользовательского интерфейса на основе OpenGL.

pyqtdeploy - это инструмент для развертывания приложений PyQt.

QPython - это среда и среда разработки script на устройстве.

SL4A (Scripting Layer для Android), первоначально названный ASE (среда разработки скриптов Android), является набор "фасадов", которые предоставляют значительно упрощенное подмножество API Android.

PySide (привязка Python для инструментария Qt) имеет некоторую предварительную поддержку для Android.

Хотя основным языком программирования Android является Java, на платформе нет известного порта Jython. Поддержка Android в BeeWare достигается с помощью VOC - инструмента, который компилирует исходный код Python в файлы классов Java. Это позволяет выполнять код Python как родной двоичный файл на JVM. https://wiki.python.org/moin/Android

8
ответ дан 23 янв. '18 в 14:58
источник

Кроме того, python-on-a-chip может запускать mosync: группа google

7
ответ дан 29 марта '11 в 19:42
источник

Другим вариантом, если вы ищете 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 и получите .so или .a

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

6
ответ дан 25 февр. '15 в 16:04
источник

Вы можете использовать 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

6
ответ дан 20 янв. '17 в 14:36
источник

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

В настоящий момент это похоже на kludge, но в конечном итоге может стать жизнеспособным путем.

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

6
ответ дан 06 окт. '14 в 17:59
источник

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

ссылка Playstore

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

packages install python

Playstore Link

5
ответ дан 15 апр. '17 в 17:09
источник

Вы можете использовать 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

4
ответ дан 16 сент. '16 в 5:41
источник

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

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

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

3
ответ дан 18 мая '15 в 4:56
источник

Chaquopy

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

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

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

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

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

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

1
ответ дан 16 февр. '18 в 20:12
источник

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

0
ответ дан 12 янв. '18 в 21:56
источник

Вы можете использовать SL4A.

Загрузить SL4A

Вот базовая инструкция для запроса python на android.
1. Загрузите приложение SL4A, например, sl4a-r6.1.1-arm-debug.apk
2. Загрузите приложение Py4A, например PythonForAndroid-debug.apk
3. Включите "Неизвестные источники" в настройках вашего устройства.

0
ответ дан 08 янв. '18 в 14:02
источник

Другие вопросы по меткам или Задайте вопрос