Questions fréquentes sur AOSP

Ce document contient des réponses aux questions générales sur la plate-forme Android Open Source (AOSP).

À propos de android-latest-release

À quelle branche dois-je synchroniser ?

  • Lorsque vous utilisez Repo, synchronisez-vous avec android-latest-release à l'aide de la commande suivante:

    repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
  • Lorsque vous utilisez Git directement, synchronisez-vous avec la branche de révision par défaut spécifiée dans le fichier manifeste android-latest-release.

Pour en savoir plus sur la synchronisation des branches, consultez la section Initialiser le client Repo.

Où le code de la prochaine version est-il poussé ?

Google transfère le code de la prochaine version vers la dernière branche de version publique et met à jour le fichier manifeste android-latest-release pour qu'il pointe vers cette branche.

Le code d'android-latest-release sera-t-il fusionné avec aosp-main ?

Non, le code ne sera pas fusionné avec aosp-main.

Où puis-je proposer des modifications à l'AOSP ?

Vous devez proposer de nouvelles modifications à android-latest-release (lorsque vous utilisez Repo) ou à la dernière branche de version spécifiée dans le fichier manifeste android-latest-release (lorsque vous utilisez Git directement). Les modifications proposées existantes sur d'autres branches (telles que aosp-main) n'ont pas besoin d'être déplacées.

Ma demande de modification sera-t-elle sélectionnée à partir de la branche android-latest-release dans Gerrit interne ?

Une fois que vous avez importé une modification proposée, Google l'examine et, si elle est acceptée, l'intègre à Gerrit interne.

Comment savoir si ma demande de modification a été acceptée ?

Les modifications acceptées et sélectionnées apparaissent dans un prochain transfert vers une branche de publication sur l'hôte Android et peuvent être synchronisées avec le dépôt à l'aide de android-latest-release. Il n'existe pas de mécanisme de notification lorsque des modifications proposées sont acceptées ou refusées.

Quel est le workflow général entre le moment où un contributeur externe propose une modification et celui où elle est fusionnée dans la dernière branche de publication ?

  1. Un contributeur externe propose une modification de android-latest-release (lorsque vous utilisez Repo) ou de la dernière branche de version spécifiée dans le fichier manifeste android-latest-release (lorsque vous utilisez directement Git).
  2. Google examine la modification. Si le changement est:

    • Une fois la modification acceptée, Google la sélectionne et la fusionne dans la branche de développement interne.
    • Non acceptée, Google ne sélectionne pas les modifications.
  3. Le contributeur externe vérifie sa modification dans android-latest-release.

Que faire si je n'ai plus besoin de la modification que j'ai proposée ?

Si vous n'avez pas besoin de la modification proposée, abandonnez-la pour qu'elle reste dans l'historique des modifications proposées sur l'hôte Android.

Questions sur les logiciels Open Source

Pourquoi Google a-t-il ouvert le code source d'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 de défaillance central, afin qu'aucun acteur du secteur ne puisse limiter ou contrôler les innovations des autres. Notre objectif le plus important 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. Dans la plupart des cas, 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 consacré 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 de superbes appareils équipés d'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 d'Android afin que tout le monde puisse modifier et distribuer le logiciel pour 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 du risque produit et ouvrent la voie à la vaste communauté d'OEM, qui lance ensuite d'autres 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 de la branche stable actuelle, vers laquelle le fichier manifeste android-latest-release pointe. Il s'agit de la branche que les fabricants portent sur leurs appareils. Cette branche est toujours adaptée à la publication.

Enfin, Google travaille sur la prochaine version de la plate-forme Android en parallèle du développement d'un appareil phare.

Pourquoi certaines parties d'Android sont-elles développées en 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. En attendant, les développeurs ne veulent 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.

Quand les versions du code source sont-elles publiées ?

Quand il sera prêt. La publication du code source est un processus assez complexe. Certaines parties d'Android, comme le noyau, sont développées en open source, et ce 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 à l'avance pour que nous puissions publier le code source pour un aperçu 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 modification finale 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 donne son accord final 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 le logiciel Android et développe de nouvelles versions. Étant donné qu'il est open source, ce logiciel peut être utilisé à n'importe quelle fin, y compris pour développer des appareils qui ne sont pas 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 API d'application alternative, comme un environnement entièrement basé sur C++. Nous déclinons cette contribution, car Android encourage les applications à s'exécuter 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 les personnes intéressées à contribuer au code source à nous contacter via les canaux listé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 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 examiner et accepter toutes les modifications proposées. Les personnes chargées de l'approbation sont généralement des employés de Google, mais les mêmes personnes sont responsables de toutes les soumissions, quelle que soit leur origine.

Pour en savoir plus, consultez Envoyer des correctifs.