Question

Nous travaillons actuellement sur une version S60 . Cette plate-forme dispose d'un bon Python. API ..

Cependant, rien n’est officiel sur Python sur Android, mais puisque Jython existe, existe-t-il un moyen de laisser le serpent et le robot travailler ensemble ??

Était-ce utile?

La solution

Une solution consiste à utiliser Kivy :

  

Bibliothèque Open Source Python pour le développement rapide d'applications   qui utilisent des interfaces utilisateur innovantes, telles que les applications multi-touch.

  

Kivy fonctionne sous Linux, Windows, OS X, Android et iOS. Vous pouvez exécuter le même code [python] sur toutes les plateformes prises en charge.

application Kivy Showcase

Autres conseils

Il existe également le nouvel Environnement de script Android (ASE / SL4A). projet. Cela a l'air génial, et il a une certaine intégration avec les composants natifs d'Android.

Remarque: ne figure plus sous "Développement actif", mais certaines fourchettes peuvent l'être.

Oui! : Environnement de script Android

Un exemple via Matt Cutts via SL4A - " ici & # 8217; un lecteur de codes à barres écrit en six lignes de code 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)

Il existe également des SL4A rédigés en gros par les employés de Google.

" Le sous-ensemble Pygame pour Android est un portage d'un sous-ensemble de fonctionnalités Pygame pour Android Plate-forme. L'objectif du projet est de permettre la création de jeux spécifiques à Android et de faciliter le transfert de jeux depuis des plates-formes de type PC vers Android. "

Les exemples incluent un jeu complet emballé dans un fichier APK, ce qui est très intéressant.

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

EDIT: j'ai Ignifuga , le code source ouvert, mon moteur de jeu 2D, basé sur Python / SDL et compilant pour Android. Même si vous ne l'utilisez pas pour des jeux, vous pourriez trouver des idées utiles dans le code et l'utilitaire de construction (nommé Schafer, d'après Tim ... vous savez qui).

Couche de script pour Android

SL4A fait ce que vous voulez. Vous pouvez facilement l’installer directement sur votre appareil à partir de leur site, sans avoir besoin de root.

Il prend en charge plusieurs langues. Le python est le plus mature. Par défaut, il utilise Python 2.6, mais il existe un port 3.2 vous pouvez utiliser à la place. J'ai utilisé ce port pour toutes sortes de choses sur un Galaxy S2 et cela a bien fonctionné.

API

SL4A fournit un port de leur bibliothèque android pour chaque langue prise en charge. La bibliothèque fournit une interface à l'API Android sous-jacente via un seul objet Android .

from android import Android

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

Chaque langue a à peu près la même API. Vous pouvez même utiliser l'API JavaScript dans les vues Web.

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

Interfaces utilisateur

Pour les interfaces utilisateur, vous avez trois options:

  • Vous pouvez facilement utiliser les menus et les dialogues génériques et natifs via le API. Cela convient aux dialogues de confirmation et aux autres saisies utilisateur de base.
  • Vous pouvez également ouvrir une vue Web depuis un script Python, puis utiliser HTML5. pour l'interface utilisateur. Lorsque vous utilisez des vues Web à partir de Python, vous pouvez passer messages dans les deux sens, entre la vue Web et le processus Python l'a engendré. L’UI ne sera pas native, mais c’est quand même une bonne option pour avoir.
  • Un certain support des interfaces utilisateur Android natives, mais je ne suis pas sûr que ça marche bien; Je ne l'ai tout simplement jamais utilisé.

Vous pouvez combiner des options afin d'avoir une vue Web pour l'interface principale tout en utilisant les dialogues natifs.

QPython

Il existe un projet tiers appelé QPython . Il s’appuie sur SL4A et ajoute d’autres éléments utiles.

QPython vous donne une interface utilisateur plus agréable pour gérer votre installation et comprend un petit éditeur de code pour écran tactile, un shell Python et un shell PIP pour la gestion des packages. Ils ont également un port Python 3. Les deux versions sont disponibles gratuitement sur le Play Store. QPython regroupe également les bibliothèques d’un groupe de projets Python sur Android, y compris Kivy, de sorte qu’il ne s’agit pas que de SL4A.

Notez que QPython développe toujours sa fourche de SL4A (bien que ce ne soit pas beaucoup pour être honnête). Le projet principal de SL4A est pratiquement mort.

Liens utiles

En tant qu'amoureux de Python et du programmeur Android, je suis triste de le dire Ce n'est pas vraiment un bon chemin à parcourir. Il y a deux problèmes.

Un problème est qu’il n’ya pas que des langages de programmation pour les outils de développement Android. Beaucoup de graphiques Android utilisent des fichiers XML pour configurer l’affichage, comme le HTML. Les objets java intégrés sont vraiment intégrés à cette disposition XML et il est beaucoup plus facile que d'écrire votre propre code de passer de la logique à la bitmap.

