Preguntas frecuentes (FAQ) de AOSP

Este documento contiene respuestas a preguntas generales sobre la plataforma de código abierto de Android (AOSP).

Preguntas de código abierto

¿Por qué Google abrió el código fuente de Android?

Google inició el AOSP en respuesta a nuestras propias experiencias al lanzar aplicaciones móviles. Queríamos asegurarnos de que siempre hubiera una plataforma abierta disponible para que los operadores, OEM y desarrolladores la utilizaran para hacer realidad sus ideas innovadoras. También queríamos evitar cualquier punto central de falla, para que ningún actor de la industria pudiera restringir o controlar las innovaciones de ningún otro. Nuestro objetivo más importante con la AOSP es garantizar que el software Android de código abierto se implemente de la forma más amplia y compatible posible, para beneficio de todos.

¿Qué tipo de proyecto de código abierto es Android?

Google supervisa el desarrollo del AOSP principal y trabaja para crear comunidades sólidas de desarrolladores y usuarios. En su mayor parte, el código fuente de Android tiene la licencia permisiva Apache 2.0, en lugar de una licencia copyleft . Elegimos la licencia Apache 2.0 porque creemos que fomenta la adopción generalizada del software Android. Para obtener más información, consulte Licencias .

¿Por qué Google se hace cargo de Android?

Lanzar una plataforma de software es complejo. La apertura es vital para el éxito a largo plazo de una plataforma, porque atrae inversiones de los desarrolladores y garantiza la igualdad de condiciones. La plataforma también debe ser un producto atractivo para los usuarios.

Google ha comprometido los recursos de ingeniería profesionales necesarios para garantizar que Android sea una plataforma de software totalmente competitiva. Google trata el proyecto Android como una operación de desarrollo de productos a gran escala y cierra los acuerdos comerciales necesarios para asegurarse de que excelentes dispositivos con Android lleguen al mercado.

Al asegurarnos de que Android sea un éxito entre los usuarios, ayudamos a garantizar la vitalidad de Android como plataforma y como proyecto de código abierto. Después de todo, ¿quién quiere el código fuente de un producto fallido?

Nuestro objetivo es garantizar un ecosistema exitoso en torno a Android. Abrimos el código fuente de Android para que cualquiera pueda modificar y distribuir el software para satisfacer sus propias necesidades.

¿Cuál es la estrategia general de Google para el desarrollo de productos Android?

Lanzamos excelentes dispositivos a un mercado competitivo. Luego incorporamos las innovaciones y mejoras que realizamos en la plataforma central como la próxima versión.

En la práctica, esto significa que el equipo de ingeniería de Android se concentra en una pequeña cantidad de dispositivos "emblemáticos" y desarrolla la próxima versión del software de Android para respaldar esos lanzamientos de productos. Estos dispositivos emblemáticos absorben gran parte del riesgo del producto y abren un camino para la amplia comunidad OEM, que sigue con más dispositivos que aprovechan las nuevas funciones. De esta forma, nos aseguramos de que la plataforma Android evolucione según las necesidades de los dispositivos del mundo real.

¿Cómo se desarrolla el software de Android?

Cada versión de plataforma de Android (como 1.5 u 8.1) tiene una rama correspondiente en el árbol de código abierto. La rama más reciente se considera la versión de rama estable actual . Esta es la rama que los fabricantes trasladan a sus dispositivos. Esta sucursal se mantiene apta para su liberación en todo momento.

Al mismo tiempo, existe una rama experimental actual , que es donde se desarrollan contribuciones especulativas, como grandes funciones de próxima generación. Se pueden incluir correcciones de errores y otras contribuciones en la rama estable actual desde la rama experimental según corresponda.

Finalmente, Google trabaja en la próxima versión de la plataforma Android junto con el desarrollo de un dispositivo insignia. Esta rama extrae cambios de las ramas experimental y estable según corresponda.

Para obtener detalles sobre líneas de código, ramas y versiones, consulte Administración de software de Android .

¿Por qué partes de Android se desarrollan en privado?

Normalmente lleva más de un año sacar un dispositivo al mercado. Y, por supuesto, los fabricantes de dispositivos quieren ofrecer el software más reciente que puedan. Mientras tanto, los desarrolladores no quieren realizar un seguimiento constante de las nuevas versiones de la plataforma cuando escriben aplicaciones. Ambos grupos experimentan una tensión entre enviar productos y no querer quedarse atrás.

Para solucionar este problema, algunas partes de la próxima versión de Android, incluidas las API de la plataforma central, se desarrollan en una rama privada. Estas API constituyen la próxima versión de Android. Nuestro objetivo es centrar la atención en la versión estable actual del código fuente de Android mientras creamos la próxima versión de la plataforma. Esto permite a los desarrolladores y OEM utilizar una única versión sin realizar un seguimiento del trabajo futuro inacabado solo para mantenerse al día. Otras partes del sistema Android que no están relacionadas con la compatibilidad de aplicaciones se desarrollan de forma abierta. Tenemos la intención de trasladar más de estas piezas al desarrollo abierto con el tiempo.

