Odpowiedzi:
Jednym ze sposobów jest użycie Kivy :
Biblioteka Python typu open source do szybkiego tworzenia aplikacji korzystających z innowacyjnych interfejsów użytkownika, takich jak aplikacje wielodotykowe.
Kivy działa na systemach Linux, Windows, OS X, Android i iOS. Możesz uruchomić ten sam kod [python] na wszystkich obsługiwanych platformach.
Pojawił się także nowy projekt Android Scripting Environment (ASE / SL4A). Wygląda niesamowicie i ma pewną integrację z natywnymi komponentami Androida.
Uwaga: już nie w ramach „aktywnego rozwoju”, ale niektóre widelce mogą być.
Tak! : Środowisko skryptów Androida
Przykład za pośrednictwem Matta Cuttsa za pośrednictwem 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)
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 to silnik gier 2D dla Pythona (na komputery), który jest popularny wśród nowych programistów. Pygame Podzbiór dla Androida opisuje się jako ...
... port podzbioru funkcjonalności Pygame na platformę Android. Celem projektu jest umożliwienie tworzenia gier na Androida i ułatwienie przenoszenia gier z platform typu PC na Androida.
Przykłady obejmują kompletną grę spakowaną jako APK, co jest dość interesujące.
Mój blog zawiera instrukcje i łatkę do kompilacji krzyżowej Python 2.7.2 dla Androida.
Otworzyłem również źródłowy silnik gry Ignifuga . Jest oparty na Pythonie / SDL i kompiluje się na wiele różnych platform dla Androida. Nawet jeśli nie używasz go do gier, możesz uzyskać przydatne pomysły z kodu lub narzędzia konstruktora (o nazwie Schafer , od Tima ... wiesz, kto).
SL4A robi to, co chcesz. Możesz łatwo zainstalować go bezpośrednio na swoim urządzeniu z ich strony i nie potrzebujesz roota.
Obsługuje wiele języków. Python jest najbardziej dojrzały. Domyślnie używa Pythona 2.6, ale zamiast niego można użyć portu 3.2 . Użyłem tego portu do wszelkiego rodzaju rzeczy na Galaxy S2 i działało dobrze.
SL4A zapewnia port swojej android
biblioteki dla każdego obsługiwanego języka. Biblioteka zapewnia interfejs do bazowego interfejsu API Androida za pośrednictwem jednego Android
obiektu.
from android import Android
droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade
Każdy język ma prawie taki sam interfejs API. Możesz nawet używać JavaScript API w przeglądarkach internetowych.
let droid = new Android();
droid.ttsSpeak("hello from js");
W przypadku interfejsów użytkownika masz trzy opcje:
Możesz łączyć opcje, aby mieć widok główny interfejsu głównego i nadal korzystać z rodzimych dialogów.
Istnieje projekt innej firmy o nazwie QPython . Opiera się na SL4A i wrzuca inne przydatne rzeczy.
QPython zapewnia ładniejszy interfejs użytkownika do zarządzania instalacją i zawiera mały edytor kodu z ekranem dotykowym, powłokę Python i powłokę PIP do zarządzania pakietami. Mają także port Python 3. Obie wersje są dostępne bezpłatnie w Sklepie Play. QPython zawiera również biblioteki z wielu Pythona w projektach na Androida, w tym Kivy, więc nie jest to tylko SL4A.
Zauważ, że QPython wciąż rozwija swój widelec SL4A (choć nie jest to szczerze mówiąc). Sam główny projekt SL4A jest prawie martwy.
Jako miłośnik Pythona i programista Androida z przykrością stwierdzam, że nie jest to dobra droga. Istnieją dwa problemy:
Jednym z problemów jest to, że narzędzia programistyczne dla Androida mają znacznie więcej niż tylko język programowania. Wiele grafik na Androida wymaga plików XML do konfiguracji wyświetlania, podobnie jak HTML. Wbudowane obiekty Java są zintegrowane z tym układem XML i jest to o wiele łatwiejsze niż pisanie kodu, aby przejść z logiki do bitmapy.
Innym problemem jest to, ż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 musisz wykonać przyzwoitą ilość przepisywania, aby uniknąć tworzenia większej liczby obiektów, jeśli chcesz, aby aplikacja była idealnie płynna. Python będzie przez pewien czas zbyt wolny na urządzeniach mobilnych.
Chciałem dodać do tego, co @JohnMudd napisał o Kivy. Minęły lata od opisanej przez niego sytuacji, a Kivy ewoluował znacznie.
Moim zdaniem największym punktem sprzedaży Kivy jest kompatybilność między platformami. Możesz kodować i testować wszystko za pomocą dowolnego środowiska pulpitu (Windows / * nix itp.), A następnie spakować aplikację na wiele różnych platform, w tym Android, iOS, MacOS i Windows (chociaż aplikacje często nie mają natywnego wyglądu).
Dzięki własnemu językowi KV Kivy możesz łatwo kodować i budować interfejs GUI (jest to tak jak Java XML, ale zamiast TextView itp. KV ma własne ui.widgets
podobne tłumaczenie), co moim zdaniem jest dość łatwe do przyjęcia.
Obecnie Buildozer i Python-for-Android to najbardziej zalecane narzędzia do tworzenia i pakowania aplikacji. Wypróbowałem je oba i mogę zdecydowanie powiedzieć, że dzięki nim tworzenie aplikacji na Androida w Pythonie jest dziecinnie proste. Ich przewodniki są również dobrze udokumentowane.
iOS to kolejny duży punkt sprzedaży Kivy. Możesz użyć tej samej bazy kodu z kilkoma zmianami wymaganymi za pomocą narzędzi kivy-ios Homebrew, 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 należy ręcznie skompilować i bawić w Xcode, aby uzyskać udaną kompilację, ale nie byłoby to zbyt trudne do rozwiązania, a ludzie w Grupie Kivy Google też są naprawdę pomocni.
Biorąc to wszystko pod uwagę, użytkownicy z dobrą znajomością języka Python nie powinni mieć problemu z szybkim zapoznaniem się z podstawami.
Jeśli używasz Kivy do poważniejszych projektów, możesz uznać istniejące moduły za niezadowalające. Istnieje jednak kilka praktycznych rozwiązań. Dzięki (trwającemu) pyjnius dla Androida i pyobjus użytkownicy mogą teraz uzyskać dostęp do klas Java / Objective-C, aby kontrolować niektóre natywne interfejsy API.
ScreenManager
tej opcji, aby zaoszczędzić mnóstwo czasu. Radzę też przeczytać ich listę mailingową, grupę kompetentnych ludzi chętnych do pomocy.
Możesz użyć aplikacji Termux , która udostępnia środowisko POSIX dla Androida, aby zainstalować Pythona.
Zauważ, że apt install python
zainstaluje Python3 na Termux. W przypadku Python2 musisz użyć apt install python2
.
Nie w tej chwili i miałbyś szczęście, że wkrótce Jython zacznie działać. Jeśli planujesz rozpocząć programowanie teraz, lepiej byłoby na razie trzymać się Javy.
Używając SL4A (o którym już wspomniałem w innych odpowiedziach), możesz uruchomić w pełni rozwiniętą instancję web2py ( prawdopodobnie inne frameworki sieci python również są kandydatami). SL4A nie pozwala na tworzenie natywnych składników interfejsu użytkownika (przycisków, pasków przewijania itp.), Ale obsługuje WebView . WebView to w zasadzie nic innego jak przeglądarka internetowa w paski, skierowana na stały adres. Uważam, że natywna aplikacja Gmail używa WebView zamiast zwykłej trasy z widżetem.
Ta trasa miałaby kilka interesujących funkcji:
Korzystam z aplikacji QPython . Jest bezpłatny i zawiera edytor kodu, interaktywny interpreter i menedżera pakietów, umożliwiając tworzenie i wykonywanie programów w języku Python bezpośrednio na urządzeniu.
Z witryny Python dla Androida :
Python dla Androida to projekt służący do tworzenia własnej dystrybucji języka Python, w tym modułów, które chcesz, i stworzenia aplikacji zawierającej język Python, biblioteki lib i aplikację.
Chaquopy to wtyczka do systemu kompilacji opartego na gradle w Android Studio. Koncentruje się na ścisłej integracji ze standardowymi narzędziami programistycznymi dla Androida.
Zapewnia pełne interfejsy API do wywoływania Java z Python lub Python z Java , umożliwiając programistom używanie dowolnego języka, który jest najlepszy dla każdego komponentu ich aplikacji.
Może automatycznie pobierać pakiety PyPI i wbudowywać je w aplikację, w tym wybrane pakiety natywne, takie jak NumPy.
Umożliwia pełny dostęp do wszystkich interfejsów API Androida z Pythona, w tym natywnego zestawu narzędzi interfejsu użytkownika ( przykładowa aktywność czysto Python ).
Jest to produkt komercyjny, ale jest darmowy do użytku typu open source i zawsze taki pozostanie.
(Jestem twórcą tego produktu.)
Jeszcze jedna próba: https://code.google.com/p/android-python27/
Ten osadza bezpośrednio interpreter Pythona w aplikacji.
Oto niektóre narzędzia wymienione na oficjalnej stronie Pythona
W playstore znajduje się aplikacja o nazwie QPython3, której można używać zarówno do edycji, jak i uruchamiania skryptu python.
Kolejna aplikacja o nazwie Termux, w której możesz 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 także sprawdzić PySide dla Androida , który jest tak naprawdę powiązaniami Pythona dla Qt 4.
Istnieje platforma o nazwie PyMob, w której aplikacje można pisać wyłącznie w języku Python, a narzędzie do kompilacji (PyMob) konwertuje je w natywne kody źródłowe dla różnych platform.
Sprawdź także 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.
Wypróbuj Chaquopy A Python SDK dla Androida
Anddd ... 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.
Możesz użyć QPython :
Ma konsolę Python, edytor, a także Zarządzanie pakietami / Instalatory
Jest to projekt open source z implementacjami zarówno Python 2, jak i Python 3. Możesz pobrać pliki źródłowe i .apk dla systemu Android bezpośrednio z github.
QPython 2: https://github.com/qpython-android/qpython/releases
QPython 3: https://github.com/qpython-android/qpython3/releases
Inną opcją, jeśli szukasz wersji 3.4.2 lub 3.5.1, jest to archiwum na GitHub.
Python3-Android 3.4.2 lub Python3-Android 3.5.1
Obecnie obsługuje Python 3.4.2 lub 3.5.1 oraz 10d wersję NDK. Może także obsługiwać 3.3 i 9c, 11c i 12
Fajnie, że po prostu go pobierasz, uruchamiasz make i dostajesz .so lub .a
Obecnie używam tego do uruchamiania surowego Pythona na urządzeniach z Androidem. Z kilkoma modyfikacjami w plikach kompilacji możesz także zrobić 64-bitowe wersje x86 i armeabi
Nie widziałem tego opublikowanego tutaj, ale możesz to zrobić za pomocą Pyside i Qt teraz, gdy Qt działa na Androidzie dzięki Necessitas.
W tej chwili wydaje się to dość kłopotliwe, ale w końcu może być opłacalną trasą ...
Jeszcze jedną opcją wydaje się być pyqtdeploy, która cytuje dokumenty:
narzędzie, które w połączeniu z innymi narzędziami dostarczanymi z Qt umożliwia wdrażanie aplikacji PyQt4 i PyQt5 napisanych w Pythonie v2.7 lub Python v3.3 lub nowszym. Obsługuje wdrażanie na platformach stacjonarnych (Linux, Windows i OS X) oraz na platformach mobilnych (iOS i Android).
Według Wdrażania aplikacji PyQt5 na Androida za pośrednictwem pyqtdeploy i Qt5 jest ona aktywnie rozwijana, chociaż trudno jest znaleźć przykłady działających aplikacji na Androida lub samouczek, w jaki sposób skompilować wszystkie wymagane biblioteki do Androida. Warto jednak pamiętać o tym ciekawym projekcie!
Spójrz na BeeWare . W chwili udzielenia odpowiedzi na to pytanie jest wciąż na wczesnym etapie rozwoju. Jego celem jest możliwość tworzenia natywnych aplikacji za pomocą Pythona dla wszystkich obsługiwanych systemów operacyjnych, w tym Androida.
Sprawdź enaml-native, który przyjmuje koncepcję React-Native i stosuje ją do Pythona.
Pozwala użytkownikom tworzyć aplikacje z natywnymi widżetami na Androida i zapewnia interfejsy API do korzystania z bibliotek Androida i Java z Pythona.
Integruje się również z Android-Studio i udostępnia kilka fajnych funkcji deweloperskich reagowania, takich jak ponowne ładowanie kodu i zdalne debugowanie.