Python >> Tutoriel Python >  >> Python GUI >> Kivy GUI

Différence entre Kivy et Java pour les applications Android

C'est une question plutôt subjective.

1) Lequel est le plus facile et le plus rapide pour développer des applications Android ?

Je pense qu'il y a un argument solide en faveur de kivy, mais cela n'a pas de réponse objective.

2) Kivy a-t-il des limitations pour accéder à certaines parties d'Android (comme pas entièrement intégré à son API) ?

Le projet kivy inclut pyjnius, un outil pour accéder aux classes java via python, et en principe, je pense que cela devrait donner un accès arbitraire (édition :à la réflexion, pas arbitraire, mais probablement pas limité de manière immédiatement importante) à l'apis java.

En pratique, les wrappers python préconstruits sont un travail en cours, bien qu'ils s'améliorent rapidement. La bibliothèque Android Python donne déjà un accès facile à de nombreuses choses (y compris, mais sans s'y limiter, les intentions, les vibrations, l'accéléromètre, etc.). Même lorsqu'il n'y a pas encore de wrapper python, il peut être très facile de faire le travail nécessaire.

Edit:Il y a eu récemment un excellent travail sur le projet plyer de Kivy, destiné à fournir une API transparente aux outils spécifiques à la plate-forme afin que vous puissiez l'appeler une fois et obtenir le même comportement sur différents systèmes sans connaître les détails. Il inclut un support utile pour certaines parties de l'API Android.

3) Et enfin, une application Android développée avec kivy fonctionnerait aussi vite qu'une application développée avec java ?

En fin de compte, la réponse est probablement non, mais il est très peu probable que la différence soit importante, sauf si vous faites quelque chose de fortement limité par le processeur. La tâche que vous suggérez ne serait pas limitée de cette façon.


Pour compléter la réponse d'inclément, pyjnius permet en effet d'accéder à une grande partie de l'api android. Mais ce n'est pas parfait, appeler des classes existantes n'est pas toujours suffisant, et un programmeur android a souvent besoin de créer du code qui sera appelé par android pour gérer les événements, il y a deux façons de le faire, toutes deux utilisées par l'api android.

  • La première concerne les interfaces :vous devez créer une classe qui implémente une interface Java existante, pyjnius peut le faire, vous créez une classe Python et déclarez quelle interface Java elle implémente, et disposez d'un décorateur pour déclarer les méthodes que vous avez déclarer.
  • La seconde est la sous-classe, vous devez sous-classer une classe Java existante et remplacer certaines méthodes, et nous n'avons pas encore de moyen de le faire avec pyjnius, donc pour celles-ci, vous devez créer une classe Java et utilisez-le dans votre programme (heureusement, vous pouvez mélanger cela avec kivy/pyjnius, cela ne peut tout simplement pas être 100 % python dans ce scénario).

Cela peut donc valoir la peine de jeter un coup d'œil à l'API au préalable, pour voir si les parties de l'API Android auxquelles vous devez accéder l'exigent.


Prochain article