Ce document contient des réponses aux questions générales sur la plateforme Android Open Source (AOSP).
Questions 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 en matière de lancement d'applications mobiles. Nous voulions nous assurer qu'il y aurait toujours une plate-forme ouverte disponible pour que les opérateurs, les équipementiers et les développeurs puissent l'utiliser pour concrétiser leurs idées innovantes. Nous voulions également éviter tout point central de défaillance, afin qu’aucun acteur de l’industrie ne puisse restreindre ou contrôler les innovations des autres. Notre objectif le plus important avec l'AOSP est de garantir que les logiciels Android open source sont mis en œuvre de la manière la plus large et la plus compatible possible, pour le bénéfice de tous.
Quel type de projet open source est Android ?
Google supervise le développement de l'AOSP de base et s'efforce de créer de solides communautés de développeurs et d'utilisateurs. Pour la plupart, le code source d'Android est sous licence permissive Apache 2.0, plutôt que sous 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 plus de détails, voir Licences .
Pourquoi Google s'occupe-t-il d'Android ?
Lancer une plateforme logicielle est complexe. L’ouverture est essentielle au succès à long terme d’une plateforme, car elle attire les investissements des développeurs et garantit des règles du jeu équitables. La plateforme doit également être un produit convaincant pour les utilisateurs.
Google a engagé les ressources d'ingénierie professionnelles nécessaires pour garantir qu'Android soit une plate-forme logicielle pleinement compétitive. Google considère le projet Android comme une opération de développement de produits à grande échelle et conclut les accords commerciaux nécessaires pour garantir que les excellents appareils fonctionnant sous Android soient commercialisés.
En veillant à ce qu'Android soit un succès auprès des utilisateurs, nous contribuons à assurer la vitalité d'Android en tant que plateforme et en tant que projet open source. Après tout, qui veut le code source d’un produit qui échoue ?
Notre objectif est d’assurer un écosystème performant autour d’Android. Nous avons ouvert le code source d'Android afin que chacun puisse modifier et distribuer le logiciel selon ses propres besoins.
Quelle est la stratégie globale de Google pour le développement de produits Android ?
Nous commercialisons d'excellents appareils sur un marché concurrentiel. Nous intégrons ensuite les innovations et améliorations que nous avons apportées à la plate-forme principale en tant que version suivante.
En pratique, cela signifie que l'équipe d'ingénierie Android se concentre sur un petit nombre d'appareils « phares » 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 au produit et ouvrent la voie à la vaste communauté OEM, qui propose davantage d'appareils tirant parti des nouvelles fonctionnalités. De cette manière, nous veillons à ce que la plateforme Android évolue en fonction des besoins des appareils du monde réel.
Comment est développé un logiciel Android ?
Chaque version de plate-forme d'Android (telle que 1.5 ou 8.1) possède une branche correspondante dans l'arborescence open source. La branche la plus récente est considérée comme la version stable actuelle de la branche . Il s’agit de la branche que les fabricants portent sur leurs appareils. Cette branche reste prête à être publiée à tout moment.
Simultanément, il existe actuellement une branche expérimentale , dans laquelle sont développées des contributions spéculatives, telles que de grandes fonctionnalités de nouvelle génération. Des corrections de bogues et d'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 plateforme Android parallèlement au développement d'un appareil phare. Cette branche récupère les modifications des branches expérimentales et stables, le cas échéant.
Pour plus de détails sur les lignes de code, les branches et les versions, consultez Gestion des logiciels Android .
Pourquoi certaines parties d’Android sont-elles développées en privé ?
Il faut généralement plus d’un an pour mettre un appareil sur le marché. Et bien entendu, les fabricants d’appareils souhaitent proposer les logiciels les plus récents possibles. Pendant ce temps, les développeurs ne souhaitent pas constamment suivre les nouvelles versions de la plate-forme lors de l'écriture d'applications. Les deux groupes éprouvent une tension entre l’expédition des produits et le fait de ne pas vouloir prendre du retard.
Pour résoudre ce problème, certaines parties de la prochaine version d'Android, y compris les API principales de la plateforme, 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 d'Android pendant que nous créons la prochaine version de la plateforme. Cela permet aux développeurs et aux OEM d'utiliser une seule version sans suivre les travaux futurs inachevés, juste 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 ouvertement. Nous avons l'intention de déplacer davantage de ces parties vers un développement ouvert au fil du temps.
Quand les versions de code source sont-elles effectuées ?
Quand ils seront prêts. La publication du code source est un processus assez complexe. Certaines parties d'Android sont développées ouvertement et ce code source est toujours disponible. D'autres parties sont d'abord développées dans une arborescence privée, et ce code source est publié lorsque la prochaine version de la plateforme est prête.
Dans certaines versions, les API de la plate-forme principale sont prêtes suffisamment à l'avance pour que nous puissions diffuser le code source pour un premier aperçu avant la sortie de l'appareil. Dans d'autres versions, cela n'est pas possible. Dans tous les cas, nous publions les sources de la plateforme lorsque nous estimons que la version est stable et lorsque le processus de développement le permet.
Qu'implique la publication du code source d'une nouvelle version d'Android ?
La publication du code source d'une nouvelle version de la plateforme Android est un processus important. Premièrement, le logiciel est intégré à l'image système d'un appareil et est soumis à diverses formes de certification, notamment une certification réglementaire gouvernementale pour les régions dans lesquelles les téléphones seront déployés. Le code passe également par des tests opérateurs. 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 régulateurs et les opérateurs, le fabricant commence à produire en masse des appareils et nous commençons à publier le code source.
Parallèlement à la production de masse, l'équipe de Google lance plusieurs efforts pour préparer la version open source. Ces efforts incluent les 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 plateforme.
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 de contributeur attestant de leur propriété intellectuelle sur leur contribution, Google doit vérifier que la source est autorisée à apporter des contributions.
À partir du moment où la production de masse commence, le processus de publication du logiciel prend généralement environ un mois, de sorte que les versions du code source ont souvent lieu à peu près au même moment où les appareils atteignent les utilisateurs.
Quel est le lien entre l'AOSP et le programme de compatibilité Android ?
L'AOSP maintient le logiciel Android et développe de nouvelles versions. Parce 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.
La fonction du programme de compatibilité Android est de définir une implémentation de base d'Android compatible avec les applications tierces écrites par les développeurs. Les appareils compatibles Android peuvent participer à l'écosystème Android, y compris Google Play ; les appareils qui ne répondent pas aux exigences de compatibilité existent en dehors de cet écosystème.
En d’autres termes, le programme de compatibilité Android permet de séparer les appareils compatibles 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 Android par le programme.
Comment puis-je contribuer à Android ?
Vous pouvez signaler des bogues, écrire des applications pour Android ou contribuer au code source de l'AOSP.
Il y a des limites aux types de contributions de code que nous acceptons. Par exemple, quelqu'un pourrait vouloir proposer une API d'application alternative, telle qu'un environnement entièrement basé sur C++. Nous refuserions cette contribution, car Android encourage l’exécution des applications dans le runtime ART. De même, nous n'accepterons pas de contributions telles que les bibliothèques GPL ou LGPL qui sont incompatibles 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 tout travail. Pour plus de détails, voir Contribuer .
Comment devenir un committer Android ?
L'AOSP n'a pas vraiment de notion de committer. Toutes les contributions (y compris celles rédigées par des employés de Google) passent par un système Web connu sous le nom de 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 proprement les contributions au code source.
Un approbateur désigné doit accepter toutes les modifications soumises. Les approbateurs sont généralement des employés de Google, mais les mêmes approbateurs sont responsables de toutes les soumissions, quelle qu'en soit l'origine.
Pour plus de détails, voir Soumission de correctifs .