Вопрос

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

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

Это было полезно?

Решение

Один из способов — использовать Киви:

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

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

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

Другие советы

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

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

Да!: Среда сценариев 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/

РЕДАКТИРОВАТЬ:Я открыл исходный код Игнифуга, мой 2D-игровой движок, он основан на Python/SDL и выполняет кросс-компиляцию для Android.Даже если вы не используете его для игр, вы можете почерпнуть полезные идеи из кода и утилиты сборки (названной Schafer в честь Тима... сами знаете кого).

Уровень сценариев для Android

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

Он поддерживает ряд языков.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.Вы даже можете использовать API JavaScript внутри веб-просмотров.

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

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

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

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

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

QПитон

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

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

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

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

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

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

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

Киви


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Из Питон для Android сайт:

Python для Android — это проект по созданию собственного дистрибутива Python, включая нужные вам модули, а также созданию APK-файла, включающего Python, библиотеки и ваше приложение.

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

Этот вариант напрямую встраивает интерпретатор Python в APK-файл вашего приложения.

Вы можете запустить свой код Python, используя sl4a.sl4a поддерживает Python, Перл, ДжРубин, Луа, БинШелл, JavaScript, Ткл, и сценарий оболочки.

Вы можете изучить sl4a Примеры Python.

Существует также Python-на-чипе, возможно, использующий mosync: группа Google

Чакопи

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

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

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

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

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

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

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

Ссылка на игровой магазин

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

pkg install python

Ссылка на игровой магазин

Если вы хотите разрабатывать приложения, есть Уровень сценариев Python для Android (SL4A) .

The Scripting Layer for Android, SL4A, is an open source application that allows programs written in a range of interpreted languages to run on Android. It also provides a high level API that allows these programs to interact with the Android device, making it easy to do stuff like accessing sensor data, sending an SMS, rendering user interfaces and so on.

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

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

http://qpython.com/

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

QПитон 2: https://github.com/qpython-android/qpython/releases

QПитон 3: https://github.com/qpython-android/qpython3/releases

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

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

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 и версию NDK 10d.Он также может поддерживать 3.3 и 9c, 11c и 12.

Это удобно тем, что вы просто загружаете его, запускаете make и получаете .so или .a.

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

Кажется, еще один вариант pyqtdeploy который цитирует документы:

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

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

Проверить эмаль-родная который берет концепцию реагирования и применяет ее к Python.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top