Gestión de programas 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 trasladar y ejecutar en su propio hardware. Para mantener la calidad de Android, Google ha contribuido a tiempo completo con ingenieros, gerentes de producto, diseñadores de interfaces de usuario, evaluadores de control de calidad y todos los demás roles necesarios para llevar dispositivos modernos al mercado.

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

Gestión de código AOSP

El siguiente cuadro muestra los conceptos detrás de la administración y los lanzamientos del código AOSP.

diagrama de línea de código
Figura 1. Código y versiones de AOSP
  1. En cualquier momento dado, hay una última versión actual de la plataforma Android. Por lo general, esto toma la forma de una rama del árbol.
  2. Los creadores de dispositivos y los contribuyentes trabajan con la última versión actual, corrigiendo errores, lanzando nuevos dispositivos, experimentando con nuevas funciones, etc.
  3. Paralelamente, Google trabaja internamente en la próxima versión de la plataforma y el framework Android de acuerdo con las necesidades y objetivos del producto. Desarrollamos la próxima versión de Android trabajando con un socio de dispositivos en un dispositivo insignia cuyas especificaciones se eligen para impulsar a Android en la dirección que creemos que debería tomar.
  4. Cuando la versión n+1 está lista, se publica en el árbol de fuentes públicas y se convierte en la última versión.

Términos y advertencias

  • Una versión corresponde a una versión formal de la plataforma Android, como 1.5 u 8.1. Una versión de la plataforma corresponde a la versión en el campo SdkVersion de los 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 del cual la pila de Android extrae código. Además de proyectos como el kernel de Linux y WebKit, continuamos migrando algunos proyectos de Android semiautónomos como ART, las herramientas SDK de Android y Bionic para que funcionen como proyectos ascendentes. Generalmente estos proyectos se desarrollan íntegramente en el árbol público. Para algunos proyectos upstream, los desarrolladores contribuyen directamente al proyecto upstream. Para obtener más información, consulte Proyectos upstream . En ambos casos, las instantáneas se incorporan periódicamente a las versiones.
  • En todo momento, una línea de código de lanzamiento (que puede constar de más de una rama en git) se considera el único código fuente canónico para una versión determinada de la plataforma Android. Los OEM y otros grupos que crean dispositivos solo deben extraerlos de una rama de lanzamiento.
  • Se establecen líneas de código experimentales para capturar los cambios de la comunidad de modo que puedan repetirse con miras a la estabilidad.
  • Los cambios que resultan estables finalmente se incorporan a una rama de lanzamiento. Esto se aplica únicamente a correcciones de errores, mejoras de aplicaciones y otros cambios que no afectan las API de la plataforma.
  • Los cambios se introducen en las ramas de lanzamiento de los proyectos anteriores (incluidos los proyectos anteriores de Android) según sea necesario.
  • Google desarrolla internamente la versión n+1 (la siguiente versión principal del marco y las API de la plataforma). Para obtener más información, consulte Líneas de código privadas .
  • Los cambios se extraen de las ramas ascendentes, de lanzamiento y experimentales a la rama privada de Google según sea necesario.
  • Cuando las API de la plataforma para la próxima versión se estabilizan y se prueban por completo, Google elimina el lanzamiento de la próxima versión de la plataforma (específicamente, una nueva SdkVersion ). Esto corresponde a que la línea de código interna se convierta en una rama de lanzamiento público y la nueva línea de código de plataforma actual.
  • Cuando se corta una nueva versión de la plataforma, al mismo tiempo se crea una línea de código experimental correspondiente.

Líneas de código privadas

La estrategia de gestión de fuentes anterior incluye una línea de código que Google mantiene privada para centrar la atención en la versión pública actual de Android.

Los OEM y otros fabricantes de dispositivos naturalmente quieren enviar dispositivos con la última versión de Android. De manera similar, los desarrolladores de aplicaciones no quieren lidiar con más versiones de plataforma de las necesarias. Mientras tanto, Google sigue siendo responsable de la dirección estratégica de Android como plataforma y producto. Nuestro enfoque se centra en una pequeña cantidad de dispositivos emblemáticos para impulsar funciones y al mismo tiempo garantizar la protección de la propiedad intelectual relacionada con Android.

Como resultado, Google frecuentemente posee información confidencial de terceros y debe abstenerse de revelar características sensibles hasta obtener las protecciones adecuadas. Además, existen riesgos reales para la plataforma si existen demasiadas versiones de la plataforma al mismo tiempo. Por estas razones, hemos estructurado el proyecto de código abierto (incluidas las contribuciones de terceros) para centrarnos en la versión estable pública de Android actualmente. El desarrollo profundo de la próxima versión de la plataforma se produce en privado hasta que esté lista para convertirse en un lanzamiento oficial.

Reconocemos que muchos contribuyentes no están de acuerdo con este enfoque y respetamos sus puntos de vista. Sin embargo, este es el enfoque que consideramos mejor y el que hemos elegido implementar para Android.