Android Things : la stratégie de Google pour l’internet des objets passe par Android

, Partager

Le paysage de l’internet des objets s’est étoffé ces quatre dernières années, porté par la vague do it yourself et la communauté, toujours grandissante, des makers. Les géants de la Silicon Valley se sont engagés dans la course au développement de cette discipline entre systèmes distribués et intelligence ambiante. A l’approche de sa conférence Google I/O 2017, qui se tiendra du 17 au 19 mai à Mountain View, la firme californienne lève le voile sur un nouveau système d’exploitation pour l’internet des objets.

La naissance d’un système d’exploitation

En 2005, une petite startup créée par Andy Rubin, décide de commencer le développement d’un système d’exploitation pour appareil photo. L’entreprise, qui à l’époque développe des applications mobiles, se lance dans le développement d’un système d’exploitation pour périphériques mobiles sous licence libre, facilitant son adoption et son adaptation à de multiples usages par différents fabricants de périphériques. Cette startup, Android, est rachetée l’année suivante par Google. Cette symbiose donne naissance dès 2008 au premier smartphone de Google et T-Mobile : le gPhone. Android n’a, depuis cette première expérience, cessé de se développer.

Qu’est-ce qu’Android ?

Android, depuis sa création par la startup éponyme en 2005 n’a cessé d’évoluer, devenant une pile logicielle complète au cœur de l’écosystème mobile de Google, qui représente 80% du volume du marché des terminaux mobiles. Cette pile est composée de différentes couches :

La première est le système d’exploitation en lui-même. Android est issu d’une modification de Linux, dont il intègre le noyau pour fournir les services classiques d’un système d’exploitation : utilisations des périphériques, accès aux réseaux, manipulation de la mémoire, allocations de ressources, gestion de processus ainsi que les aspects relatifs à la sécurité et au contrôle des accès. L’équipe ayant développé Android a modifié en profondeur le noyau Linux en y apportant nombre d’améliorations qui ont depuis été intégrées dans le noyau de Linux à partir de la version 3.3 (ce qui représente une belle preuve de contribution à la communauté Open Source).

La seconde couche de cette pile est représentée par les différentes bibliothèques logicielles incluses dans Android. Elles permettent d’exploiter du code source tiers pour apporter à Android un certain nombre de fonctionnalités, très diverses, allant du moteur d’exécution web WebKit à des librairies de bases de données du SQLite pour ne citer que deux d’entre elles.

La troisième couche de la suite Android est son environnement d’exécution permettant d’exécuter les applications visibles par l’utilisateur. Initialement emprunté à Sun/Oracle et exploitant la pile Java, et nommé Dalvik, il a été complètement remanié en interne chez Google pour des questions de copyright et s’appelle maintenant Android RunTime ou ART. Il s’agit de la partie visible d’Android et se trouve en lieu et place du Serveur X de Linux qui est en charge de l’affichage de l’environnement de bureau et de la gestion du fenêtrage.

La quatrième couche, l’une des plus importantes, est le Software Development Kit (SDK) d’Android. Il s’agit de la suite logicielle permettant le développement d’applications tierces par les développeurs. Ce kit de développement représente le cœur du business model d’Android, permettant à Google d’ouvrir la plateforme pour des applications tierces. Sur le même modèle que d’autres créateurs de plateformes mobiles, comme Apple, Microsoft ou encore Symbian, Android est ouvert aux développements tiers grâce à son SDK, gratuit, qui permet d’alimenter le Google Play Store avec des applications téléchargeables par les utilisateurs finaux d’Android.

La dernière couche est constituée de tout ce qui est livré de manière standard avec Android : un environnement de bureau, un carnet d’adresses, un navigateur web et un téléphone. Android inclut également les services permettant l’exploitation des réseaux GSM, le Bluetooth, le Wi-Fi, la manipulation de la vidéo, du son, des images de différents formats, de capteurs embarqués (accéléromètre, boussole, caméra…) ainsi que la gestion du tactile, du stockage physique ou encore du multitâche et du rendu graphique.

Le système d’exploitation de Google est complet et robuste depuis de nombreuses années et particulièrement adapté aux plateformes mobiles ayant des ressources limitées.

