web-dev-qa-db-fra.com

Différence entre Kivy et PY4A

Je suis nouveau dans le développement Android et j’ai une certaine expérience de Java, C #, Python, etc. Python étant mon préféré, je voudrais coder une application Android avec celle-ci.
Puis j'ai vu cette question:
Existe-t-il un moyen d’exécuter Python sur Android?
Les réponses les plus votées sont les suivantes: Kivy et ASE (qui est maintenant SL4A et comprend PY4A).
Cependant, après quelques recherches sur Google, je ne trouvais aucune information utile sur la différence entre Kivy et PY4A. La recherche de la différence entre Kivy et SL4A a également été infructueuse. 

Donc, comme pour Kivy et PY4A,
quelqu'un peut-il expliquer, en termes simples:
- Quelles sont les similitudes et les différences entre elles?
- Quels sont leurs bons et leurs mauvais côtés?
- Existe-t-il d'autres bonnes solutions? 

28
octref

De manière déroutante, il y a deux projets appelés 'python pour Android'.

SL4A vous permet d'exécuter des scripts python sur Android. Leur PY4A est une étape dans leur chaîne d’outils, mais je ne sais pas grand chose à ce sujet. Je comprends qu’il existe une certaine intégration avec les API Android (vous pouvez utiliser du matériel, etc.), mais que le mode d’exécution des programmes est limité (ce ne sont pas des applications complètes, pas de gui, etc.). C'est ce que je déduis de voir d'autres publications, je ne l'ai pas essayé, ne prenez pas ma parole pour les détails. (Edit: en fait, il semble y avoir une certaine capacité à empaqueter des apks et de multiples façons de créer une interface graphique, je ne connais pas les détails)

Kivy est un framework graphique prenant en charge de nombreux systèmes d'exploitation (Linux, Windows, OSX, Android, iOS, peut-être plus déjà). Vous l'utilisez pour construire python guis. Le projet kivy a également démarré son propre projet python pour Android qui permet de compiler l’interpréteur python pour Android et de le packager comme une application Android (y compris l’intégration de l’API Java avec pyjnius, etc.). Kivy y est bien intégré pour vous permettre de compiler facilement une application python gui pour Android, bien que je ne pense pas que ce python pour Android soit limité aux applications kivy.

Donc, ce sont des projets complètement différents qui ont un composant du même nom. SL4A est destiné à l'exécution de scripts python sur Android, je ne connais pas grand-chose de ses limitations ou de ses détails. Kivy est un framework graphique python (non limité à Android) qui peut être compilé via son propre projet python pour Android en applications gui entièrement intégrées.

Vous pouvez voir (par exemple) kivy showcase pour des exemples de fonctionnalités simples de kivy, ou des bijoux plats pour un exemple de jeu simple fabriqué en kivy. Ce ne sont que des exemples, beaucoup plus est possible.

24
inclement

J'ai trouvé cela très utile (et récent):

Intégration de Python dans Android (série de didacticiels)

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

Il décrit comment intégrer Python dans une application Android, en utilisant le Python pour Android lié à Kivy, mais pas Kivy lui-même (ce qui n'est pas vraiment décrit dans la documentation de Kivy ni dans Python pour Android, à ma connaissance), ce qui est utile dans différents scénarios (par exemple, application Java existante, utilisation directe de l'interface graphique native, etc.)

Comme Python pour Android de Kivy est développé plus activement que le Py4A de SL4A (ASE), il me semble que la voie à suivre.

(Je pense qu'il serait également très pertinent, et probablement plus approprié, de Existe-t-il un moyen d'exécuter Python sur Android? , mais répondre nécessite davantage de réputation que ce que j'ai actuellement.)

Au sujet de la question initiale: la différence la plus pertinente que je vois entre Python pour Android de Kivy et Py4A de SL4A (ASE) est que ce dernier est encore offert aujourd'hui en "qualité alpha", alors que le premier semble être loin plus actif. Bien sûr, si vous prenez Kivy dans son ensemble, il s’agit d’une bibliothèque d’interfaces graphiques multi-plateformes.

En outre, les résultats de mes recherches sur les différentes solutions:

  • Google Py4A + SL4A (ASE) : utilisé mais de qualité alpha, non développé activement
  • Kivy :
    • offre Python pour Android, pour appeler du code python à partir de Java
    • propose Pyjnius, d'appeler du code Java à partir de python
    • semble être activement développé
    • il y a le tutoriel que j'ai lié ci-dessus pour intégrer l'application Java Android
    • si cela vous intéresse, l'interface graphique multi-plateforme (Kivy elle-même)
  • QPython :
    • principalement un environnement interactif pour lancer des scripts python sur Android
    • basé sur Py4A, mais Pyjnius (voir ci-dessus) est dit utilisable
    • l'intégration dans une application Java est disponible, mais quelque peu limitée: un travail Python doit être démarré avec une intention, et les résultats sont collectés à partir de la sortie standard; cela signifie plus de séparation qui pourrait être souhaitable dans certains scénarios, je pense.
  • python.org : aucune mention d'Android
9
GozzoMan

Avez-vous essayé QPython? C'est une nouvelle instance python pour Android qui offre plus de fonctions.

1
River

En plus des réponses ici, j'aimerais ajouter la fourche du Py4A original qui semble être activement développé: https://github.com/kuri65536/sl4a

Je ne peux pas garantir la qualité ou la facilité d'utilisation. Il y a des .apks à installer, donc cela semble assez simple. 

0
Alen Siljak