Descripción general del AOSP

Android es un sistema operativo para una gran variedad de dispositivos con diferentes factores de forma. La documentación y el código fuente de Android están disponibles para todos como el Proyecto de código abierto de Android (AOSP). Puedes usar el AOSP para crear variantes personalizadas del SO Android para tus propios dispositivos.

El AOSP está diseñado para que no haya ningún punto central de falla, donde un jugador de la industria restrinja o controle las innovaciones de otro. Por lo tanto, es un producto para desarrolladores completo de calidad de producción con código fuente abierto para su personalización y portabilidad.

Esta sección de la documentación ayuda a los desarrolladores nuevos en el AOSP a comenzar a usar la plataforma y realizar tareas esenciales de desarrollo.

Términos requeridos

A continuación, se incluye una lista de términos y definiciones que se usan en esta documentación sobre primeros pasos. Estudia cada definición antes de seguir avanzando.

Desarrollador de apps para Android

Este desarrollador escribe aplicaciones o apps para Android que se ejecutan en Android. Hay dos clasificaciones de desarrolladores de apps: apps propias y de terceros.

Desarrollador de apps propias para Android
Un desarrollador de apps para Android que tiene acceso a las APIs del sistema del AOSP y escribe apps privilegiadas y de fabricantes de dispositivos.
Desarrollador de apps de terceros para Android
Un desarrollador de apps para Android que solo usa el SDK público para crear apps de este sistema operativo.

Si quieres desarrollar apps de terceros para Android, consulta developers.android.com. La información en este sitio web está destinada solo a quienes trabajan directamente con el AOSP.

Android Debug Bridge (ADB)
Una herramienta de línea de comandos (adb) que permite que tu estación de trabajo se comunique con un dispositivo virtual, emulado por software o físico.
Dispositivo compatible con Android
Un dispositivo que puede ejecutar cualquier app escrita por desarrolladores externos que utilicen el SDK y el NDK de Android. Los dispositivos compatibles con Android deben cumplir los requisitos del documento de definición de compatibilidad (CDD) y aprobar el Conjunto de pruebas de compatibilidad (CTS). Los dispositivos compatibles con Android son aptos para participar en el ecosistema de Android, que incluye una licencia potencial de Play Store y del conjunto de aplicaciones y APIs de los Servicios de Google para dispositivos móviles (GMS), y el uso de la marca Android. Si bien todos pueden usar el código fuente de Android, para ser considerado parte del ecosistema, un dispositivo debe ser compatible con Android. Para obtener más información sobre la compatibilidad y el CTS, consulta la Descripción general del Programa de compatibilidad de Android
Responsable de aprobación
Miembros con experiencia de la comunidad del AOSP que realizaron importantes contribuciones técnicas y de diseño a la plataforma. En el proceso de revisión de código, un responsable de aprobación decide si incluir o no un cambio. Los líderes de proyectos (que suelen ser empleados de Google) son quienes eligen a los responsables de aprobación y, a veces, ascienden a los verificadores al puesto de responsables de aprobación si demuestran ser expertos en una parte específica del AOSP.
Documento de definición de compatibilidad (CDD)
Un documento que enumera los requisitos de software y hardware para un dispositivo compatible con Android.
Colaborador

Una persona que contribuye al código fuente del AOSP. Pueden ser empleados de Google o de otras empresas, o bien personas no afiliadas a ninguna entidad. Cada colaborador del AOSP usa las mismas herramientas, sigue el mismo proceso de revisión de código y está sujeto al mismo estilo de programación. No es necesario que seas colaborador para usar el AOSP; puedes descargarlo, modificarlo según tus necesidades e implementarlo en un dispositivo sin aportar código para que usen los demás.

Existen límites para los tipos de contribuciones de código que acepta Google. Por ejemplo, tal vez quieras aportar una API de aplicación alternativa, como un entorno totalmente basado en C++. Google rechazaría esa contribución porque Android recomienda que las aplicaciones se ejecuten en el entorno de ejecución de ART. Tampoco aceptará contribuciones como, por ejemplo, bibliotecas GPL o LGPL incompatibles con los objetivos de otorgamiento de licencias.

