it-swarm-eu.dev

Existuje způsob, jak spustit Python na Androidu?

Pracujeme na verzi S60 a tato platforma má pěkný API Python.

Nicméně, není nic oficiálního o Python na Android, ale protože Jython existuje, existuje způsob, jak nechat hada a robota spolupracovat?

2097
e-satis

Jeden způsob je použít Kivy :

Open source Python knihovna pro rychlý vývoj aplikací, které využívají inovativní uživatelská rozhraní, jako jsou multi-touch aplikace.

Kivy běží na Linuxu, Windows, OS X, Android a iOS. Na všech podporovaných platformách můžete spustit stejný kód [python].

Aplikace Kivy Showcase

948
JohnMudd

Tam je také nový Android Scripting Environment (ASE/SL4A) projekt. Vypadá to úžasně a má nějakou integraci s nativními komponenty systému Android.

Poznámka: již není pod "aktivním vývojem", ale některé vidličky mohou být.

328
Heat Miser

Ano! : Skriptovací prostředí pro Android

Příklad přes Matt Cutts přes SL4A - "zde je skener čárových kódů napsaný v šesti řádcích kódu 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)
198
unmounted

K dispozici je také SL4A napsaný zaměstnanci společnosti Google.

83
Rab Ross

" Pygame Subset pro Android je port podmnožiny Pygame funkcí pro platformu Android. Cílem projektu je umožnit vytvoření her specifických pro Android a usnadnit přenos her. od platformy podobné PC až po Android. “

Příklady zahrnují kompletní hru zabalenou v APK, což je docela zajímavé.

82
muriloq

Napsal jsem instrukce a patch pro křížovou kompilaci Pythonu 2.7.2 pro Android, můžete si ho najít na mém blogu zde: http://mdqinc.com/blog/2011/09/cross-compiling-python-for -Android/

EDIT: Otevřel jsem zdroj Ignifuga , můj 2D Game Engine, je to Python/SDL založený a překračuje kompilace pro Android. I když jej nepoužíváte pro hry, můžete získat užitečné nápady z kódu a nástroje pro tvůrce (s názvem Schafer, po Timovi ... víte, kdo).

72
gabomdq

Skriptovací vrstva pro Android

SL4A dělá to, co chcete. Můžete jej snadno nainstalovat přímo z vašeho webu do zařízení a nepotřebujete root.

Podporuje řadu jazyků. Python je nejzralejší. Standardně používá Python 2.6, ale místo toho je možné použít 3.2 port . Použil jsem ten port pro všechny druhy věcí na Galaxy S2 a fungovalo to dobře.

API

SL4A poskytuje port své Android knihovny pro každý podporovaný jazyk. Knihovna poskytuje rozhraní k základnímu API systému Android prostřednictvím jediného objektu Android.

from Android import Android

droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade

Každý jazyk má skoro stejné API. Můžete dokonce použít rozhraní API JavaScriptu ve webových rozhovorech.

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

Uživatelské rozhraní

U uživatelských rozhraní máte tři možnosti:

  • Pomocí rozhraní API můžete snadno použít obecné, nativní dialogy a nabídky. To je dobré pro potvrzovací dialogy a další základní uživatelské vstupy.
  • Můžete také otevřít webový prohlížeč z Python skriptu a pak použít HTML5 pro uživatelské rozhraní. Když používáte webview z Pythonu, můžete předávat zprávy tam a zpět, mezi webview a proces Python, který ho vytvořil. Uživatelské rozhraní nebude nativní, ale stále je to dobrá volba.
  • Tam je někteří podpora pro nativní Android uživatelská rozhraní, ale já nejsem jistý jak dobře to funguje; Já jsem to nikdy nepoužil.

Můžete kombinovat možnosti, takže můžete mít webový prohlížeč pro hlavní rozhraní a stále používat nativní dialogy.

QPython

Existuje projekt třetí strany s názvem QPython . Staví na SL4A a hází do dalších užitečných věcí.

