Ce document contient des réponses aux questions générales sur la plate-forme Android Open Source (AOSP).
Questions sur les logiciels Open Source
Pourquoi Google a-t-il ouvert le code source Android ?
Google a lancé l'AOSP en réponse à nos propres expériences de lancement d'applications mobiles. Nous voulions nous assurer qu'une plate-forme ouverte serait toujours disponible pour les opérateurs, les OEM et les développeurs afin de concrétiser leurs idées innovantes. Nous voulions également éviter tout point d'échec central, afin qu'aucun acteur du secteur ne puisse restreindre ou contrôler les innovations d'un autre. Notre objectif principal avec l'AOSP est de nous assurer que les logiciels Android Open Source sont implémentés aussi largement et de manière aussi compatible que possible, pour le bénéfice de tous.
De quel type de projet Open Source s'agit-il pour Android ?
Google supervise le développement du noyau AOSP et s'efforce de créer des communautés de développeurs et d'utilisateurs solides. Pour la plupart, le code source Android est sous licence Apache 2.0 permissive, plutôt qu'une licence copyleft. Nous avons choisi la licence Apache 2.0, car nous pensons qu'elle encourage l'adoption généralisée des logiciels Android. Pour en savoir plus, consultez la section Licences.
Pourquoi Google est-il responsable d'Android ?
Le lancement d'une plate-forme logicielle est un processus complexe. L'ouverture est essentielle au succès à long terme d'une plate-forme, car elle attire les investissements des développeurs et garantit un terrain de jeu équitable. La plate-forme doit également être un produit attrayant pour les utilisateurs.
Google a engagé les ressources d'ingénierie professionnelles nécessaires pour s'assurer qu'Android est une plate-forme logicielle entièrement compétitive. Google traite le projet Android comme une opération de développement de produit à grande échelle et conclut les accords commerciaux nécessaires pour s'assurer que des appareils de qualité exécutant Android arrivent sur le marché.
En nous assurant qu'Android est un succès auprès des utilisateurs, nous contribuons à assurer la vitalité d'Android en tant que plate-forme et projet Open Source. Après tout, qui veut le code source d'un produit qui n'a pas réussi ?
Notre objectif est de garantir un écosystème Android prospère. Nous avons ouvert le code source Android afin que chacun puisse modifier et distribuer le logiciel afin de répondre à ses propres besoins.
Quelle est la stratégie globale de Google pour le développement de produits Android ?
Nous lançons d'excellents appareils sur un marché concurrentiel. Nous incorporons ensuite les innovations et les améliorations que nous avons apportées à la plate-forme de base pour la prochaine version.
En pratique, cela signifie que l'équipe d'ingénieurs Android se concentre sur un petit nombre d'appareils "flagships" et développe la prochaine version du logiciel Android pour prendre en charge ces lancements de produits. Ces appareils phares absorbent une grande partie des risques liés aux produits et offrent la possibilité à l'ensemble de la communauté des OEM, qui en assurent le suivi avec davantage d'appareils qui exploitent les nouvelles fonctionnalités. Nous nous assurons ainsi que la plate-forme Android évolue en fonction des besoins des appareils réels.
Comment le logiciel Android est-il développé ?
Chaque version de plate-forme d'Android (1.5 ou 8.1, par exemple) possède une branche correspondante dans l'arborescence Open Source. La branche la plus récente est considérée comme la version branche stable actuelle. Il s'agit de la branche que les fabricants transmettent à leurs appareils. Cette branche reste adaptée à la publication à tout moment.
Parallèlement, il existe une branche expérimentale actuelle, dans laquelle des contributions spéculatives, telles que de grandes fonctionnalités de nouvelle génération, sont développées. Les corrections de bugs et autres contributions peuvent être incluses dans la branche stable actuelle à partir de la branche expérimentale, le cas échéant.
Enfin, Google travaille sur la prochaine version de la plate-forme Android en parallèle du développement d'un appareil phare. Cette branche extrait les modifications des branches expérimentales et stables, le cas échéant.
Pour en savoir plus sur les branches et les versions, consultez la section Cycle de vie des versions.
Pourquoi certaines parties d'Android sont-elles développées en mode privé ?
Il faut généralement plus d'un an pour lancer un appareil sur le marché. Et, bien sûr, les fabricants d'appareils souhaitent proposer le logiciel le plus récent possible. Parallèlement, les développeurs ne souhaitent pas suivre en permanence les nouvelles versions de la plate-forme lorsqu'ils écrivent des applications. Les deux groupes sont confrontés à une tension entre l'expédition de produits et le fait de ne pas vouloir être en retard.
Pour y remédier, certaines parties de la prochaine version d'Android, y compris les API de la plate-forme de base, sont développées dans une branche privée. Ces API constituent la prochaine version d'Android. Notre objectif est de concentrer l'attention sur la version stable actuelle du code source Android pendant que nous créons la prochaine version de la plate-forme. Cela permet aux développeurs et aux OEM d'utiliser une seule version sans suivre les futurs travaux inachevés simplement pour suivre le rythme. D'autres parties du système Android qui ne sont pas liées à la compatibilité des applications sont développées à l'ouverture. Au fil du temps, nous prévoyons de faire passer un plus grand nombre de ces éléments au développement ouvert.
Quand le code source est-il publié ?
Lorsqu'ils sont prêts. La publication du code source est un processus assez complexe. Certaines parties d'Android sont développées en open source, et leur code source est toujours disponible. Les autres parties sont d'abord développées dans un arbre privé, et ce code source est publié lorsque la prochaine version de la plate-forme est prête.
Dans certaines versions, les API de la plate-forme principale sont prêtes suffisamment longtemps à l'avance pour que nous puissions déployer le code source en avant-première avant la sortie de l'appareil. Dans d'autres versions, ce n'est pas possible. Dans tous les cas, nous publions le code source de la plate-forme lorsque nous estimons que la version est stable et lorsque le processus de développement le permet.
Quelles sont les étapes à suivre pour publier le code source d'une nouvelle version d'Android ?
La publication du code source d'une nouvelle version de la plate-forme Android est un processus important. Tout d'abord, le logiciel est intégré à une image système pour un appareil et soumis à diverses formes de certification, y compris une certification réglementaire gouvernementale pour les régions où les téléphones seront déployés. Le code est également soumis à des tests d'opérateur. Il s'agit d'une phase importante du processus, car elle permet de détecter les bugs logiciels.
Lorsque la version est approuvée par les autorités réglementaires et les opérateurs, le fabricant commence à produire en série les appareils, et nous commençons à publier le code source.
Parallèlement à la production en série, l'équipe Google lance plusieurs initiatives pour préparer la version Open Source. Ces efforts incluent la réalisation des modifications finales de l'API, la mise à jour de la documentation (pour refléter les modifications apportées lors des tests de qualification, par exemple), la préparation d'un SDK pour la nouvelle version et le lancement des informations de compatibilité de la plate-forme.
Notre équipe juridique procède à l'approbation finale pour publier le code en Open Source. Tout comme les contributeurs Open Source sont tenus de signer un Contrat de licence pour les contributeurs attestant de leur propriété intellectuelle sur leur contribution, Google doit vérifier que la source est autorisée à effectuer des contributions.
À partir du début de la production en série, le processus de publication du logiciel prend généralement environ un mois. Les versions du code source sont donc souvent publiées à peu près au même moment que les appareils arrivent chez les utilisateurs.
Quel est le lien entre l'AOSP et le Programme de compatibilité Android ?
L'AOSP gère les logiciels Android et en développe de nouvelles versions. Comme il s'agit d'un logiciel Open Source, il peut être utilisé à n'importe quelle fin, y compris pour le développement d'appareils non compatibles avec d'autres appareils basés sur la même source.
Le programme de compatibilité Android a pour fonction de définir une implémentation de référence d'Android compatible avec les applications tierces écrites par les développeurs. Les appareils compatibles avec Android peuvent participer à l'écosystème Android, y compris à Google Play. Les appareils qui ne répondent pas aux exigences de compatibilité se trouvent en dehors de cet écosystème.
En d'autres termes, le programme de compatibilité Android permet de distinguer les appareils compatibles avec Android des appareils qui exécutent simplement des dérivés du code source. Nous acceptons toutes les utilisations du code source Android, mais pour participer à l'écosystème Android, un appareil doit être identifié comme compatible avec Android par le programme.
Comment puis-je contribuer à Android ?
Vous pouvez signaler des bugs, écrire des applications pour Android ou contribuer au code source de l'AOSP.
Les types de contributions de code que nous acceptons sont limités. Par exemple, une personne peut vouloir contribuer à une autre API d'application, comme un environnement entièrement basé sur C++. Nous refuserions cette contribution, car Android encourage l'exécution des applications dans l'environnement d'exécution ART. De même, nous n'accepterons pas les contributions telles que les bibliothèques GPL ou LGPL qui ne sont pas compatibles avec nos objectifs de licence.
Nous encourageons ceux qui souhaitent contribuer au code source à nous contacter via les canaux répertoriés dans la communauté Android avant de commencer à travailler. Pour en savoir plus, consultez la section Contribuer.
Comment devenir contributeur Android ?
L'AOSP ne dispose pas vraiment d'une notion de contributeur. Toutes les contributions (y compris celles rédigées par des employés de Google) passent par un système basé sur le Web appelé Gerrit, qui fait partie du processus d'ingénierie Android. Ce système fonctionne en tandem avec le système de gestion du code source Git pour gérer de manière claire les contributions de code source.
Un approbateur désigné doit accepter toutes les modifications envoyées. Les approbateurs sont généralement des employés de Google, mais les mêmes approbateurs sont responsables de toutes les demandes, quelle que soit leur origine.
Pour en savoir plus, consultez Envoyer des correctifs.