Відповіді:
Одним із способів є використання Kivy :
Бібліотека Python з відкритим кодом для швидкого розвитку додатків, які використовують інноваційні користувальницькі інтерфейси, такі як додатки для багатьох дотиків.
Kivy працює на Linux, Windows, OS X, Android та iOS. Ви можете запустити один і той же [python] код на всіх підтримуваних платформах.
Існує також новий проект Android Scripting Environment (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)
import android as a;d=a.Android();d.startActivity('android.intent.action.VIEW',"http://books.google.com?q=%d"%int(d.scanBarcode()['result']['SCAN_RESULT']))
Pygame - це 2D ігровий движок для Python (на робочому столі), який популярний серед нових програмістів. Pygame Subset для Android описує себе як ...
... порт підмножини функціональності Pygame до платформи Android. Мета проекту - дозволити створення ігор для Android, а також полегшити перенесення ігор з платформ, подібних до ПК, на Android.
Приклади включають повну гру, упаковану як APK, що досить цікаво.
У моєму блозі є інструкції та виправлення для крос-компіляції Python 2.7.2 для Android.
Я також відкрив джерело Ignifuga , мій 2D Game Engine. Це на основі Python / SDL, і він перетинає компіляції для Android. Навіть якщо ви не використовуєте його для ігор, ви можете отримати корисні ідеї з коду чи утиліти для побудови (на ім’я Шафер , за Тімом ... ви знаєте, хто).
SL4A робить те, що ви хочете. Ви можете легко встановити його безпосередньо на свій пристрій зі свого сайту, і він не потребує root.
Він підтримує різні мови. Пітон - найзріліший. За замовчуванням він використовує Python 2.6, але є 3.2 порт, який ви можете використовувати замість цього. Я використовував цей порт для всіляких речей на Galaxy S2, і він прекрасно працював.
SL4A надає порт їх android
бібліотеки для кожної підтримуваної мови. Бібліотека забезпечує інтерфейс до базового API Android через один 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");
Для користувацьких інтерфейсів у вас є три варіанти:
Ви можете змішувати параметри, так що ви можете мати перегляд веб-сторінки для основного інтерфейсу та все ж використовувати вбудовані діалоги.
Існує сторонній проект під назвою QPython . Він базується на SL4A і додає деякі інші корисні речі.
QPython надає приємніший інтерфейс користувача для управління вашою установкою і включає невеликий редактор коду сенсорного екрану, оболонку Python та оболонку PIP для управління пакетами. Вони також мають порт Python 3. Обидві версії доступні в магазині Play, безкоштовно. QPython також поєднує бібліотеки з безлічі Python для проектів Android, включаючи Kivy, тому це не лише SL4A.
Зауважте, що QPython все ще розробляє свою вилку SL4A (правда, не дуже чесно). Сам головний проект SL4A майже загинув.
Як любитель Python та програміст Android, мені сумно сказати, що це не гарний шлях. Є дві проблеми:
Одна з проблем полягає в тому, що для інструментів розробки Android існує набагато більше, ніж просто мова програмування. Для налаштування дисплея, як і в HTML, використовується файли XML. Вбудовані Java-об’єкти інтегровані в цей XML-макет, і це набагато простіше, ніж писати ваш код, щоб перейти від логіки до растрової карти.
Інша проблема полягає в тому, що G1 (і, ймовірно, інші Android-пристрої на найближчий час) не такі швидкі. Процесори 200 МГц і оперативна пам’ять дуже обмежені. Навіть на Java вам потрібно зробити пристойну кількість переписування, щоб уникнути створення більше об'єктів, якщо ви хочете зробити додаток ідеально рівним. На мобільних пристроях Python деякий час буде занадто повільним.
Я хотів додати те, що @JohnMudd написав про Ківі. Минуло роки з описуваної ним ситуації, і Ківі істотно розвинувся.
Найбільшою точкою продажу Kivy, на мою думку, є його сумісність між платформами. Ви можете кодувати та протестувати все, використовуючи будь-яке середовище робочого столу (Windows / * nix тощо), а потім пакувати свою програму для різних платформ, включаючи Android, iOS, MacOS та Windows (хоча програмам часто не вистачає назви).
Завдяки власній мові KV , ви можете легко кодувати та створювати інтерфейс GUI легко (це як Java XML, але замість TextView тощо. У KV є свій власний ui.widgets
аналогічний переклад), що, на мою думку, досить легко прийняти.
В даний час Buildozer і python-for-android є найбільш рекомендованими інструментами для створення та упаковки ваших програм. Я спробував їх обидва і можу твердо сказати, що вони створюють Android-програми з Python вітерцем. Їх путівники також добре задокументовані.
iOS - ще одна велика точка продажу Kivy. Ви можете використовувати ту саму базу коду з кількома змінами, необхідними за допомогою інструментів kivy-ios Homebrew, хоча для збірки потрібен Xcode перед запуском на своїх пристроях (AFAIK iOS Simulator в Xcode в даний час не працює для збірки архітектури x86) . Також є деякі проблеми залежності, які потрібно вручну скласти і вирішити в Xcode, щоб мати успішне складання, але їх було б не надто складно вирішити, і люди в Kivy Google Group теж дуже корисні.
З урахуванням сказаного, у користувачів, які володіють хорошими знаннями Python, не повинно бути проблем зібрати основи швидко.
Якщо ви використовуєте Kivy для більш серйозних проектів, ви можете виявити існуючі модулі незадовільними. Однак є деякі ефективні рішення. З ( пізніше працює) pyjnius для Android та pyobjus користувачі тепер можуть отримувати доступ до класів Java / Objective-C для управління деякими з рідних API.
ScreenManager
оскільки це заощадить ваші тони часу. Також порада - прочитати їхній список розсилки - купу знаючих людей, які бажають вам допомогти.
Ви можете використовувати додаток Termux , який забезпечує POSIX середовище для Android, щоб встановити Python.
Зауважте, що apt install python
встановіть Python3 на Termux. Для Python2 потрібно використовувати apt install python2
.
Наразі не так, і вам би пощастило незабаром змусити Jython працювати. Якщо ви плануєте розпочати свою розробку зараз, вам би краще було лише дотримуватися Java.
Використовуючи SL4A (про який уже згадувалося в інших відповідях), ви можете запустити повнорозмірний екземпляр web2py ( ймовірно, інші кандидати в веб-рамки python ). SL4A не дозволяє виконувати вбудовані компоненти інтерфейсу користувача (кнопки, смуги прокрутки тощо), але він підтримує WebViews . В основному WebView - це не що інше, як смугастий веб-браузер, вказаний на фіксовану адресу. Я вважаю, що в нашому додатку Gmail використовується веб-перегляд, а не звичайний маршрут віджетів.
Цей маршрут мав би кілька цікавих особливостей:
Я використовую додаток QPython . Це безкоштовно і включає редактор коду, інтерактивний перекладач та менеджер пакунків, що дозволяє створювати та виконувати програми Python безпосередньо на своєму пристрої.
З сайту Python для android :
Python for android - це проект зі створення власного дистрибутива Python, включаючи потрібні модулі, та створення apk, включаючи python, libs та вашу програму.
Chaquopy - плагін для системи побудови на базі Gradle Android Studio. Основна увага приділяється тісній інтеграції зі стандартними засобами розробки Android.
Він надає повний API для виклику Java з Python або Python з Java , що дозволяє розробнику використовувати ту мову, яка найкраща для кожного компонента їх програми.
Він може автоматично завантажувати пакети PyPI і вбудовувати їх у додаток, включаючи вибрані натільні пакети, такі як NumPy.
Він надає повний доступ до всіх API API від Python, включаючи нативний інструментарій користувальницького інтерфейсу ( наприклад, чистий Python-активність ).
Це комерційний продукт, але він безкоштовний для використання з відкритим кодом і завжди залишатиметься таким.
(Я творець цього продукту.)
Ще одна спроба: https://code.google.com/p/android-python27/
Цей вбудовується безпосередньо інтерпретатор Python у вашу програму apk.
Ось кілька інструментів, перелічених на офіційному веб-сайті python
У playstore є додаток під назвою QPython3, який можна використовувати як для редагування, так і для запуску сценарію python.
Ще одне додаток під назвою Termux, в якому ви можете встановити python за допомогою команди
pkg install python
Якщо ви хочете розробити додатки, існує Python Android Scripting Layer ( 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.
Ви також можете перевірити PySide для Android , що насправді є зв'язками Python для Qt 4.
Існує платформа під назвою PyMob, де програми можна записати чисто в Python, а потік інструментів компілятора (PyMob) перетворює їх у вихідні вихідні коди для різних платформ.
Також перевірте python-for-android
python-for-android is an open source build tool to let you package Python code into standalone android APKs. These can be passed around, installed, or uploaded to marketplaces such as the Play Store just like any other Android app. This tool was originally developed for the Kivy cross-platform graphical framework, but now supports multiple bootstraps and can be easily extended to package other types of Python apps for Android.
Спробуйте Chaquopy A Python SDK для Android
Ендд ... Бджола
BeeWare allows you to write your app in Python and release it on multiple platforms. No need to rewrite the app in multiple programming languages. It means no issues with build tools, environments, compatibility, etc.
Ви можете використовувати 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
Ще один варіант, якщо ви шукаєте 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
В даний час я використовую це для запуску сирого Python на Android-пристроях. За допомогою декількох модифікацій файлів збірки ви також можете зробити x86 та Armeabi 64 біт
Ви не бачили цього тут, але це можна зробити за допомогою Pyside та Qt тепер, коли Qt працює на Android завдяки Necessitas.
На сьогодні це схоже на безладдя, але зрештою це може бути життєздатним маршрутом ...
Ще одним варіантом, здається, є pyqtdeploy, який посилається на документи:
інструмент, який у поєднанні з іншими інструментами, що надаються з Qt, дозволяє розгортати програми PyQt4 та PyQt5, написані з Python v2.7 або Python v3.3 або новіших версій. Він підтримує розгортання на настільних платформах (Linux, Windows та OS X) та на мобільних платформах (iOS та Android).
Згідно з розгортанням програми PyQt5 на Android через pyqtdeploy та Qt5, він активно розробляється, хоча важко знайти приклади працюючих додатків Android або підручника про те, як перехресно скласти всі необхідні бібліотеки на Android. Це цікавий проект, про який потрібно пам’ятати!
Погляньте на BeeWare . На даний момент відповіді на це питання він ще знаходиться на початку розвитку. Його мета полягає в тому, щоб мати можливість створювати вбудовані програми з Python для всіх підтримуваних операційних систем, включаючи Android.
Перевірте enaml-native, який бере концепцію нативної реакції та застосовує її до python.
Він дозволяє користувачам створювати додатки з вбудованими віджетами Android і надає API для використання андроїд і java-бібліотеки з python.
Він також інтегрується з android-studio і ділиться кількома приємними розробниками, такими як перезавантаження коду та віддалена налагодження.