QPython vám poskytuje hezčí uživatelské rozhraní pro správu instalace a obsahuje malý editor kódu s dotykovým displejem, prostředí Python Shell a prostředí PIP Shell pro správu balíčků. Oni také mají Python 3 port. Obě verze jsou k dispozici zdarma v obchodě Play. QPython také svazuje knihovny z partie Pythonu na projektech Android, včetně Kivy, takže to není jen SL4A.

Všimněte si, že QPython stále rozvíjí svou vidličku SL4A (i když ne moc být upřímný). Samotný hlavní projekt SL4A je téměř mrtvý.

Užitečné odkazy

70
Carl Smith

Jako Python milovník a Android programátor, jsem smutný říci, že to není opravdu dobrý způsob, jak jít. Existují dva problémy.

Jedním z problémů je, že existuje více než jen programovací jazyk pro vývojové nástroje Android. Spousta Android grafiky zahrnuje XML soubory pro konfiguraci zobrazení, podobně jako HTML. Vestavěné objekty jazyka Java jsou skutečně integrovány s tímto rozložením XML a je mnohem jednodušší, než napsat vlastní kód, který přechází z logiky do bitmapy.

Dalším problémem je, že G1 (a pravděpodobně i jiná zařízení pro Android v blízké budoucnosti) opravdu nejsou tak rychlá. 200 MHz procesory a RAM je velmi omezená. Dokonce i v Javě musíte udělat slušné množství přepsání-na-vyhnout-více-objekt-vytvoření, pokud chcete, aby vaše aplikace dokonale hladký. Python bude ještě chvíli pomalý na mobilních zařízeních.

63
lacker

Kivy


Chci to odeslat jako rozšíření toho, co @JohnMudd již odpovědělo (ale prosím, mějte se mnou, protože angličtina není můj první jazyk)

