Czy istnieje sposób na uruchamianie Pythona na Androidzie?
Pracujemy nad wersją S60 i tą platformą ma ładne Python API..
Jednak nie ma nic oficjalnego o Pythonie na Androida, ale ponieważJython istnieje, czy istnieje sposób, aby wąż i robot współpracowali ze sobą??
23 answers
Jednym ze sposobów jest użycie Kivy :
Otwarta Biblioteka Pythona do szybkiego rozwoju aplikacji które wykorzystują innowacyjne interfejsy użytkownika, takie jak aplikacje multi-touch.
Kivy działa na systemach Linux, Windows, OS X, Android i iOS. Możesz uruchomić ten sam kod [python] na wszystkich obsługiwanych platformach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-31 22:09:40
Istnieje również nowy projekt Android Scripting Environment (ASE/SL4A). Wygląda niesamowicie i ma pewną integrację z natywnymi komponentami Androida.
Uwaga: już nie pod "aktywnym rozwojem" , ale niektóre widelce mogą być.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-19 04:49:05
Tak! : Android Scripting Environment
Przykład via Matt Cutts via SL4A -- " oto skaner kodów kreskowych napisany w sześciu liniach kodu Pythona:
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)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-15 02:29:49
Pygame dla Androida
Pygame jest silnikiem gry 2D dla Pythona (na pulpicie), który jest popularny wśród nowych programistów. [[5]}podzbiór Pygame dla Androida opisuje się jako...
...port podzbioru funkcjonalności Pygame na platformę Android. Celem projektu jest umożliwienie tworzenia gier specyficznych dla Androida i ułatwienie przenoszenia gier z platform PC-podobnych do Androida.
Przykłady obejmują pełną grę zapakowany jako APK, co jest dość interesujące.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-12 23:54:37
Jako miłośnik Pythona i programista Androida, z przykrością stwierdzam, że nie jest to dobry sposób. Są dwa problemy:
Jeden problem polega na tym, że w narzędziach programistycznych Androida jest o wiele więcej niż tylko język programowania. Wiele grafik na Androida zawiera pliki XML do konfiguracji wyświetlacza, podobnie jak HTML. Wbudowane obiekty java są zintegrowane z tym układem XML, a przejście z logiki na bitmapę jest o wiele łatwiejsze niż pisanie kodu.
Inne problem polega na tym, że G1 (i prawdopodobnie inne urządzenia z Androidem w najbliższej przyszłości) nie są tak szybkie. Procesory 200 MHz i pamięć RAM są bardzo ograniczone. Nawet w Javie, trzeba zrobić przyzwoitą ilość przepisywania-aby-uniknąć-więcej-tworzenia obiektów, jeśli chcesz, aby Twoja aplikacja idealnie gładka. Python będzie przez jakiś czas zbyt wolny na urządzeniach mobilnych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-07 18:44:58
Warstwa skryptów dla Androida
SL4A robi co chcesz. Możesz łatwo zainstalować go bezpośrednio na urządzeniu z ich strony i nie potrzebujesz roota.
Obsługuje wiele języków. Pyton jest najbardziej dojrzały. Domyślnie używa Pythona 2.6, ale istnieje Port 3.2, którego możesz użyć zamiast niego. Użyłem tego portu do wszelkiego rodzaju rzeczy na Galaxy S2 i działało dobrze.
API
SL4A udostępnia port swojej biblioteki android
dla każdego obsługiwany język. Biblioteka udostępnia interfejs do bazowego interfejsu API systemu Android za pośrednictwem jednego obiektu Android
.
from android import Android
droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade
Każdy język ma prawie to samo API. Można nawet użyć JavaScript API wewnątrz webviews.
let droid = new Android();
droid.ttsSpeak("hello from js");
Interfejsy Użytkownika
Dla interfejsów użytkownika, masz trzy opcje:
- możesz łatwo korzystać z ogólnych, natywnych dialogów i menu poprzez API. Jest to dobre dla dialogów potwierdzenia i innych podstawowych użytkowników wejścia.
- można również otworzyć webview z poziomu skryptu Pythona, a następnie użyć HTML5 dla interfejsu użytkownika. Gdy używasz webviews z Pythona, możesz przekazać wiadomości tam i z powrotem, między webview a procesem Pythona, który / align = "left" / Interfejs użytkownika nie będzie natywny, ale nadal jest to dobra opcja mam.
- istnieje jakieś wsparcie dla natywnych interfejsów użytkownika Androida, ale nie jestem jasne, jak dobrze to działa; po prostu nigdy go nie używałem.
Można mieszać opcje, dzięki czemu możesz mieć Widok sieci Web dla głównego interfejsu i nadal korzystać z natywnych dialogów.
QPython
Istnieje projekt strony trzeciej o nazwie QPython . Opiera się na SL4A i wrzuca kilka innych przydatnych rzeczy.
QPython zapewnia ładniejszy interfejs użytkownika do zarządzania instalacją i zawiera mały edytor kodu Z Ekranem dotykowym, powłokę Pythona i powłokę PIP do zarządzania pakietami. Mają również Port Python 3. Obie wersje są dostępne w Sklepie Play, za darmo z zarzutem. QPython zawiera również pakiety bibliotek z kilku projektów Pythona na Androida, w tym Kivy, więc nie jest to tylko SL4A.]}
Zauważ, że QPython nadal rozwija widelec SL4A(choć szczerze mówiąc niewiele). Główny projekt SL4A jest prawie martwy.
Przydatne Linki
- projekt SL4A (teraz na Githubie): https://github.com/damonkohler/sl4a
- SL4A Python 3 Port: https://code.google.com/p/python-for-android/wiki/Python3
- QPython Project: http://qpython.com
- Learn SL4A (Tutorialspoint): https://www.tutorialspoint.com/sl4a/index.htm
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-12 02:28:19
Cross-Compilation & Ignifuga
Mój blog ma instrukcje i łatkę do kompilacji Pythona 2.7.2 dla Androida.
[[2]}mam również open source Ignifuga , mój silnik gry 2D. Jest oparty na Pythonie / SDL i krzyżuje się z Androidem. Nawet jeśli nie używasz go do gier, możesz uzyskać przydatne pomysły z narzędzia code lub builder (nazwanego Schafer, po Timie... wiesz kto).Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-12 23:59:45
Kivy
Chciałem dodać do tego, co @JohnMudd napisał o Kivy. Od opisanej przez niego sytuacji minęło wiele lat, a Kivy znacznie się rozwinął.
Moim zdaniem największą zaletą Kivy jest kompatybilność między platformami. Możesz kodować i testować wszystko za pomocą dowolnego środowiska graficznego (Windows / * nix itp.), a następnie spakuj aplikację na wiele różnych platform, w tym Android, iOS, MacOS i Windows (choć aplikacje często nie mają natywnego wyglądu i feel).
Za pomocą własnego języka KV Kivy można łatwo kodować i budować interfejs GUI (jest to tak jak Java XML, ale zamiast TextView itp., KV ma swój własny ui.widgets
dla podobnego tłumaczenia), który jest moim zdaniem dość łatwy do przyjęcia.
Obecnie Buildozer i python-for-android są najbardziej zalecanymi narzędziami do tworzenia i pakowania aplikacji. Próbowałem ich obu i mogę śmiało powiedzieć, że sprawiają, że tworzenie aplikacji na Androida za pomocą Pythona jest proste. Ich przewodniki są również dobrze udokumentowane.
IOS to kolejny ważny punkt sprzedaży Kivy. Możesz użyć tej samej bazy kodu z kilkoma zmianami wymaganymi przez Kivy-iOS Homebrew tools, chociaż Xcode jest wymagany do kompilacji, przed uruchomieniem na ich urządzeniach(AFAIK symulator iOS w Xcode obecnie nie działa dla kompilacji architektury x86). Istnieją również pewne problemy z zależnościami, które muszą być ręcznie skompilowane i majstrował wokół w Xcode mieć pomyślny kompilacji, ale oni nie byłoby to zbyt trudne do rozwiązania, a ludzie z Kivy Google Group są naprawdę pomocni.Biorąc to wszystko pod uwagę, użytkownicy z dobrą znajomością Pythona nie powinni mieć problemu z szybkim opanowaniem podstaw.
Jeśli używasz Kivy do poważniejszych projektów, istniejące moduły mogą okazać się niezadowalające. Istnieją jednak pewne wykonalne rozwiązania. Z (work in progress) pyjnius dla Androida i pyobjus, użytkownicy mogą teraz uzyskać dostęp do Java / Objective-C klasy do kontrolowania niektórych natywnych interfejsów API.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 00:18:07
Termux
Możesz użyć aplikacji Termux, która zapewnia środowisko POSIX dla Androida, aby zainstalować Pythona.
zauważ, że apt install python
zainstaluje Python3 na Termux. Dla Python2, musisz użyć apt install python2
.
- niektóre dema: https://www.youtube.com/watch?v=fqqsl72mASE
- projekt GitHub: https://github.com/termux
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 00:27:50
Nie w tej chwili i będziesz miał szczęście, że Jython wkrótce wróci do pracy. Jeśli planujesz rozpocząć swój rozwój już teraz, lepiej byłoby trzymać się Javy na razie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-23 14:58:45
Używając SL4A (o którym już wspomniano w innych odpowiedziach), możesz Uruchomić pełnowymiarową instancję web2py (inne Python web Framework są prawdopodobnie kandydatami). SL4A nie pozwala na tworzenie natywnych komponentów interfejsu użytkownika( przycisków, pasków przewijania itp.), ale obsługuje WebViews . WebView to w zasadzie nic więcej niż paski w dół przeglądarki internetowej skierowanej na stały adres. Uważam, że natywna aplikacja Gmail używa WebView zamiast idąc zwykłą trasą widgetów.
Ta trasa miałaby kilka ciekawych cech:
- W przypadku większości frameworków internetowych Pythona można tworzyć i testować bez użycia urządzenia z Androidem lub emulatora Androida.
- jakikolwiek Kod Pythona, który napiszesz dla telefonu, może być również umieszczony na publicznym serwerze WWW z bardzo małą (jeśli w ogóle) modyfikacją.
- możesz wykorzystać wszystkie szalone rzeczy internetowe tam: query, HTML5, CSS3, itd.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-26 05:48:09
QPython
Używam aplikacji QPython . Jest bezpłatny i zawiera edytor kodu, interaktywny interpreter i menedżera pakietów, co pozwala na tworzenie i wykonywanie programów Pythona bezpośrednio na urządzeniu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 00:23:46
From the Python for android site:
Python dla Androida to projekt do stworzenia własnej dystrybucji Pythona, w tym modułów, które chcesz, i utworzyć apk, w tym python, libs, i aplikacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-09 04:46:53
Proszę. są to niektóre narzędzia wymienione na oficjalnej stronie Pythona
W playstore znajduje się aplikacja o nazwie QPython3 , która może być używana zarówno do edycji, jak i uruchamiania skryptów Pythona.
Kolejna aplikacja o nazwie Termux , w której można zainstalować Pythona za pomocą polecenia
pkg install python
Jeśli chcesz tworzyć aplikacje, Istnieje 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.
Możesz również sprawdzić PySide dla Androida, co jest właściwie wiązaniami Pythona dla Qt 4.
Jest platforma o nazwie PyMob gdzie aplikacje mogą być pisane wyłącznie w Pythonie, a kompilator tool-flow (PyMob) konwertuje je w natywne kody źródłowe dla różnych platform.
Zobacz też 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.
Spróbuj Chaquopy Python SDK dla Androida
I.. BeeWare
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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-13 05:55:33
Chaquopy
Chaquopy to wtyczka do systemu Android Studio Gradle. Skupia się na ścisłej integracji ze standardowymi narzędziami programistycznymi Androida.
Zapewnia kompletne interfejsy API do wywoływania Javy z Pythona lub Pythona z Javy , umożliwiając programistom używanie dowolnego języka dla każdego komponentu ich aplikacji.
Może automatycznie pobierać Pakiety PyPI i budować je w aplikacji, w tym wybranych pakietów natywnych, takich jak NumPy.
Umożliwia pełny dostęp do wszystkich API Androida z Pythona, w tym natywnego zestawu narzędzi interfejsu użytkownika (przykład aktywności pure-Python ).
Jest to produkt komercyjny, ale jest darmowy do użytku open-source i zawsze tak pozostanie.
(jestem twórcą tego produktu.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-16 17:12:15
Kolejna próba: https://code.google.com/p/android-python27/
Ten osadza bezpośrednio interpreter Pythona w aplikacji apk.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-09 15:44:49
Możesz uruchomić swój kod Pythona używając sl4a. sl4a obsługuje Python, Perl, JRuby, Lua , BeanShell, JavaScript, Tcl i skrypt powłoki.
Możesz nauczyć się sl4a Python Examples.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-13 00:34:26
Możesz użyć QPython :
Posiada konsolę Pythona, Edytor, a także Zarządzanie pakietami / instalatory
Jest to projekt open source z implementacjami Pythona 2 i Pythona 3. Możesz pobrać źródło i Androida .pliki apk bezpośrednio z github.
QPython 2: https://github.com/qpython-android/qpython/releases
QPython 3: https://github.com/qpython-android/qpython3/releases
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-16 02:41:18
Inną opcją, jeśli szukasz 3.4.2 lub 3.5.1, jest to archiwum na Githubie.
Python3-Android 3.4.2 lub Python3-Android 3.5.1
Obecnie obsługuje Python 3.4.2 lub 3.5.1 i wersję 10D NDK. Może również obsługiwać 3.3 i 9c, 11c i 12
Fajnie, że po prostu go ściągasz, uruchamiasz make i dostajesz .so lub the .a
Obecnie używam tego do uruchamiania surowego Pythona na urządzeniach z Androidem. Z kilkoma modyfikacjami do pliki build można również zrobić x86 i armeabi 64 bit
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-11 13:10:34
Nie widziałem tego tutaj, ale można to zrobić z Pyside i Qt teraz, że Qt działa na Androidzie dzięki Necessitas.
W tej chwili wydaje się to dość kludge, ale może być realna trasa w końcu...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-06 14:59:14
Jeszcze jedną opcją wydaje się być pyqtdeploy który cytując docs jest:
Narzędzie, które w połączeniu z innymi narzędziami dostarczonymi z Qt umożliwia wdrażanie aplikacji PyQt4 i PyQt5 napisanych w języku Python v2. 7 lub Python V3.3 lub nowszy. Obsługuje wdrażanie na pulpicie platformy (Linux, Windows i OS X) oraz na platformy mobilne (iOS i Android).
Zgodnie z wdrażanie aplikacji PyQt5 na Androida za pośrednictwem pyqtdeploy i Qt5 jest aktywnie rozwijany, chociaż trudno jest znaleźć przykłady działających aplikacji na Androida lub samouczka, jak skompilować wszystkie wymagane biblioteki na Androida. Jest to ciekawy projekt, o którym należy pamiętać!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:36
Spójrz na BeeWare . Znacznie wzrosła. Jest laureatem PSF (Python Software Foundation) Education Grant.
Celem Beeware jest tworzenie natywnych aplikacji z Pythonem dla wszystkich obsługiwanych systemów operacyjnych, w tym Androida.
Oficjalna Strona: Beeware
Github Repo: https://github.com/beeware
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-24 21:28:26
Sprawdź enaml-native , który wykorzystuje koncepcję React-native i stosuje ją do Pythona.
Pozwala użytkownikom tworzyć aplikacje z natywnymi widżetami Androida i zapewnia API do korzystania z bibliotek android i java z Pythona.
Integruje się również z android-studio i udostępnia kilka ciekawych funkcji programistycznych Reacta, takich jak przeładowywanie kodu i zdalne debugowanie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-20 16:59:32