¿Cuándo se publican los códigos fuente?

Cuando estén listos. Publicar el código fuente es un proceso bastante complejo. Algunas partes de Android se desarrollan de forma abierta y ese código fuente siempre está disponible. Otras partes se desarrollan primero en un árbol privado y ese código fuente se publica cuando la próxima versión de la plataforma esté lista.

En algunas versiones, las API de la plataforma central están listas con suficiente antelación para que podamos publicar el código fuente para echarle un vistazo antes del lanzamiento del dispositivo. En otras versiones, esto no es posible. En todos los casos, publicamos la fuente de la plataforma cuando consideramos que la versión es estable y cuando el proceso de desarrollo lo permite.

¿Qué implica publicar el código fuente de una nueva versión de Android?

Publicar el código fuente de una nueva versión de la plataforma Android es un proceso importante. Primero, el software se integra en una imagen del sistema para un dispositivo y se somete a varias formas de certificación, incluida la certificación regulatoria gubernamental para las regiones en las que se implementarán los teléfonos. El código también pasa por pruebas de operadores. Esta es una fase importante del proceso porque ayuda a detectar errores de software.

Cuando los reguladores y operadores aprueban el lanzamiento, el fabricante comienza a producir dispositivos en masa y nosotros comenzamos a publicar el código fuente.

Simultáneamente a la producción en masa, el equipo de Google inicia varios esfuerzos para preparar el lanzamiento de código abierto. Estos esfuerzos incluyen realizar cambios finales en la API, actualizar la documentación (para reflejar cualquier modificación que se realizó durante las pruebas de calificación, por ejemplo), preparar un SDK para la nueva versión y lanzar la información de compatibilidad de la plataforma.

Nuestro equipo legal realiza una aprobación final para liberar el código en código abierto. Así como los contribuyentes de código abierto deben firmar un Acuerdo de licencia de contribuyentes que acredite la propiedad intelectual de su contribución, Google debe verificar que la fuente esté autorizada para realizar contribuciones.

Desde el momento en que comienza la producción en masa, el proceso de lanzamiento del software suele tardar alrededor de un mes, por lo que los lanzamientos del código fuente suelen ocurrir aproximadamente al mismo tiempo que los dispositivos llegan a los usuarios.

¿Cómo se relaciona el AOSP con el Programa de compatibilidad de Android?

La AOSP mantiene el software de Android y desarrolla nuevas versiones. Debido a que es de código abierto, este software se puede utilizar para cualquier propósito, incluido el desarrollo de dispositivos que no son compatibles con otros dispositivos basados ​​en la misma fuente.

La función del Programa de compatibilidad de Android es definir una implementación básica de Android que sea compatible con aplicaciones de terceros escritas por desarrolladores. Los dispositivos compatibles con Android son elegibles para participar en el ecosistema de Android, incluido Google Play; Los dispositivos que no cumplen con los requisitos de compatibilidad existen fuera de ese ecosistema.

En otras palabras, el Programa de Compatibilidad de Android es la forma en que separamos los dispositivos compatibles con Android de los dispositivos que simplemente ejecutan derivados del código fuente. Damos la bienvenida a todos los usos del código fuente de Android, pero para participar en el ecosistema de Android, el programa debe identificar un dispositivo como compatible con Android.

¿Cómo puedo contribuir a Android?

Puede informar errores, escribir aplicaciones para Android o contribuir con código fuente al AOSP.

Existen límites para los tipos de contribuciones de código que aceptamos. Por ejemplo, alguien podría querer contribuir con una API de aplicación alternativa, como un entorno completo basado en C++. Rechazaríamos esa contribución porque Android recomienda que las aplicaciones se ejecuten en el tiempo de ejecución ART. De manera similar, no aceptaremos contribuciones como bibliotecas GPL o LGPL que sean incompatibles con nuestros objetivos de licencia.

Alentamos a aquellos interesados ​​en contribuir con el código fuente a que se comuniquen con nosotros a través de los canales enumerados en la Comunidad de Android antes de comenzar cualquier trabajo. Para obtener más información, consulte Contribuir .

¿Cómo me convierto en un confirmador de Android?

La AOSP realmente no tiene la noción de confirmador. Todas las contribuciones (incluidas las escritas por empleados de Google) pasan por un sistema basado en web conocido como Gerrit que forma parte del proceso de ingeniería de Android. Este sistema funciona en conjunto con el sistema de administración de código fuente Git para administrar de manera limpia las contribuciones de código fuente.

Un aprobador designado debe aceptar todos los cambios enviados. Los aprobadores suelen ser empleados de Google, pero los mismos aprobadores son responsables de todos los envíos, independientemente de su origen.

Para obtener más información, consulte Envío de parches .