Gestion des logiciels Android

Le projet Android Open Source (AOSP) maintient une pile logicielle complète à porter par les OEM et autres implémenteurs de périphériques et à fonctionner sur leur propre matériel. Pour maintenir la qualité d'Android, Google a fourni à plein temps des ingénieurs, des chefs de produit, des concepteurs d'interfaces utilisateur, des testeurs d'assurance qualité et tous les autres rôles nécessaires pour mettre sur le marché 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 et la maintenance open source des codelines Android au cycle de développement de produit plus large.

Gestion du code AOSP

Le tableau ci-dessous décrit les concepts derrière la gestion et les versions de code AOSP.

diagramme de codeline
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 des 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 plate-forme 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 appareil partenaire sur un appareil phare dont les spécifications sont choisies pour pousser Android dans la direction que nous pensons qu'il devrait aller.
  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 libération des plates - formes correspond à la version dans le SdkVersion domaine de AndroidManifest.xml fichiers et définie à l' intérieur des frameworks/base/api dans l'arbre 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 qu'ils fonctionnent comme des projets en amont. Généralement, ces projets sont entièrement développés dans l'arborescence publique. 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, les instantanés sont périodiquement extraits dans les versions.
  • À tout moment, une ligne de code de version (qui peut se composer de plus d'une branche dans git) est considérée comme le seul code source canonique pour une version de plate-forme Android donnée. Les fabricants OEM et les autres groupes qui créent des périphériques ne doivent extraire que 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é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 à d'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 du framework et des API de la plate-forme) est développée par Google en interne. Pour plus de détails, consultez Codelines privées .
  • Les modifications sont extraites des branches amont, de version et expérimentale dans 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 coupe une version de la prochaine version de la plate-forme (en particulier, une nouvelle SdkVersion ). Cela correspond à la codeline interne qui devient une branche de publication publique et à la nouvelle codeline de la plate-forme actuelle.
  • Lorsqu'une nouvelle version de plate-forme est coupée, une ligne de code expérimentale correspondante est créée en même temps.

Codelines 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 souhaitent 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 sécurisant les protections de la propriété intellectuelle liée à Android.

Par conséquent, Google détient fréquemment des informations confidentielles provenant de tiers et doit s'abstenir de révéler des fonctionnalités sensibles jusqu'à ce que les protections appropriées soient assurées. En outre, il existe de réels risques pour la plate-forme si trop de versions de plate-forme existent à la fois. 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 plate-forme se produit 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.