Je to už několik let a Kivy se vyvinul do v1.9-dev. Největším prodejním místem společnosti Kivy je podle mého názoru kompatibilita mezi platformami. Můžete kódovat a testovat v místním prostředí (Windows/* nix atd.), Můžete také vytvářet, ladit a balíčky aplikace běžet na Android/iOS/Mac/Windows zařízení.

S vlastním jazykem Kivy KV , můžete snadno kódovat a vytvářet rozhraní GUI (je to jako Java XML, ale místo TextView atd. Má KV vlastní ui.widgets pro podobný překlad), který je v mém stanovisko je velmi snadné přijmout.

Aktuálně Buildozer a python-for-Android jsou nejvíce doporučované nástroje pro vytváření/balení aplikací. Zkoušel jsem je oba a pevně říci, že vytvářejí aplikace pro Android s Pythonem. Uživatelé, kteří se cítí pohodlně ve své konzole/terminálu/příkazu Prompt, by neměli mít žádné problémy s jejich používáním a jejich průvodci jsou také dobře zdokumentováni.

Kromě toho je iOS dalším velkým prodejním místem společnosti Kivy za předpokladu, že můžete použít stejnou kódovou základnu s malými změnami, které jsou nutné k testování na vašem zařízení iOS, pomocí nástrojů kivy-ios Homebrew, ačkoliv Xcode je vyžadován pro sestavit před spuštěním na svých zařízeních (AFAIK iOS Simulator v Xcode v současné době nefunguje pro sestavení architektury x86). Tam jsou také některé problémy se závislostí, které musí být ručně kompilovány a pohrával si s v Xcode mít úspěšnou sestavení, ale oni by nebylo příliš těžké vyřešit a lidé v Kivy Google Group jsou opravdu užitečné taky.

S tím, co bylo řečeno, by uživatelé s dobrými znalostmi Pythonu neměli mít žádný problém vyzvednout si základy v týdnech (ne-li dny), aby vytvořili některé jednoduché aplikace.

Za zmínku stojí také to, že můžete sestavit (sestavit recepty) své moduly Python s sestavou tak, aby uživatelé mohli skutečně využít mnoho existujících knihoven, které nám Python přináší, jako Požadavky & PIL etc. prostřednictvím Podpora Kivyho rozšíření .

Někdy vaše aplikace vyžaduje funkčnost, která je nad rámec toho, co může Kivy dodat. V těchto případech je nutné uchýlit se k externím softwarovým knihovnám. Vzhledem k bohatství ekosystému Python existuje již mnoho softwarových knihoven, které můžete jednoduše importovat a používat ihned.

V neposlední řadě, pokud budete používat Kivy pro vážnější/komerční projekty, můžete zjistit, že stávající moduly nejsou uspokojivé. Tam jsou některé funkční řešení i když, s "nedokončenou" pyjnius pro Android, a pyobjus . Uživatelé mohou nyní prostřednictvím těchto modulů přistupovat ke třídám Java/Objective-C a ovládat některé nativní API.

Moje zkušenost v Kivy spočívá v tom, že najde to nejvhodnější se zkušenými programátory Pythonu a některými vážnými programátory, kteří chtějí rychlý vývoj nebo jednoduchou údržbu kódu. To běží dobře na více platformách, ačkoli ne opravdu s nativní pocit.

Doufám, že někteří programátoři aplikace Python tyto informace považují za užitečné a začnou se podívat na Kivy. Může být lepší (s větší podporou a tím, že knihovny/moduly budou přenášeny), pokud je o komunitu velký zájem.

P.S. Nemám vůbec žádný vztah s Kivy, jsem jen programátor, který má rád představu o tom, že by Python mohl kódovat zábavu na mobilní/multiplatformový vývoj.

37
Anzel

V tuto chvíli ne, a měli byste štěstí, že se brzy vrátíte k Jythonovi. Pokud máte v plánu začít svůj vývoj nyní byste měli být lépe se jen držet Java zatím.

36
Ilya Kochetov

Pomocí SL4A (která již byla sama zmíněna v jiných odpovědích) můžete run a full-blown web2py instance (další python web frameworks jsou také pravděpodobně kandidáty). SL4A neumožňuje provádět nativní komponenty uživatelského rozhraní (tlačítka, posuvníky a podobně), ale podporuje WebViews . WebView je v podstatě nic víc než pruhovaný webový prohlížeč směřující na pevnou adresu. Domnívám se, že nativní aplikace Gmail používá WebView namísto toho, aby šla běžnou cestou widgetů.

Tato trasa by měla zajímavé funkce:

  • V případě většiny python web frameworků můžete skutečně vyvíjet a testovat bez použití zařízení Android nebo emulátoru Android.
  • Kterýkoliv Python kód, který skončíte pro zápis do telefonu, lze také umístit na veřejný webový server s velmi malou (pokud vůbec) modifikací.
  • Můžete využít všechny šílené webové věci tam: dotaz, HTML5, CSS3, atd.
35
gdw2

Používám aplikaci QPython. Má editor, konzoli a můžete s ním spouštět programy Python. Aplikace je bezplatná a odkaz je http://qpython.com/ .

25
kyle k

Z Python pro Android site:

Python for Android je projekt, který má vytvořit vlastní distribuci Pythonu včetně požadovaných modulů a vytvořit apk včetně pythonu, libs a vaší aplikace.

22
gdw2

Můžete použít Termux aplikace:

Všimněte si, že apt install python instaluje python 3. pro python 2 zavoláte apt install python2.

Některé ukázky zde: https://www.youtube.com/watch?v=fqqsl72mASE

A také stránka github: https://github.com/termux

22

Ještě jeden pokus: https://code.google.com/p/Android-python27/

Tenhle vložíte přímo do apk aplikace Python.

17
e-satis

Chaquopy

Chaquopy je plugin pro systém sestavení založený na platformě Android Studio. Zaměřuje se na úzkou integraci se standardními nástroji pro vývoj Androidů.

  • Poskytuje kompletní API pro volání Java z Pythonu nebo Python z Javy , což umožňuje vývojáři použít libovolný jazyk, který je pro každou součást jejich aplikace nejlepší.

  • To může automaticky stahovat PyPI balíčky a stavět je do aplikace, včetně vybraných nativních balíčků takový jako NumPy.

  • To umožňuje plný přístup ke všem Android API z Pythonu, včetně nativního uživatelského rozhraní toolkit ( příklad pure-Python aktivita ).

Jedná se o komerční produkt, ale je zdarma pro open-source použití a zůstane tak vždy.

(Jsem tvůrcem tohoto produktu.)

13
mhsmith

Kód Python můžete spustit pomocí sl4a . sl4a podporuje Python, Perl , JRuby , Lua , BeanShell, JavaScript, Tcl , a Shell skript.

Můžete se naučit sl4a Python Příklady .

13
Hitul

Tam je také python-on-a-chip možná běží mosync: google group

13
fooba

Můžete použít QPython :

Má Python Console, Editor a také Package Management/Installers

http://qpython.com/

Jedná se o open source projekt s implementacemi Python 2 i Python 3. Zdrojové soubory a soubory .apk Android můžete stáhnout přímo z githubu.

QPython 2: https://github.com/qpython-Android/qpython/releases

QPython 3: https://github.com/qpython-Android/qpython3/releases

11
ode2k

V playstore je aplikace nazvaná QPython3, kterou lze použít jak pro editaci, tak pro běh python skriptu.

Odkaz na Playstore

Další aplikace nazvaná Termux, ve které můžete instalovat python pomocí příkazu

pkg install python

Odkaz Playstore

Pokud chcete vyvíjet aplikace, existuje 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.

11
pz64_

Neviděli jste tento příspěvek zde, ale můžete to udělat s Pyside a Qt teď, že Qt pracuje na Androidu díky Necessitas.

Zdá se, že v tuto chvíli je to docela kludge, ale nakonec by to mohla být životaschopná cesta ...

http://qt-project.org/wiki/PySide_for_Android_guide

9
radix07

Další možností, pokud hledáte 3.4.2 nebo 3.5.1 je tento archiv na GitHub.

Python3-Android 3.4.2 nebo Python3-Android 3.5.1

V současné době podporuje Python 3.4.2 nebo 3.5.1 a 10d verzi NDK. To může také podporovat 3.3 a 9c, 11c a 12

Je to hezké, že si ho jednoduše stáhnete, spustíte make a dostanete .so nebo .a

V současné době to používám k běhu surového Pythonu na zařízeních Android. S několika úpravami sestav můžete také vytvořit x86 a armeabi 64 bitů

9
GR Envoy

Jedna další možnost se zdá být pyqtdeploy která cituje dokumenty:

nástroj, který ve spojení s dalšími nástroji poskytovanými s Qt umožňuje nasazení aplikací PyQt4 a PyQt5 napsaných v Pythonu v2.7 nebo Python v3.3 nebo novějším. Podporuje nasazení na desktopové platformy (Linux, Windows a OS X) a na mobilní platformy (iOS a Android).

Podle Nasazení aplikace PyQt5 na Android přes pyqtdeploy a Qt5 je aktivně vyvíjeno, i když je obtížné najít příklady fungujících aplikací pro Android nebo tutoriálu o tom, jak zkříženě kompilovat všechny požadované knihovny do Android. Je to zajímavý projekt, který je třeba mít na paměti!

7
Andrzej Pronobis

Vyzkoušejte enaml-native který bere reaktivní nativní koncept a aplikuje ho na python.

Umožňuje uživatelům vytvářet aplikace s nativními widgety Android a poskytuje rozhraní API pro používání knihoven Android a Java z pythonu.

To také integruje s Android-studio a sdílí několik reakcí Nice dev funkce, jako je překládka kódu a vzdálené ladění.

3
frmdstryr

Podívejte se na BeeWare . V okamžiku zodpovězení této otázky je stále v raném vývoji. Cílem je vytvořit nativní aplikace s Pythonem pro všechny podporované operační systémy, včetně Androidu.

3
DrawT