2013-08-28 4 views
25

Sono nuovo nello sviluppo di Android, e ho avuto una certa esperienza con Java, C#, Python, ecc. Python è il mio preferito, mi piacerebbe codificare l'app per Android con esso.
Poi vidi questa domanda:
Is there a way to run Python on Android?
il più votato risposte menzionati Kivy e ASE (che ora è SL4A e comprende PY4A).
Tuttavia, dopo alcune ricerche su google, non sono stato in grado di trovare alcuna informazione utile sulla differenza tra Kivy e PY4A. Anche la ricerca della differenza tra Kivy e SL4A era infruttuosa.Differenza tra Kivy e PY4A

Così, come per Kivy e PY4A,
qualcuno può spiegare, in termini semplici:
- Quali sono le somiglianze e le differenze tra di loro?
- Quali sono le loro parti buone e cattive?
- Ci sono altre buone alternative?

+1

"Kivy - Open source ** libreria Python ** per lo sviluppo rapido di applicazioni che fanno uso di interfacce utente innovative, come le app multi-touch." vs "Scripting Layer per Android (SL4A) porta i linguaggi di scripting in Android consentendo di modificare ed eseguire script ed interpreti interattivi direttamente sul dispositivo Android." Non riesco a trovare nulla in comune tra i due ... – Bakuriu

risposta

21

Confusamente, ci sono due progetti chiamati "python per Android".

SL4A consente di eseguire script Python su Android. Il loro PY4A è un passo nella loro toolchain, ma non ne so molto. Capisco che ci sia un po 'di integrazione con Android API (puoi usare un po' di hardware, ecc.), Ma limitazioni su come eseguire i programmi (non sono app complete, niente gui ecc.). Questo è roba che deduco dal vedere altri post, non l'ho provato, non prendere la parola sui dettagli. (Modifica: in realtà sembra che ci sia qualche possibilità di impacchettare apk e più modi per creare un gui, non conosco i dettagli)

Kivy è un framework grafico che supporta molti sistemi operativi (linux, windows, osx, Android, iOS, forse più già). Lo usi per costruire i guai di Python. Il progetto kivy ha anche avviato il proprio progetto python-per-android che fornisce modi per compilare l'interprete python per Android e per impacchettarlo come un'app per Android (inclusa l'integrazione con java api con pyjnius ecc.). Kivy è ben integrato con esso in modo che tu possa facilmente compilare un'app gui pitone per Android, anche se non penso che questo python-per-android sia limitato alle app kivy.

Quindi, sono progetti completamente diversi che capita di avere un componente con lo stesso nome. SL4A è per l'esecuzione di script Python su Android, non so molto dei suoi limiti o dettagli. Kivy è un framework grafico python (non limitato ad Android) che può essere compilato tramite il proprio progetto python-per-android diverso per le app Android gui completamente integrate.

È possibile vedere (ad esempio) kivy showcase per esempi di alcune semplici funzionalità di Kivy o flat jewels per un esempio di un semplice gioco realizzato in kivy. Questi sono solo esempi, molto di più è possibile.

+0

Puoi fare GUI su SL4A, native e webviews. I ragazzi kivy ingannano SL4A con cons e roba, quindi devi aspettarti un po 'di confusione. –

+0

Scusate per l'errore, il mio malinteso è stato quello di leggere la documentazione di SL4A che parla principalmente delle possibilità di scripting. – inclement

+0

Nessun problema. È ancora una buona risposta –

1

Hai provato QPython? È un nuovo python per l'istanza di Android che offre più funzioni.

9

ho trovato questo molto utile (e recente):

Embedding Python in Android (serie Tutorial)

http://techventura.wordpress.com/2014/04/21/embedding-python-in-android-series/

Esso descrive come incorporare Python in un'applicazione Android, usando il Python-per-Android relativo a Kivy, ma non Kivy stesso (che non è realmente descritto nella documentazione di Kivy o Python-per-Android, per quanto ho trovato), che è utile in vari scenari (es. app Java esistente , utilizzando direttamente la GUI nativa, ecc.)

Poiché il Python-per-Android di Kivy è più attivamente sviluppato rispetto al Py4A di SL4A (ASE), mi sembra la strada da percorrere.

(penso che sarebbe molto rilevante anche, e forse più appropriato, a Is there a way to run Python on Android?, ma alla risposta richiede più la reputazione di quello che hanno attualmente.)

Per il punto della domanda iniziale: la differenza più rilevante Vedo tra Python-per-Android di Kivy e SL4A (ASE) Py4A è che quest'ultimo è ancora oggi offerto come "qualità alpha", mentre il primo sembra essere molto più attivo. Ovviamente se si prende Kivy nel suo insieme, si tratta di una libreria GUI multipiattaforma.

Inoltre, i risultati della mia ricerca sulle varie soluzioni:

  • di Google Py4A + SL4A (ASE): usato ma la qualità alpha, non attivamente sviluppato
  • Kivy:
    • offre Python-per-Android, per chiamare il codice python da Java
    • offre Pyjnius, per chiamare il codice Java da python
    • sembra essere attivamente sviluppato
    • c'è il tutorial che ho linkato sopra di incorporare in Java Android
    • se interessati, l'interfaccia grafica multipiattaforma (Kivy stesso)
  • QPython:
    • principalmente un ambiente interattivo per avviare script Python su Android
    • basato su Py4A, ma Pyjnius (vedi sopra) si dice che sia utilizzabile
    • L'incorporamento in un'app Java è disponibile, ma in qualche modo limitato: un lavoro Python deve essere avviato con un Intent e i risultati vengono raccolti dallo stdout; questo significa più separazione che potrebbe essere desiderabile in alcuni scenari, penso.
  • python.org: non si parla affatto di Android
0

Oltre alle risposte qui, mi piacerebbe aggiungere la forcella del Py4A originale che sembra essere attivamente sviluppato: https://github.com/kuri65536/sl4a

Non posso garantire per la qualità o la facilità d'uso. Ci sono .apks da installare, quindi sembra abbastanza semplice.