Gestion des logiciels Android

Le projet Android Open Source (AOSP) maintient une pile logicielle complète à porter par les OEM et d'autres implémenteurs d'appareils et à exécuter sur leur propre matériel. Pour maintenir la qualité d'Android, Google a fourni des ingénieurs à plein temps, des chefs de produit, des concepteurs d'interface utilisateur, des testeurs d'assurance qualité et tous les autres rôles nécessaires pour commercialiser des appareils modernes.

En conséquence, nous maintenons un certain nombre de lignes de code pour séparer clairement la version stable actuelle d'Android des travaux expérimentaux instables. Nous intégrons l'administration open source et la maintenance des lignes de code Android dans le cycle de développement de produits plus large.

Gestion des codes AOSP

Le tableau ci-dessous décrit les concepts sous-jacents à la gestion et aux versions du code AOSP.

diagramme de la ligne de code
Figure 1. Code AOSP et versions
  1. À tout moment, il existe une dernière version actuelle de la plate-forme Android. Cela prend généralement la forme d'une branche dans l'arbre.
  2. Les constructeurs d'appareils et les contributeurs travaillent avec la dernière version actuelle, en corrigeant les bogues, en lançant de nouveaux appareils, en expérimentant de nouvelles fonctionnalités, etc.
  3. En parallèle, Google travaille en interne sur la prochaine version de la plateforme et du framework Android en fonction des besoins et des objectifs du produit. Nous développons la prochaine version d'Android en travaillant avec un partenaire d'appareil sur un appareil phare dont les spécifications sont choisies pour pousser Android dans la direction que nous pensons qu'il devrait prendre.
  4. Lorsque la version n+1 est prête, elle est publiée dans l'arborescence des sources publiques et devient la nouvelle version la plus récente.

Termes et mises en garde

  • Une version correspond à une version formelle de la plate-forme Android, telle que 1.5 ou 8.1. Une release de la plateforme correspond à la version dans le champ SdkVersion des fichiers AndroidManifest.xml et définie dans frameworks/base/api dans l'arborescence source.
  • Un projet en amont est un projet open source à partir duquel la pile Android extrait du code. En plus des projets tels que le noyau Linux et WebKit, nous continuons à migrer certains projets Android semi-autonomes tels que ART, les outils Android SDK et Bionic pour travailler en tant que projets en amont. Généralement, ces projets sont entièrement développés dans l'arbre public. Pour certains projets en amont, les développeurs contribuent directement au projet en amont. Pour plus de détails, voir Projets en amont . Dans les deux cas, des instantanés sont périodiquement extraits des versions.
  • À tout moment, une ligne de code de version (qui peut consister en plusieurs branches dans git) est considérée comme le seul code source canonique pour une version de plate-forme Android donnée. Les OEM et autres groupes qui créent des appareils ne doivent tirer que d'une branche de publication.
  • Des codes expérimentaux sont établis pour capturer les changements de la communauté afin qu'ils puissent être itérés dans un souci de stabilité.
  • Les modifications qui s'avèrent stables sont finalement transférées dans une branche de publication. Cela s'applique uniquement aux corrections de bogues, aux améliorations d'application et aux autres modifications qui n'affectent pas les API de la plate-forme.
  • Les modifications sont extraites dans les branches de publication des projets en amont (y compris les projets en amont Android) si nécessaire.
  • La version n+1 (la prochaine version majeure des API du framework et de la plateforme) est développée par Google en interne. Pour plus de détails, voir Lignes de code privées .
  • Les modifications sont extraites des branches en amont, de version et expérimentales vers la branche privée de Google, si nécessaire.
  • Lorsque les API de la plate-forme pour la prochaine version sont stabilisées et entièrement testées, Google supprime une version de la prochaine version de la plate-forme (en particulier, une nouvelle SdkVersion ). Cela correspond à la transformation de la ligne de code interne en une branche de version publique et à la nouvelle ligne de code de la plate-forme actuelle.
  • Lorsqu'une nouvelle version de plateforme est coupée, une ligne de code expérimentale correspondante est créée en même temps.

Lignes de code privées

La stratégie de gestion des sources ci-dessus comprend une ligne de code que Google garde privée pour attirer l'attention sur la version publique actuelle d'Android.

Les OEM et autres constructeurs d'appareils souhaitent naturellement expédier des appareils avec la dernière version d'Android. De même, les développeurs d'applications ne veulent pas gérer plus de versions de plate-forme que nécessaire. Pendant ce temps, Google conserve la responsabilité de l'orientation stratégique d'Android en tant que plate-forme et produit. Notre approche se concentre sur un petit nombre d'appareils phares pour piloter des fonctionnalités tout en garantissant la protection de la propriété intellectuelle liée à Android.

En conséquence, Google est fréquemment en possession d'informations confidentielles de tiers et doit s'abstenir de révéler des fonctionnalités sensibles jusqu'à ce qu'elles aient obtenu les protections appropriées. De plus, il existe de réels risques pour la plate-forme si trop de versions de plate-forme existent en même temps. Pour ces raisons, nous avons structuré le projet open source (y compris les contributions de tiers) pour nous concentrer sur la version stable actuellement publique d'Android. Le développement approfondi de la prochaine version de la plate-forme se déroule en privé jusqu'à ce qu'elle soit prête à devenir une version officielle.

Nous reconnaissons que de nombreux contributeurs ne sont pas d'accord avec cette approche et nous respectons leurs points de vue. Cependant, c'est l'approche qui nous semble la meilleure et celle que nous avons choisi de mettre en œuvre pour Android.