L’autre problème est que le G1 (et probablement d’autres appareils Android dans un avenir proche) ne sont vraiment pas si rapides. Processeurs à 200 MHz, et la RAM est très limitée. Même en Java, vous devez faire une quantité décente de réécriture pour éviter plus de création d'objets si vous souhaitez que votre application soit parfaitement lisse. Python sera encore trop lent pendant un moment sur les appareils mobiles.

Kivy

Je souhaite publier ceci en tant qu'extension de ce à quoi @JohnMudd a déjà répondu ( mais veuillez supporter, car l'anglais n'est pas ma langue maternelle )

Cela fait des années depuis et Kivy a évolué pour devenir v1.9-dev. Le plus gros atout de Kivy, à mon avis, est sa compatibilité multiplateforme. Vous pouvez coder et tester sous votre environnement local (Windows / * nix, etc.), vous pouvez également créer, déboguer et mettre en package votre application pour qu'elle s'exécute sur vos appareils Android / iOS / Mac / Windows.

Avec la KV langue de Kivy, vous pouvez coder et créer le Interface graphique facile (c'est comme Java XML, mais plutôt que TextView, KV a son propre ui.widgets pour la traduction similaire), ce qui est à mon avis assez facile à adopter.

Actuellement, Buildozer et python-pour-android sont les outils les plus recommandés pour créer / empaqueter vos applications. Je les ai essayés tous les deux et je peux affirmer avec certitude qu'ils facilitent grandement la création d'applications Android avec Python. Les utilisateurs qui se sentent à l'aise dans leur invite console / terminal / commande ne devraient avoir aucun problème à les utiliser, et leurs guides sont également bien documentés.

De plus, iOS est un autre point de vente important de Kivy, à condition que vous puissiez utiliser la même base de code avec de petites modifications nécessaires pour effectuer des tests sur votre appareil iOS, via kivy-ios Bien que Xcode soit requis pour la construction avant de pouvoir s'exécuter sur leurs périphériques (AFAIK le simulateur iOS dans Xcode ne fonctionne pas actuellement pour la construction à architecture x86). Il existe également des problèmes de dépendance qui doivent être compilés manuellement et résolus dans Xcode pour une construction réussie, mais ils ne seraient pas trop difficiles à résoudre et les utilisateurs de Le groupe Google Kivy est également très utile.

Cela dit, les utilisateurs possédant de bonnes connaissances de Python ne devraient pas avoir de problème à acquérir les bases en quelques semaines (voire plusieurs jours) pour créer des applications simples.

Il est également intéressant de noter que vous pouvez regrouper (construire des recettes) vos modules Python avec la construction afin que les utilisateurs puissent vraiment utiliser de nombreuses bibliothèques existantes que Python nous apporte, comme Demandes & amp; PIL , etc., via Prise en charge de l'extension par Kivy .

  

Parfois, votre application nécessite des fonctionnalités qui dépassent le cadre   portée de ce que Kivy peut offrir. Dans ces cas, il est nécessaire de   recourir à des bibliothèques de logiciels externes. Compte tenu de la richesse du   Écosystème Python, il y a déjà beaucoup de logiciels   bibliothèques que vous pouvez simplement importer et utiliser immédiatement.

Le dernier mais non le moindre, si vous allez utiliser Kivy pour des projets plus sérieux / commerciaux, vous pouvez trouver les modules existants non satisfaisants. Il existe cependant des solutions viables avec le "travail en cours". de pyjnius pour Android et pyobjus . Les utilisateurs peuvent désormais accéder aux classes Java / Objective-C via ces modules pour contrôler certaines des API natives.

Mon expérience à Kivy est qu’elle trouvera sa place parmi les programmeurs expérimentés Python et certains programmeurs sérieux qui souhaitent un développement rapide ou une maintenance de base de code simple. Il fonctionne bien sur plusieurs plates-formes, mais pas vraiment avec le sentiment natif .

J'espère que certains programmeurs d'applications Python trouveront ces informations utiles et commenceront à jeter un coup d'œil à Kivy. Cela ne peut qu’être amélioré (avec plus de soutien et à mesure que les bibliothèques / modules sont portés) si la communauté suscite un grand intérêt.

P.S. Je n’ai aucune relation avec Kivy, je suis simplement un programmeur qui aime vraiment l’idée d’amener le codage Python dans le développement mobile / multiplate-forme.

Pas pour le moment et vous auriez de la chance de faire travailler Jython bientôt. Si vous envisagez de commencer votre développement maintenant, vous feriez mieux de vous en tenir à Java pour le moment.

En utilisant SL4A (qui a déjà été mentionné dans d'autres réponses), vous pouvez lancez une instance complète de web2py (autre les frameworks Web python sont également susceptibles d'être candidats. SL4A ne vous autorise pas à créer des composants d’UI natifs (boutons, barres de défilement, etc.), mais prend en charge WebViews . Une WebView n’est fondamentalement rien d’autre qu’un navigateur Web segmenté pointant vers une adresse fixe. Je pense que l'application Gmail native utilise une WebView au lieu de suivre la route habituelle du widget.

Cet itinéraire aurait des fonctionnalités intéressantes:

  • Dans le cas de la plupart des frameworks Web Python, vous pouvez réellement développer et tester sans utiliser d'appareil Android ni d'émulateur Android.
  • Quel que soit le code Python que vous écrivez pour le téléphone, il peut également être placé sur un serveur Web public avec très peu (le cas échéant) de modifications.
  • Vous pouvez tirer parti de tous les trucs fous du Web: requêtes, HTML5, CSS3, etc.

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/ .

Vous pouvez utiliser l’application Termux :

Notez que apt installer python installer python 3. pour python 2, vous devez appeler apt installer python2.

Quelques démonstrations ici: https://www.youtube.com/watch?v=fqqsl72mASE

Et aussi la page github: https://github.com/termux

À partir du site Python pour Android :

  

Python pour Android est un projet permettant de créer votre propre distribution Python, y compris les modules de votre choix, et de créer un apk comprenant Python, les bibliothèques et votre application.

Encore une autre tentative: https://code.google.com/p/android-python27/

Celui-ci intègre directement l'interpréteur Python dans votre apk d'application.

Vous pouvez exécuter votre code Python à l'aide de sl4a . sl4a prend en charge Python, Perl , JRuby , Lua , BeanShell, JavaScript, Tcl et script shell.

Vous pouvez apprendre la sl4a Exemples Python .

Python-sur-une-puce peut également exécuter mosync: groupe Google

Copie

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

  • Il fournit des API complètes pour appeler Java à partir de Python ou < a href = "https://chaquo.com/chaquopy/doc/current/java.html" rel = "noreferrer"> Python à partir de Java , permettant au développeur d'utiliser le langage le mieux adapté à chaque composant de son app.

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

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

Ceci est un produit commercial, mais il est gratuit pour une utilisation en source ouverte et restera toujours ainsi.

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

Il existe une application appelée QPython3 dans PlayStore qui peut être utilisée à la fois pour éditer et exécuter un script Python.

Lien du magasin

Une autre application appelée Termux dans laquelle vous pouvez installer python à l'aide de la commande

pkg install python

lien vers le magasin

Si vous souhaitez développer des applications, Python Android Couche de script (SL4A) .

La couche de script pour Android, SL4A, est une application open source qui permet aux programmes écrits dans une gamme de langages interprétés de s'exécuter sur Android. Il fournit également une API de haut niveau qui permet à ces programmes d'interagir avec le périphérique Android, facilitant ainsi l'accès à des données de capteur, l'envoi de SMS, le rendu d'interfaces utilisateur, etc.

Vous pouvez utiliser QPython :

Il dispose d'une console Python, d'un éditeur, ainsi que de la gestion des packages / installateurs

http://qpython.com/

Il s’agit d’un projet open source ayant à la fois des implémentations Python 2 et Python 3. Vous pouvez télécharger les fichiers source et Android .apk directement à partir de github.

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

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

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

Cela semble assez compliqué pour le moment, mais pourrait être un itinéraire viable à terme ...

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

Une autre option si vous recherchez 3.4.2 ou 3.5.1 est cette archive sur GitHub.

Python3-Android 3.4.2 ou Python3-Android 3.5.1

Il prend actuellement en charge Python 3.4.2 ou 3.5.1 et la version 10d du NDK. Il peut également prendre en charge les versions 3.3 et 9c, 11c et 12

.

C’est bien de le télécharger, de lancer make et d’obtenir le .so ou le .a

Je l'utilise actuellement pour exécuter Python brut sur des appareils Android. Avec quelques modifications aux fichiers de construction, vous pouvez aussi créer x86 et armeabi 64 bit

Une autre option semble être pyqtdeploy qui cite la documentation est:

  

un outil qui, associé à d’autres outils fournis avec Qt, permet   le déploiement d'applications PyQt4 et PyQt5 écrites en Python   version 2.7 ou Python version 3.3 ou ultérieure. Il prend en charge le déploiement sur le bureau   plates-formes mobiles (Linux, Windows et OS X) et aux plates-formes mobiles (iOS et   Android).

Selon Déploiement de l'application PyQt5 sur Android via pyqtdeploy et Qt5 , il est activement développé, bien qu'il soit difficile de trouver des exemples d'applications Android fonctionnant ou un didacticiel expliquant comment compiler de manière croisée toutes les bibliothèques requises sur Android. C'est un projet intéressant à garder à l'esprit cependant!

Découvrez enaml-native le concept réactif-native et l'applique au python. .

Il permet aux utilisateurs de créer des applications avec des widgets Android natifs et fournit aux API l'utilisation de bibliothèques Android et Java à partir de Python.

Il s’intègre également à android-studio et partage quelques-unes des fonctionnalités de développement de rea telles que le rechargement de code et le débogage à distance.

Consultez BeeWare . Au moment de répondre à cette question, il est encore au début du développement. Son objectif est de pouvoir créer des applications natives avec Python pour tous les systèmes d'exploitation pris en charge, y compris Android.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top