Pracujemy nad wersją S60 i ta platforma ma ładny interfejs API w języku Python.
Jednak nie ma nic oficjalnego w Pythonie na Androida, ale skoro istnieje Jython , czy istnieje sposób, aby pozwolić wężowi i robotowi współpracować?
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ć.
źródło
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:
źródło
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']))
Podzbiór Pygame dla Androida
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 ...
Przykłady obejmują kompletną grę spakowaną jako APK, co jest dość interesujące.
źródło
Kompilacja krzyżowa i Ignifuga
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).
źródło
Warstwa skryptowa dla Androida
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.
API
SL4A zapewnia port swojej
android
biblioteki dla każdego obsługiwanego języka. Biblioteka zapewnia interfejs do bazowego interfejsu API Androida za pośrednictwem jednegoAndroid
obiektu.Każdy język ma prawie taki sam interfejs API. Możesz nawet używać JavaScript API w przeglądarkach internetowych.
Interfejsy użytkownika
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.
QPython
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.
Przydatne linki
źródło
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.
źródło
Kivy
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.
źródło
ScreenManager
tej opcji, aby zaoszczędzić mnóstwo czasu. Radzę też przeczytać ich listę mailingową, grupę kompetentnych ludzi chętnych do pomocy.Termux
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
.źródło
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.
źródło
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:
źródło
QPython
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.
źródło
Z witryny Python dla Androida :
źródło
Chaquopy
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.)
źródło
Jeszcze jedna próba: https://code.google.com/p/android-python27/
Ten osadza bezpośrednio interpreter Pythona w aplikacji.
źródło
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.
Link do sklepu internetowego
Kolejna aplikacja o nazwie Termux, w której możesz zainstalować Pythona za pomocą polecenia
Link do Playstore
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.
źródło
Możesz uruchomić swój kod Python za pomocą sl4a . sl4a obsługuje Python, Perl , JRuby , Lua , BeanShell, JavaScript, Tcl i skrypt powłoki.
Możesz nauczyć się sl4a Przykłady Pythona .
źródło
Możesz użyć QPython :
Ma konsolę Python, edytor, a także Zarządzanie pakietami / Instalatory
http://qpython.com/
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
źródło
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
źródło
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ą ...
http://qt-project.org/wiki/PySide_for_Android_guide
źródło
Jeszcze jedną opcją wydaje się być pyqtdeploy, która cytuje dokumenty:
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!
źródło
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.
źródło
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.
źródło