Google se compromete a promover la equidad racial para las comunidades negras. Ver cómo.

Administración del software de Android

El Proyecto de código abierto de Android (AOSP) mantiene una pila de software completa que los OEM y otros implementadores de dispositivos pueden portar y ejecutar en su propio hardware. Para conservar la calidad de Android, Google aporta constantemente ingenieros, administradores de productos, diseñadores de interfaces de usuario, verificadores de control de calidad y personas de todas las demás funciones necesarias para lanzar dispositivos modernos al mercado.

En consecuencia, mantenemos una serie de líneas de código para separar de manera clara la versión estable actual de Android del trabajo experimental inestable. Implementamos la administración del código abierto y el mantenimiento de las líneas de código de Android en el ciclo de desarrollo de productos más amplio.

Administración del código del AOSP

En la tabla que figura a continuación, se muestran los conceptos detrás de la administración y las actualizaciones de código del AOSP.

Diagrama de la línea de código
Figura 1: Código del AOSP y actualizaciones
  1. En todo momento, existe una versión actual más reciente de la plataforma de Android. Esto generalmente se muestra como una rama en el árbol.
  2. Los colaboradores y desarrolladores de dispositivos trabajan con esa versión a fin de corregir errores, lanzar nuevos dispositivos, experimentar con funciones nuevas, etcétera.
  3. Al mismo tiempo, Google trabaja internamente en la próxima versión del marco de trabajo y la plataforma de Android según las necesidades y los objetivos del producto. Para desarrollar la próxima versión de Android, trabajamos con un socio de dispositivos en un dispositivo insignia con especificaciones que impulsen a Android hacia donde queremos que llegue.
  4. Cuando está lista la versión n+1, se publica en el árbol de fuentes públicas y se convierte en la nueva versión más reciente.

Términos y advertencias

  • Una actualización corresponde a una versión formal de la plataforma de Android, como 1.5 u 8.1. Una actualización de la plataforma corresponde a la versión en el campo SdkVersion de archivos AndroidManifest.xml y se define dentro de frameworks/base/api en el árbol de fuentes.
  • Un proyecto ascendente es un proyecto de código abierto a partir del cual la pila de Android extrae código. Además de proyectos como el kernel de Linux y WebKit, seguimos migrando algunos proyectos semiautónomos de Android como ART, las herramientas del SDK de Android y Bionic para que funcionen como proyectos ascendentes. Por lo general, estos proyectos se desarrollan completamente en el árbol público. A veces, los desarrolladores contribuyen directamente en los proyectos ascendentes. Para obtener más información, consulta Proyectos ascendentes. En ambos casos, se incluyen periódicamente resúmenes en las actualizaciones.
  • La línea de código de una actualización (que puede consistir en más de una rama en Git) se considera siempre como el único código fuente canónico de una versión específica de la plataforma de Android. Los OEM y otros fabricantes de equipos deben extraer solo de una rama de la versión.
  • Se establecen líneas de código experimentales para capturar cambios de la comunidad, a fin de iterarlos y preservar la estabilidad.
  • Los cambios que demuestran ser estables se incluyen finalmente en una rama de la actualización. Esto solo se aplica a correcciones de errores, mejoras de la aplicación y otros cambios que no afectan a las API de la plataforma.
  • Los cambios se incluyen en las ramas de las actualizaciones de proyectos ascendentes (incluidos los proyectos ascendentes de Android) según sea necesario.
  • Google desarrolla internamente la versión n+1 (la próxima versión importante de las API de la plataforma y el marco de trabajo). Para obtener más información, consulta Líneas de código privadas.
  • Los cambios se extraen de ramas experimentales, ascendentes y de actualizaciones, y se incluyen en la rama privada de Google según sea necesario.
  • Cuando se estabilizan y se prueban por completo las API de la plataforma para la próxima versión, Google corta una actualización de la próxima versión de la plataforma (específicamente, una SdkVersion nueva). Esto se corresponde con el hecho de que la línea de código interna se convierte en una rama de la versión pública y en el código de línea de la nueva plataforma actual.
  • Cuando se corta una nueva versión de la plataforma, se crea al mismo tiempo una línea de código experimental correspondiente.

Líneas de código privadas

La estrategia de administración de fuentes que se describe más arriba incluye una línea de código que Google mantiene en privado para concentrarse en la versión pública actual de Android.

Es natural que los OEM y otros fabricantes de dispositivos quieran enviar dispositivos con la última versión de Android. Del mismo modo, los desarrolladores de aplicaciones no desean lidiar con más versiones de la plataforma que las necesarias. Mientras tanto, Google sigue siendo responsable de la dirección estratégica de Android como plataforma y producto. Nuestro enfoque se basa en una pequeña cantidad de dispositivos insignia para impulsar funciones mientras garantizamos la protección de la propiedad intelectual relacionada con Android.

Como resultado, Google suele tener información confidencial de terceros y debe abstenerse de revelar funciones sensibles hasta poder garantizar las protecciones adecuadas. Además, si existen demasiadas versiones a la vez, se pone en riesgo la plataforma. Por estos motivos, estructuramos el proyecto de código abierto (incluidas las colaboraciones de terceros) para concentrarnos en la versión pública y estable de Android actual. El desarrollo más detallado de la próxima versión de la plataforma se realiza en privado hasta que la versión está lista para convertirse en una actualización oficial.

Entendemos que muchos colaboradores no están de acuerdo con este enfoque y respetamos sus puntos de vista. Sin embargo, consideramos que esta es la mejor forma de hacerlo y es la que decidimos implementar para Android.