Developpez.com

Le Club des Développeurs et IT Pro

Jack et Jill : les prochains compilateurs pour Android ?

Google introduit discrètement ceux-ci dans la dernière révision du SDK Android

Le 2014-12-07 10:55:25, par Hinault Romaric, Responsable .NET
Google a mis les développeurs au centre d’Android 5.0 Lollipop, la dernière version majeure de son système d’exploitation mobile.

Lollipop introduit pratiquement 5000 nouvelles API et de nouveaux frameworks, dont le nouveau « Extension Pack », qui permettra aux développeurs de jeux de bénéficier de la tesselation et des shaders de géométrie pour créer des jeux « du niveau d'un PC ».

De plus, il embarque un nouvel environnement d’exécution baptisé ART, qui améliore d’un facteur de quatre les performances des nouvelles applications, et double les performances d’applications Android existantes, sans aucune modification de code.

Et ce n’est pas tout ! Google a discrètement procédé à des modifications des outils de compilation pour Android, pour prendre en charge une nouvelle paire de compilateurs, qui a été baptisée « Jack et Jill. »

Les traces de Jack et Jill ont été découvertes par le développeur Eric LaFortune, directeur technique de Saikoa, une entreprise spécialisée dans le développement de solutions pour l’optimisation et l’obfuscation d’applications Java et Android. Les outils ont été introduits par Google dans les outils de build pour le SDK Android 5.0, révision 1 (API 21.1).

Jack et Jill tireraient leur source de FlexyCore, la start-up française spécialisée dans l’optimisation des performances des terminaux mobiles, rachetée par Google en 2013. Jack et Jill ont pour objectif d’accélérer le développement et booster les performances d’applications Android.

Les compilateurs ne sont pas encore activités par défaut. Ils peuvent être utilisés sous forme de plugin pour Android Studio via la directive « useJack true » dans le fichier de configuration de l’outil de build gradle.


Les compilateurs Jack et Jill se positionnent comme des intermédiaires entre le code source du développeur et la machine virtuelle Dalvik ou ART (Android Runtime).

Concrètement, actuellement, pour une application Android, le code Java est compilé en bytecode Java en utilisant le compilateur javac d’Oracle, avant d’être à nouveau compilé en exécutable Dalvik (.dex) en utilisant l’outil Dex. Désormais, avec Jack et Jill, le compilateur d’Oracle ne sera plus utilisé. Jack et Jill se chargeront de transformer le code Java en bytecode Davilk en utilisant une nouvelle représentation de bytecode intermédiaire appelée « Jayce ».


Pourquoi avoir recours à une paire de compilateurs ? En effet, Jill fonctionne comme un précompilateur, qui se charge de convertir les classes et bibliothèques Java en bytecode Jayce. Le bytecode Jayce est ensuite utilisé par Jack dans son propre processus de compilation, pour produire la sortie « .dex », compréhensible par Davilk.


Pour l’instant, Google n’a encore fait aucune mention officielle de « Jack et Jill ». Ces outils sont encore au stade de préversion. Pour Lafortune, il s’agit pour Google de rationaliser le processus de compilation pour Android et d’améliorer les performances lors des « build ».

Source : Billet de blog d'Eric LaFortune

Et vous ?

Que pensez-vous de Jack et Jill ?
  Discussion forum
2 commentaires
  • Olivier Famien
    Chroniqueur Actualités
    [Pour Lafortune, il s’agit pour Google de rationaliser le processus de compilation pour Android et d’améliorer les performances lors des « build ».]

    Peut-être aussi à cause du conflit qui oppose Google a Oracle sur les api java, allez savoir.
  • yapiti
    Membre du Club
    Pour avoir essayé j'ai eu le droit à :
    Code :
    GC overhead limit exceeded
    .
    Apparemment 1Go de RAM n'est plus suffisant pour une compilation.