Un tournant en 2015

Lors de la conférence Google I/O de 2015, un événement est passé un peu inaperçu dans le déluge de nouveautés de la firme de Mountain View, le renommage du projet « Brillo » (initialement supposé être sa plateforme dédiée à l’internet des objets) en … « Android Things ».

L’addition de ce nouveau système d’exploitation à la gamme Android est un indice de la stratégie de Google en ce qui concerne l’internet des objets. Il ne s’agit pas uniquement de s’implanter sur ce marché mais également de simplifier et d’y standardiser le développement d’applications. La stratégie est similaire à celle d’Android pour les mobiles et vise à établir un nouveau standard à destination des drones, des véhicules, de l’électroménager connecté ou encore de l’équipement médical, tout en bénéficiant du travail déjà accompli grâce à la popularité d’Android.

Parmi les nombreuses fonctionnalités désormais ouvertes aux développeurs on compte l’accès aux ports GPIO [1], aux périphériques USB, la possibilité de créer des applications non-graphiques, ainsi que l’accès aux différentes interfaces standards utilisées dans les systèmes embarqués (PWM, bus I2C, SPI et UART). Toutes ces nouvelles fonctionnalités sont tournées vers le développement d’applications permettant d’exploiter ou de piloter des capteurs. Ainsi « Android Things » est conçu de manière à permettre à un système d’interagir avec le monde extérieur. En plus de proposer ces nouvelles capacités, la plateforme s’enrichit de nouvelles interfaces de programmation pour les exploiter, tout en restant parfaitement compatibles avec les interfaces des versions plus traditionnelles d’Android, ce qui devrait éviter de dérouter les développeurs.

Bâtir sur l’écosystème existant

Android équipe aujourd’hui environ 80% des terminaux mobiles (smartphones + tablettes) ce qui représente des centaines de milliers d’utilisateurs quotidiens. De fait, la communauté des développeurs d’applications Android est nombreuse et rompue au développement pour ce système d’exploitation. Fournir un système d’exploitation dédié à l’internet des objets basé sur cet écosystème est un coup de maître pour accélérer son adoption par la communauté. En effet, seule la couche du système d’exploitation diffère de la version pour mobile d’Android. Ainsi, le SDK et la façon de développer des applications ne change pas, ce qui implique que les développeurs n’auront pas à fournir d’efforts pour s’adapter à de nouvelles pratiques de développement pour la nouvelle plateforme. Cette stratégie de compatibilité devrait garantir une très bonne acceptation et un taux d’adoption très élevé, d’autant que cette version d’Android est compatible avec les ordinateurs au format carte de crédit les plus populaires, dont le Raspberry Pi (le ténor du secteur des makers qui fournit un mini-ordinateur complet pour 35$).

Une version de ce nouvel OS est d’ores et déjà disponible pour les développeurs et Google vient d’en sortir la troisième version. Les images disques sont téléchargeables et installables sur différents ordinateurs type Raspberry Pi, iMX6 ou encore les ordinateurs embarqués d’Intel (Edison et Joule), cartes intégrées très prisées des makers et des adeptes du do it yourself. Cette mise à jour intervient à quelques jours de la conférence des développeurs Google, laissant, sans doute, présager de nouvelles annonces quant à une sortie officielle de la prochaine plateforme du géant de l’Internet. Reste à savoir si Google sera à même de réitérer l’impact vraiment majeur qu’a eu Android dans la sphère du mobile…


Rédacteur :
- Marc-Emmanuel Perrin, Attaché adjoint pour la Science et la Technologie, San Francisco, deputy-sf@ambascience-usa.org

Sources :
- http://www.androidpolice.com/2015/05/29/io-2015-brillo-and-weave-are-the-foundations-of-googles-internet-of-things-push/
- http://www.androidpolice.com/2016/12/13/googles-brillo-internet-things-platform-now-android-things-developer-preview-available-download/
- https://android-developers.googleblog.com/2017/05/running-android-things-on-aiy-voice-kit.html
- http://www.pcworld.com/article/2034723/android-founder-we-aimed-to-make-a-camera-os.html
- https://developer.android.com/things/