Si te interesa aportar código fuente, comunícate con Google antes de comenzar a trabajar.

Conjunto de pruebas de compatibilidad (CTS)

Un paquete de pruebas gratuito y de calidad comercial disponible para descargar como objeto binario o como fuente en el AOSP. El CTS es un conjunto de prueba de unidades diseñado para integrarse en tu flujo de trabajo diario. Su objetivo es mostrar incompatibilidades y garantizar que el software siga siendo compatible a lo largo del proceso de desarrollo.

Cuttlefish

Un dispositivo Android virtual configurable que se puede ejecutar de manera remota con ofertas de terceros en la nube, como Google Cloud Engine, y de manera local en máquinas Linux x86.

Desarrollador

En el contexto del AOSP, un desarrollador es toda persona que trabaja con el AOSP de cualquier forma. El término "desarrollador" se usa para hacer referencia genéricamente a las diferentes personas que podrían leer esta documentación, como fabricantes del equipo original (OEMs), fabricantes de teléfonos celulares, operadores y creadores de sistemas en chip (SoC).

Servicios de Google para dispositivos móviles (GMS)

Una colección de apps y APIs de Google que se pueden preinstalar en dispositivos.

Destino

Una permutación de dispositivo, como un modelo o factor de forma específicos. Por ejemplo, aosp_cf_x86_64_phone-userdebug representa un teléfono x86 y de 65 MB con información de depuración que se diseñó para ejecutarse en el emulador de Cuttlefish.

Verificador

Un valioso colaborador en la comunidad de Android que descarga y verifica los cambios del AOSP. Luego de que hayas enviado una cantidad considerable de código de alta calidad al AOSP, es posible que los líderes de proyectos te inviten a convertirte en verificador.

Filosofía de administración

Android surgió del trabajo de un grupo de empresas conocido como Open Handset Alliance (OHA), con el liderazgo de Google. Hasta el día de hoy, muchas empresas, tanto miembros originales de la OHA como otras, han hecho grandes inversiones en Android. Estas empresas asignaron una cantidad importante de recursos de ingeniería para mejorar Android y llevar sus dispositivos al mercado.

Las empresas que invirtieron en Android lo hicieron porque creen en la necesidad de una plataforma abierta. Android es un esfuerzo de código abierto de manera intencional y explícita (a diferencia de un software gratuito); un grupo de organizaciones con necesidades compartidas reunió recursos para colaborar en una implementación única de un producto compartido. En primer lugar, la filosofía de Android es pragmática. El objetivo es crear un producto compartido que cada colaborador pueda personalizar según sus necesidades.

Sin embargo, la personalización sin control puede resultar en implementaciones incompatibles. Para evitar la incompatibilidad, el Proyecto de código abierto de Android (AOSP) mantiene el Programa de compatibilidad de Android, que detalla lo que significa ser compatible con Android y lo que se exige a los creadores de dispositivos para alcanzar ese estado. Todos pueden usar el código fuente de Android para cualquier propósito y Google acepta todos los usos legítimos del software. Sin embargo, para formar parte del ecosistema compartido de aplicaciones que los miembros de la OHA están construyendo en torno a Android, los desarrolladores de dispositivos deben participar en el Programa de compatibilidad de Android.

Google no solo dirige el AOSP, sino que también mantiene y continúa desarrollando Android. Si bien Android está formado por múltiples subproyectos, el AOSP se encarga estrictamente de la administración de proyectos. Google concibe y administra Android como un producto de software único y holístico, no como una distribución, especificación o colección de piezas reemplazables. La intención de Google es que los creadores puedan asegurar la portabilidad de Android a sus dispositivos y no que implementen una especificación ni que seleccionen una distribución.

¿Qué sigue?