07/10/2015

Quand Facebook donne un coup de main à Android

Pour améliorer les performances mobiles de son réseau social, Facebook a décidé d’améliorer le bytecode Java sur la plateforme Android avec son projet Redex. Ce dernier fournit un pipeline pour l’optimisation des fichiers exécutables Dalvik pour Androïd (DEX).

Les ingénieurs Marty Greenia, Bert Maher, et Shane Ney ont récemment publié un article dans lequel il est clairement mis l’accent sur les performances, en terme de rapidité en particulier. Cette qualité est d’autant plus importante quand les appareils utilisés restent plus longtemps sur le marché. « Android est une de nos plus grandes plateformes, et c’est la plateforme avec la plus grande diversité d’appareil. Tout gain de performance ou d’efficacité sur ces appareils améliore l’expérience de millions de gens dans le monde », déclarent les ingénieurs dans cet article.

Un pipeline de transformation sur le bytecode DEX

Les ingénieurs maison expliquent que Redex applique une série de transformations personnalisées à un fichier DEX pour son optimisation avant son inclusion dans APK, Android Application Package. « L’avantage de réaliser nos optimisations au niveau du bytecode plutôt que directement sur le code source est la possibilité réaliser des optimisations globales, interclasses, sur l’intégralité du code binaire, plutôt que d’appliquer des optimisations au niveau d’une classe » expliquent les développeurs du projet. « Nous avons opté pour l’application des optimisations sur le bytecode DEX plutôt que Java par ce que certaines transformations ne peuvent être réalisées qu’à cette étape.

Le pipeline d’optimisation prend un fichier DEX original dans une série d’étapes, dont chacune agit comme un plug-in d’optimisation. «  Le pipeline Redex est généralisé pour traiter n’importe quel type de transformation DEX, mais nous voulons nous concentrer l’utilisation de Redex sur la réduction du bytecode à envoyer à APK».

Un code moins volumineux, c’est aussi un temps de téléchargement plus court, une installation plus rapide et une consommation de données moins importante pour les utilisateurs sur téléphone mobile. Enfin, la réduction du bytecode se traduit dans une meilleure performance d’exécution.

Un projet par encore livré à la communauté

À ce jour, Redex sera limité à la plateforme de Facebook, au moins pour l’instant. Bien que Facebook ait été plutôt actif sur le front de l’ouverture, il n’y a pas d’engagement en ce sens pour l’instant.

Source : code.facebook.com

Actualités