C'è un modo per eseguire Python su Android?


Answers

C'è anche il nuovo progetto Android Scripting Environment (ASE / SL4A). È fantastico e ha una certa integrazione con i componenti Android nativi.

Nota: non più in "sviluppo attivo", ma alcune forcelle potrebbero esserlo.

Question

Stiamo lavorando su una versione S60 e questa piattaforma ha una bella API Python.

Tuttavia, non esiste nulla di ufficiale su Python su Android, ma poiché esiste Jython , c'è un modo per far interagire il serpente e il robot?




C'è un'app chiamata QPython3 in playstore che può essere utilizzata sia per la modifica che per l'esecuzione di script Python.

Collegamento Playstore

Un'altra app chiamata Termux in cui è possibile installare python usando il comando

pkg install python

Link Playstore




Ho postato le istruzioni e una patch per cross compilare Python 2.7.2 per Android, è possibile scaricarlo sul mio blog qui: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

EDIT: Ho aperto Ignifuga , il mio motore di gioco 2D, è basato su Python / SDL e compila cross per Android. Anche se non lo usi per i giochi, potresti ottenere idee utili dal codice e dall'utilità builder (chiamato Schafer, dopo Tim ... sai chi).




Chaquopy

Chaquopy è un plugin per il sistema di build basato su Gradle di Android Studio. Si concentra su una stretta integrazione con gli strumenti di sviluppo Android standard.

  • Fornisce API complete per chiamare Java da Python o Python da Java , consentendo allo sviluppatore di utilizzare qualsiasi lingua sia la migliore per ogni componente della propria app.

  • Può scaricare automaticamente pacchetti PyPI e crearli in un'app, inclusi i pacchetti nativi selezionati come NumPy.

  • Consente l'accesso completo a tutte le API Android di Python, incluso il toolkit dell'interfaccia utente nativa (ad esempio l'attività pure-Python ).

Questo è un prodotto commerciale, ma è gratuito per l'uso open source e rimarrà sempre tale.

(Sono il creatore di questo prodotto.)




Puoi eseguire il tuo codice Python usando sl4a . sl4a supporta Python, Perl , JRuby , Lua , BeanShell, JavaScript, Tcl e lo script di shell.

Puoi imparare gli esempi di Python sl4a.




C'è anche SL4A scritto in grande dai dipendenti di Google.




C'è anche Python su chip che può eseguire il mosync: google group




Come amante di Python e programmatore Android, sono triste nel dire che questo non è davvero un buon modo per andare. Ci sono due problemi.

Un problema è che c'è molto più di un semplice linguaggio di programmazione per gli strumenti di sviluppo Android. Gran parte della grafica Android coinvolge i file XML per configurare il display, in modo simile all'HTML. Gli oggetti java integrati sono davvero integrati con questo layout XML, ed è molto più semplice della scrittura del proprio codice per passare dalla logica alla bitmap.

L'altro problema è che G1 (e probabilmente altri dispositivi Android per il prossimo futuro) non sono poi così veloci. I processori a 200 MHz e la RAM sono molto limitati. Anche in Java devi fare una discreta quantità di riscrittura-da-evitare-più-creazione di oggetti se vuoi rendere la tua app perfettamente fluida. Python sarà troppo lento ancora per un po 'sui dispositivi mobili.




Io uso l'applicazione QPython. Ha un editor, una console ed è possibile eseguire i programmi Python con esso. L'applicazione è gratuita e il collegamento è http://qpython.com/ .




Usando SL4A (che è già stato menzionato da solo in altre risposte) è possibile run un'istanza web2py piena web2py (anche altri framework web Python sono probabilmente candidati). SL4A non consente di eseguire componenti UI nativi (pulsanti, barre di scorrimento e simili), ma supporta WebViews . Un WebView non è fondamentalmente altro che un browser Web a strisce rivolto verso un indirizzo fisso. Credo che l'app Gmail nativa utilizzi una WebView invece di utilizzare la normale route del widget.

Questo percorso avrebbe alcune caratteristiche interessanti:

  • Nel caso della maggior parte dei framework web Python, è possibile sviluppare e testare senza utilizzare un dispositivo Android o un emulatore Android.
  • Qualunque sia il codice Python che si finisce per scrivere per il telefono potrebbe anche essere messo su un server web pubblico con modifiche minime (se presenti).
  • Puoi sfruttare tutte le cose pazze del web: query, HTML5, CSS3, ecc.






Non ho visto questo postato qui, ma puoi farlo con Pyside e Qt ora che Qt funziona su Android grazie a Necessitas.

Al momento sembra piuttosto un kludge ma potrebbe essere una strada percorribile alla fine ...

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