Мы работаем над версией S60, и на этой платформе есть хороший API Python.
Тем не менее, нет ничего официального в Python на Android, но поскольку Jython существует, есть способ позволить змее и робот работает вместе?
Один из способов - использовать Kivy:
Библиотека Python с открытым исходным кодом для быстрой разработки приложений которые используют инновационные пользовательские интерфейсы, такие как приложения с несколькими касаниями.
Kivy работает на Linux, Windows, OS X, Android и iOS. Вы можете запустить такой же код [python] на всех поддерживаемых платформах.
Существует также проект Android Scripting Environment (ASE/SL4A). Он выглядит потрясающе, и он имеет некоторую интеграцию с родными компонентами Android.
Примечание: больше не поддерживается "активная разработка", но некоторые вилки могут быть.
Пример через 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)
Там также SL4A, написанный сотрудниками Google.
" Pygame Subset для 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 (по имени Шафер, после Тима... вы знаете, кто).
В качестве Python любитель и Android-программист, мне грустно говорить, что это не очень хороший способ. Есть две проблемы.
Одна из проблем заключается в том, что для инструментов разработки Android существует намного больше, чем просто язык программирования. Большая часть графики Android включает файлы XML для настройки дисплея, аналогичные HTML. Встроенные Java-объекты действительно интегрированы с этим XML-макетом, и это намного проще, чем писать собственный код, чтобы перейти от логики к растровому изображению.
Другая проблема заключается в том, что G1 (и, вероятно, другие устройства Android для ближайшего будущего) действительно не так быстр. 200 МГц и RAM очень ограничены. Даже в Java вы должны сделать приличное количество переписывания, чтобы избежать создания большего количества объектов, если вы хотите сделать ваше приложение совершенно гладким. Python будет слишком медленным на некоторое время на мобильных устройствах.
Scripting Layer для Android делает то, что вы хотите. Вы можете легко установить его прямо на свое устройство со своего сайта и не нуждаться в корне.
Он поддерживает ряд языков; Python - самый зрелый. По умолчанию он использует Python 2.6, но есть 3.2 порт, который вы можете использовать вместо этого. Я использовал этот порт для всех вещей на Galaxy S2, и он отлично работал.
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');
Для пользовательских интерфейсов у вас есть три варианта:
Вы можете смешивать параметры, поэтому вы можете иметь веб-просмотр для основного интерфейса и по-прежнему использовать собственные диалоги.
Существует сторонний проект с именем QPython. Он основывается на SL4A и бросает некоторые полезные вещи.
QPython дает вам более удобный интерфейс для управления вашей установкой и включает в себя небольшой редактор кода сенсорного экрана, оболочку Python и оболочку PIP для управления пакетами. У них также есть порт Python 3. Обе версии доступны в Play Store бесплатно. QPython также связывает библиотеки из группы Python в проектах Android, включая Kivy, поэтому это не просто SL4A.
Обратите внимание, что QPython по-прежнему развивает свою вилку SL4A (хотя и не очень, если честно). Основной проект SL4A в значительной степени мертв.
В настоящий момент вам не повезло, что скоро Jython будет работать. Если вы планируете начать разработку сейчас, вам будет лучше с тем, чтобы просто придерживаться Java на данный момент.
Используя SL4A (который уже упоминался в других ответах), вы можете запустить полноэкранный web2py (другие веб-фреймы python также являются кандидатами). SL4A не позволяет вам создавать собственные компоненты пользовательского интерфейса (кнопки, полосы прокрутки и т.п.), Но поддерживает WebViews. WebView - это не что иное, как полосатый веб-браузер, указывающий на фиксированный адрес. Я считаю, что родное приложение Gmail использует WebView вместо обычного маршрута виджетов.
Этот маршрут будет иметь некоторые интересные функции:
Я хочу опубликовать это как расширение того, что уже ответил (@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 для мобильных/кросс-платформенных разработок.
Я использую приложение QPython. У него есть редактор, консоль, и вы можете запускать с ним свои программы Python. Приложение бесплатное, а ссылка http://qpython.com/.
На веб-сайте Python для android:
Python для android - это проект для создания собственного дистрибутива Python, включая модули, которые вы хотите, и создания apk, включая python, libs и ваше приложение.
Еще одна попытка: https://code.google.com/p/android-python27/
Это встроенное прямое интерпретатор Python в apk приложения.
Существует несколько способов использования 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
Кроме того, python-on-a-chip может запускать mosync: группа google
Вы можете использовать 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
Другим вариантом, если вы ищете 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-битным
Не видел, чтобы это было опубликовано здесь, но вы можете сделать это с Pyside и Qt теперь, когда Qt работает на Android благодаря Necessitas.
В настоящий момент это похоже на kludge, но в конечном итоге может стать жизнеспособным путем.
В playstore есть приложение под названием QPython3, которое может использоваться как для редактирования, так и для запуска python script.
Другое приложение под названием Termux, в котором вы можете установить python с помощью команды
packages install python
Вы можете использовать QPython:
У него есть консоль Python, редактор, а также управление пакетами/установщики
Это проект с открытым исходным кодом с реализациями 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
Еще один вариант - pyqtdeploy, который ссылается на документы:
инструмент, который в сочетании с другими инструментами, снабженными Qt, позволяет развертывание приложений PyQt4 и PyQt5, написанных на Python v2.7 или Python v3.3 или новее. Он поддерживает развертывание на рабочем столе платформ (Linux, Windows и OS X) и мобильных платформах (iOS и Android).
Согласно Развертывание приложения PyQt5 на Android через pyqtdeploy и Qt5, он активно развивается, хотя трудно найти примеры работающих приложений для Android или учебник о том, как переходить -компилировать все необходимые библиотеки для Android. Это интересный проект, который нужно помнить, хотя!
Chaquopy - это плагин для системы сборки на базе Android Studio Gradle. Основное внимание уделяется тесной интеграции со стандартными инструментами разработки Android.
Он предоставляет полный API для вызова Java из Python или Python из Java, позволяя разработчику использовать любой язык для каждого компонента своего приложения.
Он может автоматически загружать пакеты PyPI и создавать их в приложении, включая выбранные собственные пакеты, такие как NumPy.
Он обеспечивает полный доступ ко всем API Android от Python, включая набор инструментов пользовательского интерфейса (пример чистой активности Python).
Это коммерческий продукт, но он бесплатный для использования с открытым исходным кодом и всегда будет оставаться таким.
(Я являюсь создателем этого продукта.)
Взгляните на BeeWare. В момент ответа на этот вопрос он все еще находится в раннем развитии. Он нацелен на создание собственных приложений с Python для всех поддерживаемых операционных систем, включая Android.
Вы можете использовать SL4A.
Загрузить SL4A
Вот базовая инструкция для запроса python на android.
1. Загрузите приложение SL4A, например, sl4a-r6.1.1-arm-debug.apk
2. Загрузите приложение Py4A, например PythonForAndroid-debug.apk
3. Включите "Неизвестные источники" в настройках вашего устройства.