Gestion du logiciel Android

Le projet Android Open Source (AOSP) gère une pile logicielle complète qui peut être portée par les OEM et autres implémenteurs d'appareils et exécutée sur leur propre matériel. Pour maintenir la qualité d'Android, Google a déployé des ingénieurs à temps plein, des chefs de produit, des concepteurs d'interfaces 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 du travail expérimental instable. 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 derrière la gestion et les versions du code AOSP.

diagramme de 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, corrigent les bogues, lancent de nouveaux appareils, expérimentent 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 sur un appareil phare dont les spécifications sont choisies pour pousser Android dans la direction que nous pensons devoir prendre.
  4. Lorsque la n+1ème version est prête, elle est publiée dans l'arborescence des sources publiques et devient la nouvelle version la plus récente.

Conditions et mises en garde

  • Une release correspond à une version formelle de la plateforme Android, telle que 1.5 ou 8.1. Une version de la plateforme correspond à la version dans le champ SdkVersion des fichiers AndroidManifest.xml et définie dans frameworks/base/api dans l'arborescence des sources.
  • Un projet en amont est un projet open source dont la pile Android extrait le code. En plus de 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 fonctionner en tant que projets en amont. Généralement, ces projets sont développés entièrement dans l’arbre public. Pour certains projets en amont, les développeurs contribuent directement au projet en amont. Pour plus de détails, consultez Projets en amont . Dans les deux cas, des instantanés sont périodiquement intégrés aux versions.
  • À tout moment, une ligne de code de version (qui peut comprendre plusieurs branches dans git) est considérée comme le seul code source canonique pour une version donnée de la plateforme Android. Les OEM et autres groupes créant des appareils doivent uniquement être extraits d'une branche de version.
  • Des lignes de code expérimentales sont établies pour capturer les changements de la communauté afin qu'ils puissent être répétés dans un souci de stabilité.
  • Les modifications qui s'avèrent stables sont finalement intégrées dans une branche de publication. Cela s'applique uniquement aux corrections de bugs, aux améliorations d'applications et à d'autres modifications qui n'affectent pas les API de la plateforme.
  • Les modifications sont extraites des branches de version des projets en amont (y compris les projets Android en amont) si nécessaire.
  • La n+1ème version (la prochaine version majeure du framework et des API de la plateforme) est développée par Google en interne. Pour plus de détails, consultez 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 publie une version de la prochaine version de la plate-forme (en particulier, une nouvelle SdkVersion ). Cela correspond au fait que la ligne de code interne est devenue une branche de publication publique et à la nouvelle ligne de code de la plate-forme actuelle.
  • Lorsqu'une nouvelle version de la plateforme est supprimé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 inclut une ligne de code que Google garde privée pour attirer l'attention sur la version publique actuelle d'Android.

Les constructeurs OEM et autres constructeurs d’appareils souhaitent naturellement expédier leurs appareils avec la dernière version d’Android. De même, les développeurs d’applications ne souhaitent pas gérer plus de versions de plateforme 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 les 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 provenant de tiers et doit s'abstenir de révéler des caractéristiques sensibles jusqu'à ce qu'il ait obtenu les protections appropriées. De plus, il existe de réels risques pour la plateforme si trop de versions de plateforme existent en même temps. Pour ces raisons, nous avons structuré le projet open source (y compris les contributions de tiers) pour se concentrer sur la version stable actuellement publique d'Android. Le développement en profondeur de la prochaine version de la plateforme 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.