web-dev-qa-db-fra.com

Quels langages de programmation puis-je utiliser sur Android Dalvik?

En théorie, Dalvik exécute tout code d'octet de machine virtuelle, créé par exemple avec les compilateurs de

  • AspectJ
  • Fusion froide
  • Clojure
  • Sensationnel
  • Script JavaFX
  • JRuby
  • Jython
  • Rhinocéros
  • Scala

Existe-t-il déjà des versions de travail des compilateurs de bytecode pour Dalvik disponibles pour d'autres langages que Java?

64
mjn
  • Au lancement, Java était le seul langage de programmation officiellement pris en charge pour la création de logiciels tiers distribuables Android logiciel.

  • Kit de développement natif Android (Android NDK) qui permettra aux développeurs de créer Android composants logiciels avec C et C++.

  • Outre la prise en charge du code natif, Google étend également Android pour prendre en charge les langages de script dynamiques populaires . mois, Google a lancé le Android Scripting Environment (ASE) qui permet aux développeurs tiers de construire de simples Android avec Perl, JRuby, Python, LUA et BeanShell. Pour avoir l'idée et l'utilisation de [~ # ~] ase [~ # ~] , référez-vous Exemple de lien .

  • Scala est également pris en charge. Pour avoir des exemples de Scala, reportez-vous à ces Exemple de lien-1 , Exemple de lien-2 , Exemple de lien-3 .

  • Je viens d'en citer un article ici dans lequel j'ai trouvé des informations utiles comme suit:

    1. le langage de programmation est Java mais des ponts d'autres langages existent (C# .net - Mono, etc).
    2. peut exécuter des langages de script comme LUA, Perl, Python, BeanShell, etc.

  • J'ai lu le 2ème article sur Google Releases 'Simple' Android Programming Language . Par exemple, référez-vous à ceci .

  • Tout à l'heure (2 août 2010), j'ai lu un article qui décrit " Langage de programmation Frink et outil de calcul pour Android ", reportez-vous à ces liens Lien-1 , Lien-2

  • Le 4 août 2010, j'ai trouvé Concernant RenderScript. Fondamentalement, il s'agit d'un langage de type C pour la programmation graphique haute performance, qui vous aide à écrire facilement des effets visuels et des animations efficaces dans vos applications Android. Ce n'est pas encore publié car il ne l'est pas) t terminé.

62
Paresh Mayani

Scala fonctionne très bien.

Je programme mes Android en Scala ( site Web écrit en chinois avec quelques captures d'écran , code source) @ GitHub ), et il est assez facile de configurer l'évènement (sans IDE, en utilisant SBT comme outil de construction).

Il pourrait accéder à toutes les API dans Android SDK, donc tout ce que vous pourriez faire en Java, vous pouvez le faire dans Scala aussi.

Vous pouvez vérifier cela entrée de blog pour voir comment construire Android avec Scala et SBT).

24
Brian Hsu

Kawa est une variante charmante mais peu connue de Scheme qui existe silencieusement depuis de nombreuses années et fonctionne à la fois sur la JVM et Dalvik, nativement . Par conséquent, sa sortie n'inclut pas de VM supplémentaire et inclut uniquement des bibliothèques explicitement importées. Pour le programmeur final, cela signifie que les performances et la taille de l'exécutable de Kawa sont presque identiques à la norme Java (ProGuard non requis).

Kawa comprend également de nombreuses macros (y compris certaines spécifiques aux API Android) qui créent une syntaxe propre et agréable (en supposant que l'une n'est pas opposée aux parenthèses), et ajoute quelques goodies savoureux en plus de Scheme, comme "promesses" "(évaluation paresseuse et futurs en un). Le langage est assez robuste et bien documenté, et a été activement maintenu et évolue depuis les premiers jours de Java.

Le Java Calendrier de l'Avent résume les mérites de Kawa avec quelques exemples et liens informatifs.

6
bug

Un autre langage JVM qui fonctionne sur Android est Kotlin avec Anko , tous deux de Jetbrains .

3
Thomas

Je n'ai pas joué avec mais je sais que Scala fonctionne.

http://www.scala-lang.org/node/16

3
miloshadzic

Mercury fonctionne également sur Android, en utilisant son Java backend. J'ai écrit un application simple qui devrait aider quelqu'un à démarrer (il y a encore quelques autres exemples), et mercury-Android-helper également à cet effet (bien qu'à ce moment précis, il y ait peu de commits. Et aucun n'utilise ProGuard pour le moment, donc le .apk la taille est choquante.)

Bien que les autres articles ici soient joyeux à propos de Scala-sur-Android, les affiches dans les forums Scala sont plus préoccupés par la capacité de Scala à surmonter certaines des limites de Dalvik, et les personnes qui l'utilisent disent qu'elles réservent pour le code non-production. (Quelques discussions sur les problèmes de Scala ici .)

Je ne peux pas encore dire si Mercury a ses propres problèmes avec Dalvik, mais je suis passé de Scala pour le moment).

1
Julian Fondren

1) Angular + nativeScript

2) réactif

0
Ion Vladescu

Les langages typés dynamiquement ne seront pas possibles jusqu'à ce que Dalvik supporte la compilation JIT (Just In Time). Je crois qu'il existe un support JIT dans l'une des branches expérimentales d'Eclair, mais il n'est pas encore officiellement disponible/pris en charge dans Android.

0
Jeff Gilfelt