Este documento contém respostas a perguntas gerais sobre a Android Open Source Platform (AOSP).
Perguntas de código aberto
Por que o Google abriu o código-fonte do Android?
O Google iniciou o AOSP em resposta às nossas próprias experiências no lançamento de aplicativos móveis. Queríamos ter certeza de que sempre haveria uma plataforma aberta disponível para operadoras, OEMs e desenvolvedores usarem para transformar suas ideias inovadoras em realidade. Queríamos também evitar qualquer ponto central de falha, para que nenhum interveniente individual da indústria pudesse restringir ou controlar as inovações de qualquer outro. Nosso objetivo mais importante com o AOSP é garantir que o software Android de código aberto seja implementado da forma mais ampla e compatível possível, para benefício de todos.
Que tipo de projeto de código aberto é o Android?
O Google supervisiona o desenvolvimento do AOSP principal e trabalha para criar comunidades robustas de desenvolvedores e usuários. Na maior parte, o código-fonte do Android é licenciado sob a licença permissiva Apache 2.0, em vez de uma licença copyleft . Escolhemos a licença Apache 2.0 porque acreditamos que ela incentiva a adoção generalizada do software Android. Para obter detalhes, consulte Licenças .
Por que o Google é responsável pelo Android?
Lançar uma plataforma de software é complexo. A abertura é vital para o sucesso a longo prazo de uma plataforma, porque atrai investimento dos desenvolvedores e garante condições de concorrência equitativas. A plataforma também deve ser um produto atraente para os usuários.
O Google comprometeu-se com os recursos de engenharia profissional necessários para garantir que o Android seja uma plataforma de software totalmente competitiva. O Google trata o projeto Android como uma operação de desenvolvimento de produto em grande escala e fecha os acordos comerciais necessários para garantir que ótimos dispositivos rodando Android cheguem ao mercado.
Ao garantir que o Android seja um sucesso entre os usuários, ajudamos a garantir a vitalidade do Android como plataforma e como projeto de código aberto. Afinal, quem quer o código-fonte de um produto malsucedido?
Nosso objetivo é garantir um ecossistema de sucesso em torno do Android. Abrimos o código-fonte do Android para que qualquer pessoa possa modificar e distribuir o software para atender às suas próprias necessidades.
Qual é a estratégia geral do Google para o desenvolvimento de produtos Android?
Lançamos ótimos dispositivos em um mercado competitivo. Em seguida, incorporamos as inovações e melhorias que fizemos na plataforma principal como a próxima versão.
Na prática, isso significa que a equipe de engenharia do Android se concentra em um pequeno número de dispositivos “carro-chefe” e desenvolve a próxima versão do software Android para dar suporte ao lançamento desses produtos. Esses principais dispositivos absorvem grande parte do risco do produto e abrem caminho para a ampla comunidade OEM, que segue com mais dispositivos que aproveitam os novos recursos. Desta forma, garantimos que a plataforma Android evolui de acordo com as necessidades dos dispositivos do mundo real.
Como o software Android é desenvolvido?
Cada versão da plataforma Android (como 1.5 ou 8.1) possui uma ramificação correspondente na árvore de código aberto. A ramificação mais recente é considerada a versão estável atual da ramificação . Este é o ramo que os fabricantes portam para seus dispositivos. Este branch é mantido adequado para lançamento em todos os momentos.
Simultaneamente, existe um ramo experimental atual , onde são desenvolvidas contribuições especulativas, como grandes recursos de próxima geração. Correções de bugs e outras contribuições podem ser incluídas no ramo estável atual do ramo experimental, conforme apropriado.
Finalmente, o Google está trabalhando na próxima versão da plataforma Android em conjunto com o desenvolvimento de um dispositivo carro-chefe. Este ramo extrai alterações dos ramos experimentais e estáveis, conforme apropriado.
Para obter detalhes sobre codelines, ramificações e versões, consulte Gerenciamento de software Android .
Por que partes do Android são desenvolvidas de forma privada?
Normalmente, leva mais de um ano para lançar um dispositivo no mercado. E, claro, os fabricantes de dispositivos desejam fornecer o software mais recente possível. Enquanto isso, os desenvolvedores não querem monitorar constantemente novas versões da plataforma ao escrever aplicativos. Ambos os grupos vivenciam uma tensão entre enviar produtos e não querer ficar para trás.
Para resolver isso, algumas partes da próxima versão do Android, incluindo as APIs da plataforma principal, serão desenvolvidas em uma filial privada. Essas APIs constituem a próxima versão do Android. Nosso objetivo é focar a atenção na atual versão estável do código-fonte do Android enquanto criamos a próxima versão da plataforma. Isso permite que desenvolvedores e OEMs usem uma única versão sem rastrear trabalhos futuros inacabados apenas para acompanhar. Outras partes do sistema Android que não estão relacionadas à compatibilidade de aplicativos são desenvolvidas abertamente. Pretendemos mover mais dessas partes para o desenvolvimento aberto ao longo do tempo.
Quando são feitos os lançamentos do código-fonte?
Quando estiverem prontos. Liberar o código-fonte é um processo bastante complexo. Algumas partes do Android são desenvolvidas abertamente e esse código-fonte está sempre disponível. Outras partes são desenvolvidas primeiro em uma árvore privada, e esse código-fonte é lançado quando a próxima versão da plataforma estiver pronta.
Em algumas versões, as APIs da plataforma principal estão prontas com antecedência suficiente para que possamos enviar o código-fonte para uma análise antecipada antes do lançamento do dispositivo. Em outras versões, isso não é possível. Em todos os casos, liberamos o código-fonte da plataforma quando sentimos que a versão é estável e quando o processo de desenvolvimento permite.
O que está envolvido na liberação do código-fonte de uma nova versão do Android?
Liberar o código-fonte de uma nova versão da plataforma Android é um processo significativo. Primeiro, o software é integrado a uma imagem de sistema de um dispositivo e submetido a diversas formas de certificação, incluindo certificação regulatória governamental para as regiões em que os telefones serão implantados. O código também passa por testes de operador. Esta é uma fase importante do processo, pois ajuda a detectar bugs de software.
Quando o lançamento é aprovado pelos reguladores e operadores, o fabricante começa a produzir dispositivos em massa e nós começamos a liberar o código-fonte.
Simultaneamente à produção em massa, a equipe do Google inicia vários esforços para preparar o lançamento de código aberto. Esses esforços incluem fazer alterações finais na API, atualizar a documentação (para refletir quaisquer modificações feitas durante os testes de qualificação, por exemplo), preparar um SDK para a nova versão e lançar as informações de compatibilidade da plataforma.
Nossa equipe jurídica faz a aprovação final para liberar o código em código aberto. Assim como os contribuidores de código aberto são obrigados a assinar um Contrato de Licença de Colaborador atestando a propriedade intelectual de sua contribuição, o Google deve verificar se a fonte está autorizada a fazer contribuições.
A partir do momento em que a produção em massa começa, o processo de lançamento do software geralmente leva cerca de um mês, portanto, os lançamentos do código-fonte geralmente acontecem mais ou menos na mesma época em que os dispositivos chegam aos usuários.
Como o AOSP se relaciona com o Programa de Compatibilidade do Android?
A AOSP mantém o software Android e desenvolve novas versões. Por ser de código aberto, este software pode ser usado para qualquer finalidade, inclusive para o desenvolvimento de dispositivos que não sejam compatíveis com outros dispositivos baseados na mesma fonte.
A função do Programa de Compatibilidade do Android é definir uma implementação básica do Android que seja compatível com aplicativos de terceiros escritos por desenvolvedores. Os dispositivos compatíveis com Android são elegíveis para participar do ecossistema Android, incluindo o Google Play; dispositivos que não atendem aos requisitos de compatibilidade existem fora desse ecossistema.
Em outras palavras, o Programa de Compatibilidade Android é a forma como separamos os dispositivos compatíveis com Android dos dispositivos que apenas executam derivados do código-fonte. Aceitamos todos os usos do código-fonte do Android, mas para participar do ecossistema Android, um dispositivo deve ser identificado como compatível com Android pelo programa.
Como posso contribuir com o Android?
Você pode relatar bugs, escrever aplicativos para Android ou contribuir com código-fonte para o AOSP.
Existem limites para os tipos de contribuições de código que aceitamos. Por exemplo, alguém pode querer contribuir com uma API de aplicativo alternativa, como um ambiente completo baseado em C++. Recusaríamos essa contribuição, porque o Android incentiva os aplicativos a serem executados no tempo de execução ART. Da mesma forma, não aceitaremos contribuições como bibliotecas GPL ou LGPL que sejam incompatíveis com nossos objetivos de licenciamento.
Encorajamos os interessados em contribuir com código-fonte a entrar em contato conosco através dos canais listados na Comunidade Android antes de iniciar qualquer trabalho. Para obter detalhes, consulte Contribuindo .
Como posso me tornar um committer do Android?
O AOSP realmente não tem noção de committer. Todas as contribuições (incluindo aquelas de autoria de funcionários do Google) passam por um sistema baseado na Web conhecido como Gerrit, que faz parte do processo de engenharia do Android. Este sistema funciona em conjunto com o sistema de gerenciamento de código-fonte Git para gerenciar de forma limpa as contribuições do código-fonte.
Um aprovador designado precisa aceitar todas as alterações enviadas. Os aprovadores normalmente são funcionários do Google, mas os mesmos aprovadores são responsáveis por todos os envios, independentemente da origem.
Para obter detalhes, consulte Enviando patches .