Pourquoi Project Treble ?

Si vous suivez le monde Android depuis quelques années, vous avez sûrement entendu parler du fameux Project Treble en 2017, a.k.a. “ce truc qui va me donner la dernière version d’Android plus rapidement”. Et oui, ça a l’air pas mal, mais qu’est-ce que ça change ? Pourquoi ça existe ? Dans cet article on va essayer de répondre à ces questions.

Houston, on a un problème

Project Treble a un peu sécoué Android, il a surtout changé les couches de base, mais quel était le problème ? C’est la distribution des versions dans le marché !

Source : https://www.bidouille.org/misc/androidcharts

L’adoption des nouvelles versions est trop lente. Ce sont les fabricants de dispositifs qui sont en cause, puisque l’adaptation d’une nouvelle version à un appareil existant est trop chère !

Ryan Reynolds se demande pourquoi il n’a pas la dernière version d’Android

À chaque fois qu’une nouvelle version est disponible, les fabricants doivent réécrire leur code (et parfois même le code d’Android) pour la supporter sur leurs vieux portables, puisqu’ils font des tonnes de modifications sur le système de base, et tout ça pendant qu’ils travaillent sur les nouveaux dispositifs en même temps ! C’est trop compliqué, et surtout pas rentable.

Alors Google a décidé de changer la couche de base d’Android, en mettant des interfaces bien structurées pour relier le code des fabricants au framework. L’idée est simple, ils ont ajouté l’interface Vendor, et un nouveau HAL, qui standardise la couche logiciel des fabricants. Le but étant de pouvoir changer la version de l’OS sans changer les couches en haut (applications utilisateur) ou en bas (code du fabricant).

Modifications pour une mise à jour avant Treble
Modifications pour une mise à jour après Treble

VINT et VNDK

Maintenant qu’on connaît le problème, on va regarder une des nouveautés les plus importantes : l’interface Vendor. Il s’agit d’une interface versionnée que les fabricants doivent respecter pour les couches de base. Si vous avez lu nos articles précédents sur la couche HAL (1 et 2), vous vous demanderez probablement quelle est la différence entre VINT et HAL alors.

En fait, la différence est plutôt l’utilisation, car le concept reste le même : un ensemble d’interfaces à respecter. Le HAL fait partie de l’OS, et son but est d’abstraire la communication avec le hardware. En revanche, VINT est une interface de compatibilité, et un standard à suivre pour les fabricants, afin d’assurer qu’Android puisse automatiquement être mis à jour sur une gamme de dispositifs.

VINT a un kit de dévéloppement associé, le VNDK, mais encore plus important, il arrive avec une suite de tests pour que les fabricants soient sûrs que leurs implémentations sont correctes.

Scénario d’une Mise à Jour

On ne va pas parler du HAL et HIDL, vu que ça a été le point principal de nos précédents articles, mais je vous propose de regarder le scénario d’une mise à jour Android.

De nos jours, les mises à jour Android sont OTA, c’est à dire, Over The Air. Essentiellement, l’idée est de pouvoir les exécuter de façon simple, sûre, et sans fil. Si vous avez un portable Android, je suis sûr que vous avez déjà expérimenté le processus, et je pense que vous avez aussi remarqué que vos applications et services marchent toujours après l’installation (bon, peut-être pas toujours, mais vous me suivez). Ça marche parce que depuis longtemps, il existe une interface à la VINT pour les couches supérieures.

Ce que Treble nous propose c’est de refaire la même chose mais pour les couches de bas niveau, donc qu’est-ce qui se passe lors d’une mise à jour ? En gros, le nouveau framework va négocier avec votre dispositif.

Android est correctement mis à jour sur votre portable

Avant d’être installé, le framework va demander au dispositif ses caractèristiques, à l’aide de l’interface VINT, pour assurer la compatibilité après l’installation. Donc il y a quelques informations qui sont nécessaires pour chaque partie.

  • Le manifeste du dispositif est un composant qui décrit ce que le dispositif peut rendre comme service au framework
  • La matrice de compatibilité d’Android est un composant du côté framework, qui spécifie ce qu’elle attend du dispositif
  • Le manifeste du framework décrit les services que le framework peut rendre au dispositif
  • La matrice de compatibilité du dispositif décrit ce que le dispositif attend du framework
Schéma de négociation entre le framework et le dispositif

Donc chaque partie a des manifestes pour dire ce qu’elles offrent, et des matrices de compatibilité pour dire ce dont elles ont besoin, et c’est comme ça que l’échange se fait. Si tout se passe bien et que les deux parties sont contentes, alors vous aurez votre nouvelle version prête pour regarder Instagram.

Qu’est-ce qu’on peut attendre à long terme ?

Bien évidemment, cette technique n’est pas encore complètement implémentée pour tous les dispositifs qui ont Android 8, même si Project Treble a été annoncé il y a presque 2 ans. Mais les choses s’améliorent peu à peu.

Dans le futur, on devrait s’attendre à que les mises à jour soient plus fréquentes et que le support soit disponible pour plus de dispositifs et pour plus longtemps. On espère aussi que grâce au nouveau HAL, les services hardware soient mieux gérés, probablement pour l’économisation de la batterie et la sécurité, et que les nouvelles versions arrivent beaucoup plus vite aux dispositifs.

Sources

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.