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

голоса
1k

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

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

Задан 19/09/2008 в 14:21
источник пользователем
На других языках...                            


25 ответов

голоса
788

Один из способов заключается в использовании Kivy :

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

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

Kivy Витрина приложение

Ответил 18/11/2011 d 22:49
источник пользователем

голоса
298

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

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

Ответил 10/06/2009 d 06:24
источник пользователем

голоса
177

ДА!

Пример через Мэтт Каттс через 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)
Ответил 10/06/2009 d 06:13
источник пользователем

голоса
73

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

Ответил 26/05/2011 d 10:21
источник пользователем

голоса
70

«The Pygame Subset для Android является портом подмножество функциональности Pygame на Android платформы. Целью проекта является обеспечение создания Android-конкретных игр, а также для облегчения портирования игр от PC-подобных платформ Android «.

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

Ответил 28/01/2011 d 13:18
источник пользователем

голоса
63

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

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

Ответил 12/10/2011 d 14:49
источник пользователем

голоса
57

Scripting Layer для Android

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

Он поддерживает широкий спектр языков. 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 внутри webviews.

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

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

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

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

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

QPython

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

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

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

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

Ответил 19/03/2012 d 16:45
источник пользователем

голоса
54

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

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

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

Ответил 01/11/2008 d 21:29
источник пользователем

голоса
31

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

Ответил 19/09/2008 d 14:26
источник пользователем

голоса
28

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

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

  • В случае большинства питоных фреймворк, вы могли бы на самом деле разработку и тестирование без использования андроида устройства или андроида эмулятор.
  • Независимо от кода Python вы в конечном итоге писать для телефона также можно поместить на общедоступном веб-сервере с очень мало (если таковые имеются) модификации.
  • Вы могли бы воспользоваться все сумасшедшие веб вещи там: запрос, HTML5, CSS3 и т.д.
Ответил 06/01/2012 d 15:34
источник пользователем

голоса
26

Kivy


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

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

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

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

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

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

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

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

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

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

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

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

Ответил 13/01/2015 d 02:08
источник пользователем

голоса
19

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

Ответил 12/06/2013 d 20:46
источник пользователем

голоса
17

Из Python для андроида сайта:

Python для Android является проектом, чтобы создать свой собственный дистрибутив Python, включая модули, которые вы хотите, и создать APK, включая питон, ЛИЭС и приложение.

Ответил 09/01/2012 d 05:46
источник пользователем

голоса
16

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

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

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

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

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

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

SL4A (сценарии слой для Android), первоначально названный УСИ (Androidсреда сценариев), представляет собой набор «фасады»которые выставляют сильно упрощенное подмножество Android API.

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

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

Ответил 23/01/2018 d 11:58
источник пользователем

голоса
13

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

Это один встраивать непосредственно Python interpretter в вашем приложении APK.

Ответил 09/05/2012 d 16:44
источник пользователем

голоса
8

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

Обратите внимание, что меткий установить питон установить Python 3. для питона 2 вам следует позвонить склонным установить python2.

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

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

Ответил 20/01/2017 d 11:36
источник пользователем

голоса
8

Вы можете запустить свой код на Python с использованием SL4A . SL4A поддерживает Python, Perl , JRuby , Lua , BeanShell, JavaScript, Tcl , и скрипт.

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

Ответил 11/03/2013 d 10:36
источник пользователем

голоса
8

Там же питон-на-чипе , возможно , работает MoSync: группа Google

Ответил 29/03/2011 d 17:42
источник пользователем

голоса
7

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

Python3-Android 3.4.2 или Python3-Android 3.5.1

В настоящее время она поддерживает Python 3.4.2 или 3.5.1 и версия NDK 10d. Он может также поддерживать 3,3 и 9с, 11с и 12

Это хорошо, что вы просто скачать его, запустить сделать и вы получите .so или .a

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

Ответил 25/02/2015 d 13:04
источник пользователем

голоса
6

Существует приложение под названием QPython3 в playstore, которые могут быть использованы как для редактирования и запущенного питон сценария.

Playstore ссылка

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

pkg install python

Playstore Ссылка

Ответил 15/04/2017 d 14:09
источник пользователем

голоса
6

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

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

http://qpython.com/

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

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

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

Ответил 16/09/2016 d 02:41
источник пользователем

голоса
6

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

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

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

Ответил 06/10/2014 d 15:59
источник пользователем

голоса
3

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

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

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

Ответил 18/05/2015 d 01:56
источник пользователем

голоса
1

Chaquopy

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

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

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

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

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

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

Ответил 16/02/2018 d 17:12
источник пользователем

голоса
0

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

Ответил 12/01/2018 d 18:56
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more