Existe-t-il un moyen d'exécuter Python sur Android?


11 Answers

Il y a aussi le nouveau projet Android Scripting Environment (ASE / SL4A). Il semble génial, et il a une certaine intégration avec les composants Android natifs.

Note: ne plus sous "développement actif", mais certaines fourchettes peuvent l'être.

Question

Nous travaillons sur une version S60 et cette plate-forme a une belle API Python.

Cependant, il n'y a rien d'officiel à propos de Python sur Android, mais puisque Jython existe, y a-t-il un moyen de laisser le serpent et le robot travailler ensemble?




En utilisant SL4A (déjà mentionné dans d'autres réponses), vous pouvez run une instance web2py complète (d'autres frameworks web en python sont aussi des candidats potentiels). SL4A ne vous permet pas de faire des composants d'interface utilisateur natifs (boutons, barres de défilement, etc.), mais il prend en charge WebViews . Un WebView est fondamentalement rien de plus qu'un navigateur Web rayé dirigé vers une adresse fixe. Je crois que l'application Gmail native utilise un WebView au lieu de suivre la route habituelle du widget.

Cette route aurait quelques caractéristiques intéressantes:

  • Dans le cas de la plupart des frameworks web python, vous pouvez réellement développer et tester sans utiliser un périphérique Android ou un émulateur Android.
  • Quel que soit le code Python que vous finissez par écrire pour le téléphone, vous pouvez également le mettre sur un serveur web public avec très peu de modifications (le cas échéant).
  • Vous pouvez tirer parti de toutes les fonctionnalités Web délirantes: requête, HTML5, CSS3, etc.



Il y a une application appelée QPython3 dans playstore qui peut être utilisée pour éditer et exécuter le script python.

Playstore link

Une autre application appelée Termux dans laquelle vous pouvez installer Python en utilisant la commande

pkg install python

Playstore Link







Chaquopy

Chaquopy est un plugin pour le système de construction basé sur Gradle d'Android Studio. Il se concentre sur l' intégration étroite avec les outils de développement Android standard.

  • Il fournit des API complètes pour appeler Java à partir de Python ou Python à partir de Java , ce qui permet au développeur d'utiliser la langue la mieux adaptée à chaque composant de son application.

  • Il peut télécharger automatiquement les paquets PyPI et les construire dans une application, y compris les paquets natifs sélectionnés tels que NumPy.

  • Il permet un accès complet à toutes les API Android de Python, y compris la boîte à outils de l'interface utilisateur native (par exemple l'activité pure-Python ).

C'est un produit commercial, mais il est gratuit pour l'utilisation open-source et restera toujours comme ça.

(Je suis le créateur de ce produit.)




Il y a aussi python-on-a-chip qui tourne peut-être mosync: google group




J'utilise l'application QPython. Il a un éditeur, une console, et vous pouvez exécuter vos programmes Python avec. L'application est gratuite, et le lien est http://qpython.com/ .




Je n'ai pas vu cela posté ici, mais vous pouvez le faire avec Pyside et Qt maintenant que Qt fonctionne sur Android grâce à Necessitas.

Il semble que ce soit plutôt un kludge en ce moment mais pourrait être un itinéraire viable finalement ...

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




Vous pouvez exécuter votre code Python en utilisant sl4a . sl4a prend en charge les scripts Python, Perl , JRuby , Lua , BeanShell, JavaScript, Tcl et shell.

Vous pouvez apprendre des exemples de Python sl4a.




J'ai posté des instructions et un correctif pour la compilation croisée de Python 2.7.2 pour Android, vous pouvez l'obtenir sur mon blog ici: http://mdqinc.com/blog/2011/09/cross-compiling-python-for-android/

EDIT: J'ai ouvert Ignifuga sourced, mon 2D Game Engine, c'est basé sur Python / SDL et il compile pour Android. Même si vous ne l'utilisez pas pour les jeux, vous pourriez obtenir des idées utiles du code et de l'utilitaire de construction (nommé Schafer, après Tim ... vous savez qui).




En tant Python et programmeur Android, je suis triste de dire que ce n'est pas vraiment une bonne voie à suivre. Il y a deux problèmes.

Un problème est qu'il y a beaucoup plus qu'un simple langage de programmation pour les outils de développement Android. Beaucoup de graphiques Android impliquent des fichiers XML pour configurer l'affichage, similaire à HTML. Les objets java intégrés sont vraiment intégrés à cette mise en page XML, et il est beaucoup plus facile d'écrire votre propre code pour passer de la logique à l'image bitmap.

L'autre problème est que le G1 (et probablement d'autres appareils Android dans un futur proche) n'est vraiment pas aussi rapide. Les processeurs à 200 MHz et la RAM sont très limités. Même en Java, vous devez faire une bonne quantité de réécriture pour éviter la création d'objets si vous voulez rendre votre application parfaitement fluide. Python va être trop lent pour un moment encore sur les appareils mobiles.




Il y a aussi SL4A écrit en gros par les employés de Google.






Related